mirror of
				https://github.com/carlosedp/cluster-monitoring.git
				synced 2025-10-26 10:23:04 +01:00 
			
		
		
		
	Add support for more then one suffix domain
This commit is contained in:
		
							parent
							
								
									e5a8f1ab52
								
							
						
					
					
						commit
						e1f109ec82
					
				@ -7,9 +7,10 @@ local vars = import 'vars.jsonnet';
 | 
			
		||||
    namespace: 'monitoring',
 | 
			
		||||
 | 
			
		||||
    urls+:: {
 | 
			
		||||
      prom_ingress: 'prometheus.' + vars.suffixDomain,
 | 
			
		||||
      alert_ingress: 'alertmanager.' + vars.suffixDomain,
 | 
			
		||||
      grafana_ingress: 'grafana.' + vars.suffixDomain,
 | 
			
		||||
      domains: [vars.suffixDomain] + vars.additionalDomains,
 | 
			
		||||
      prom_ingress: ['prometheus.' + domain for domain in $._config.urls.domains],
 | 
			
		||||
      alert_ingress: ['alertmanager.' + domain for domain in $._config.urls.domains],
 | 
			
		||||
      grafana_ingress: ['grafana.' + domain for domain in $._config.urls.domains],
 | 
			
		||||
      grafana_ingress_external: 'grafana.' + vars.suffixDomain,
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
@ -76,7 +77,7 @@ local vars = import 'vars.jsonnet';
 | 
			
		||||
               retention: vars.prometheus.retention,
 | 
			
		||||
               scrapeInterval: vars.prometheus.scrapeInterval,
 | 
			
		||||
               scrapeTimeout: vars.prometheus.scrapeTimeout,
 | 
			
		||||
               externalUrl: 'http://' + $._config.urls.prom_ingress,
 | 
			
		||||
               externalUrl: 'http://' + $._config.urls.prom_ingress[0],
 | 
			
		||||
             }
 | 
			
		||||
             + (if vars.enablePersistence.prometheus then {
 | 
			
		||||
                  storage: {
 | 
			
		||||
@ -139,9 +140,9 @@ local vars = import 'vars.jsonnet';
 | 
			
		||||
      local I = utils.newIngress('alertmanager-main', $._config.namespace, $._config.urls.alert_ingress, '/', 'alertmanager-main', 'web');
 | 
			
		||||
      if vars.TLSingress then
 | 
			
		||||
        if vars.UseProvidedCerts then
 | 
			
		||||
          utils.addIngressTLS(I, 'ingress-secret')
 | 
			
		||||
          utils.addIngressTLS(I, $._config.urls.alert_ingress, 'ingress-secret')
 | 
			
		||||
        else
 | 
			
		||||
          utils.addIngressTLS(I)
 | 
			
		||||
          utils.addIngressTLS(I, $._config.urls.alert_ingress)
 | 
			
		||||
      else
 | 
			
		||||
        I,
 | 
			
		||||
 | 
			
		||||
@ -149,9 +150,9 @@ local vars = import 'vars.jsonnet';
 | 
			
		||||
      local I = utils.newIngress('grafana', $._config.namespace, $._config.urls.grafana_ingress, '/', 'grafana', 'http');
 | 
			
		||||
      if vars.TLSingress then
 | 
			
		||||
        if vars.UseProvidedCerts then
 | 
			
		||||
          utils.addIngressTLS(I, 'ingress-secret')
 | 
			
		||||
          utils.addIngressTLS(I, $._config.urls.grafana_ingress, 'ingress-secret')
 | 
			
		||||
        else
 | 
			
		||||
          utils.addIngressTLS(I)
 | 
			
		||||
          utils.addIngressTLS(I, $._config.urls.grafana_ingress)
 | 
			
		||||
      else
 | 
			
		||||
        I,
 | 
			
		||||
 | 
			
		||||
@ -159,9 +160,9 @@ local vars = import 'vars.jsonnet';
 | 
			
		||||
      local I = utils.newIngress('prometheus-k8s', $._config.namespace, $._config.urls.prom_ingress, '/', 'prometheus-k8s', 'web');
 | 
			
		||||
      if vars.TLSingress then
 | 
			
		||||
        if vars.UseProvidedCerts then
 | 
			
		||||
          utils.addIngressTLS(I, 'ingress-secret')
 | 
			
		||||
          utils.addIngressTLS(I, $._config.urls.prom_ingress, 'ingress-secret')
 | 
			
		||||
        else
 | 
			
		||||
          utils.addIngressTLS(I)
 | 
			
		||||
          utils.addIngressTLS(I, $._config.urls.prom_ingress)
 | 
			
		||||
      else
 | 
			
		||||
        I,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -91,7 +91,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  // Creates ingress objects
 | 
			
		||||
  newIngress(name, namespace, host, path, serviceName, servicePort):: (
 | 
			
		||||
  newIngress(name, namespace, hosts, path, serviceName, servicePort):: (
 | 
			
		||||
    {
 | 
			
		||||
      apiVersion: 'networking.k8s.io/v1',
 | 
			
		||||
      kind: 'Ingress',
 | 
			
		||||
@ -100,25 +100,28 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
			
		||||
        namespace: namespace,
 | 
			
		||||
      },
 | 
			
		||||
      spec: {
 | 
			
		||||
        rules: [
 | 
			
		||||
        rules: [$.newIngressHost(host, path, serviceName, servicePort) for host in hosts],
 | 
			
		||||
      },
 | 
			
		||||
    }
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  // Add host to Ingress resource
 | 
			
		||||
  newIngressHost(host, path, serviceName, servicePort):: (
 | 
			
		||||
    {
 | 
			
		||||
      host: host,
 | 
			
		||||
      http: {
 | 
			
		||||
        paths: [
 | 
			
		||||
          {
 | 
			
		||||
            host: host,
 | 
			
		||||
            http: {
 | 
			
		||||
              paths: [
 | 
			
		||||
                {
 | 
			
		||||
                  backend: {
 | 
			
		||||
                    service: {
 | 
			
		||||
                      name: serviceName,
 | 
			
		||||
                      port: {
 | 
			
		||||
                        name: servicePort,
 | 
			
		||||
                      },
 | 
			
		||||
                    },
 | 
			
		||||
                  },
 | 
			
		||||
                  path: path,
 | 
			
		||||
                  pathType: 'Prefix',
 | 
			
		||||
            backend: {
 | 
			
		||||
              service: {
 | 
			
		||||
                name: serviceName,
 | 
			
		||||
                port: {
 | 
			
		||||
                  name: servicePort,
 | 
			
		||||
                },
 | 
			
		||||
              ],
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
            path: path,
 | 
			
		||||
            pathType: 'Prefix',
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
      },
 | 
			
		||||
@ -126,16 +129,15 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  // Add TLS to Ingress resource with secret containing the certificates if exists
 | 
			
		||||
  addIngressTLS(I, S=''):: (
 | 
			
		||||
  addIngressTLS(I, hosts, secretName=''):: (
 | 
			
		||||
    local ingress = k.networking.v1beta1.ingress;
 | 
			
		||||
    local ingressTls = ingress.mixin.spec.tlsType;
 | 
			
		||||
    local host = I.spec.rules[0].host;
 | 
			
		||||
    local namespace = I.metadata.namespace;
 | 
			
		||||
 | 
			
		||||
    I + ingress.mixin.spec.withTls(
 | 
			
		||||
      ingressTls.new() +
 | 
			
		||||
      ingressTls.withHosts(host) +
 | 
			
		||||
      (if S != '' then { secretName: S } else {})
 | 
			
		||||
      ingressTls.withHosts(hosts) +
 | 
			
		||||
      (if secretName != '' then { secretName: secretName } else {})
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -54,6 +54,9 @@
 | 
			
		||||
 | 
			
		||||
  // Domain suffix for the ingresses
 | 
			
		||||
  suffixDomain: '192.168.1.15.nip.io',
 | 
			
		||||
  // Additional domain suffixes for the ingresses.
 | 
			
		||||
  // For example suffixDomain could be an external one and this a local domain.
 | 
			
		||||
  additionalDomains: [],
 | 
			
		||||
  // If TLSingress is true, a self-signed HTTPS ingress with redirect will be created
 | 
			
		||||
  TLSingress: true,
 | 
			
		||||
  // If UseProvidedCerts is true, provided files will be used on created HTTPS ingresses.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user