mirror of
https://github.com/carlosedp/cluster-monitoring.git
synced 2024-11-20 19:07:17 +01:00
Add support for more then one suffix domain
This commit is contained in:
parent
c0807b6477
commit
514aa37f9a
@ -7,9 +7,10 @@ local vars = import 'vars.jsonnet';
|
|||||||
namespace: 'monitoring',
|
namespace: 'monitoring',
|
||||||
|
|
||||||
urls+:: {
|
urls+:: {
|
||||||
prom_ingress: 'prometheus.' + vars.suffixDomain,
|
domains: [vars.suffixDomain] + vars.additionalDomains,
|
||||||
alert_ingress: 'alertmanager.' + vars.suffixDomain,
|
prom_ingress: ['prometheus.' + domain for domain in $._config.urls.domains],
|
||||||
grafana_ingress: 'grafana.' + vars.suffixDomain,
|
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,
|
grafana_ingress_external: 'grafana.' + vars.suffixDomain,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -76,7 +77,7 @@ local vars = import 'vars.jsonnet';
|
|||||||
retention: vars.prometheus.retention,
|
retention: vars.prometheus.retention,
|
||||||
scrapeInterval: vars.prometheus.scrapeInterval,
|
scrapeInterval: vars.prometheus.scrapeInterval,
|
||||||
scrapeTimeout: vars.prometheus.scrapeTimeout,
|
scrapeTimeout: vars.prometheus.scrapeTimeout,
|
||||||
externalUrl: 'http://' + $._config.urls.prom_ingress,
|
externalUrl: 'http://' + $._config.urls.prom_ingress[0],
|
||||||
}
|
}
|
||||||
+ (if vars.enablePersistence.prometheus then {
|
+ (if vars.enablePersistence.prometheus then {
|
||||||
storage: {
|
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');
|
local I = utils.newIngress('alertmanager-main', $._config.namespace, $._config.urls.alert_ingress, '/', 'alertmanager-main', 'web');
|
||||||
if vars.TLSingress then
|
if vars.TLSingress then
|
||||||
if vars.UseProvidedCerts then
|
if vars.UseProvidedCerts then
|
||||||
utils.addIngressTLS(I, 'ingress-secret')
|
utils.addIngressTLS(I, $._config.urls.alert_ingress, 'ingress-secret')
|
||||||
else
|
else
|
||||||
utils.addIngressTLS(I)
|
utils.addIngressTLS(I, $._config.urls.alert_ingress)
|
||||||
else
|
else
|
||||||
I,
|
I,
|
||||||
|
|
||||||
@ -149,9 +150,9 @@ local vars = import 'vars.jsonnet';
|
|||||||
local I = utils.newIngress('grafana', $._config.namespace, $._config.urls.grafana_ingress, '/', 'grafana', 'http');
|
local I = utils.newIngress('grafana', $._config.namespace, $._config.urls.grafana_ingress, '/', 'grafana', 'http');
|
||||||
if vars.TLSingress then
|
if vars.TLSingress then
|
||||||
if vars.UseProvidedCerts then
|
if vars.UseProvidedCerts then
|
||||||
utils.addIngressTLS(I, 'ingress-secret')
|
utils.addIngressTLS(I, $._config.urls.grafana_ingress, 'ingress-secret')
|
||||||
else
|
else
|
||||||
utils.addIngressTLS(I)
|
utils.addIngressTLS(I, $._config.urls.grafana_ingress)
|
||||||
else
|
else
|
||||||
I,
|
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');
|
local I = utils.newIngress('prometheus-k8s', $._config.namespace, $._config.urls.prom_ingress, '/', 'prometheus-k8s', 'web');
|
||||||
if vars.TLSingress then
|
if vars.TLSingress then
|
||||||
if vars.UseProvidedCerts then
|
if vars.UseProvidedCerts then
|
||||||
utils.addIngressTLS(I, 'ingress-secret')
|
utils.addIngressTLS(I, $._config.urls.prom_ingress, 'ingress-secret')
|
||||||
else
|
else
|
||||||
utils.addIngressTLS(I)
|
utils.addIngressTLS(I, $._config.urls.prom_ingress)
|
||||||
else
|
else
|
||||||
I,
|
I,
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
|||||||
),
|
),
|
||||||
|
|
||||||
// Creates ingress objects
|
// Creates ingress objects
|
||||||
newIngress(name, namespace, host, path, serviceName, servicePort):: (
|
newIngress(name, namespace, hosts, path, serviceName, servicePort):: (
|
||||||
{
|
{
|
||||||
apiVersion: 'networking.k8s.io/v1',
|
apiVersion: 'networking.k8s.io/v1',
|
||||||
kind: 'Ingress',
|
kind: 'Ingress',
|
||||||
@ -100,25 +100,28 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
|||||||
namespace: namespace,
|
namespace: namespace,
|
||||||
},
|
},
|
||||||
spec: {
|
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,
|
backend: {
|
||||||
http: {
|
service: {
|
||||||
paths: [
|
name: serviceName,
|
||||||
{
|
port: {
|
||||||
backend: {
|
name: servicePort,
|
||||||
service: {
|
|
||||||
name: serviceName,
|
|
||||||
port: {
|
|
||||||
name: servicePort,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
path: path,
|
|
||||||
pathType: 'Prefix',
|
|
||||||
},
|
},
|
||||||
],
|
},
|
||||||
},
|
},
|
||||||
|
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
|
// 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 ingress = k.networking.v1beta1.ingress;
|
||||||
local ingressTls = ingress.mixin.spec.tlsType;
|
local ingressTls = ingress.mixin.spec.tlsType;
|
||||||
local host = I.spec.rules[0].host;
|
|
||||||
local namespace = I.metadata.namespace;
|
local namespace = I.metadata.namespace;
|
||||||
|
|
||||||
I + ingress.mixin.spec.withTls(
|
I + ingress.mixin.spec.withTls(
|
||||||
ingressTls.new() +
|
ingressTls.new() +
|
||||||
ingressTls.withHosts(host) +
|
ingressTls.withHosts(hosts) +
|
||||||
(if S != '' then { secretName: S } else {})
|
(if secretName != '' then { secretName: secretName } else {})
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -54,6 +54,9 @@
|
|||||||
|
|
||||||
// Domain suffix for the ingresses
|
// Domain suffix for the ingresses
|
||||||
suffixDomain: '192.168.1.15.nip.io',
|
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
|
// If TLSingress is true, a self-signed HTTPS ingress with redirect will be created
|
||||||
TLSingress: true,
|
TLSingress: true,
|
||||||
// If UseProvidedCerts is true, provided files will be used on created HTTPS ingresses.
|
// If UseProvidedCerts is true, provided files will be used on created HTTPS ingresses.
|
||||||
|
Loading…
Reference in New Issue
Block a user