From 9d763792aac7121ebe83849dda77f8a29e538a95 Mon Sep 17 00:00:00 2001 From: Ragin666 Date: Wed, 11 Nov 2020 17:01:35 +0100 Subject: [PATCH 1/4] Preparation of feature request #29 - Support for external-dns annotations Signed-off-by: Ragin666 --- .../templates/loadbalancer.yaml | 9 ++++ charts/nginx-ingress-controller/values.yaml | 4 ++ templates/nginx_ingress_helm_values.yaml | 44 ++++++++++--------- 3 files changed, 37 insertions(+), 20 deletions(-) diff --git a/charts/nginx-ingress-controller/templates/loadbalancer.yaml b/charts/nginx-ingress-controller/templates/loadbalancer.yaml index bbf0aab..0da74ff 100644 --- a/charts/nginx-ingress-controller/templates/loadbalancer.yaml +++ b/charts/nginx-ingress-controller/templates/loadbalancer.yaml @@ -7,6 +7,15 @@ metadata: labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx + {{- if .Values.k8sJenkinsMgmt.loadbalancer.annotations.enabled}} + annotations: + {{- if .Values.k8sJenkinsMgmt.loadbalancer.annotations.external_dns_hostname }} + external-dns.alpha.kubernetes.io/hostname: {{ .Values.k8sJenkinsMgmt.loadbalancer.annotations.external_dns_hostname }}}} + {{- end }} + {{- if .Values.k8sJenkinsMgmt.loadbalancer.annotations.external_dns_ttl }} + external-dns.alpha.kubernetes.io/ttl: {{ .Values.k8sJenkinsMgmt.loadbalancer.annotations.external_dns_ttl }}}} + {{- end }} + spec: # externalTrafficPolicy: Local type: LoadBalancer diff --git a/charts/nginx-ingress-controller/values.yaml b/charts/nginx-ingress-controller/values.yaml index 82a8462..e3fceab 100644 --- a/charts/nginx-ingress-controller/values.yaml +++ b/charts/nginx-ingress-controller/values.yaml @@ -13,6 +13,10 @@ k8sJenkinsMgmt: enabled: false loadbalancer: enabled: false + annotations: + enabled: false + external_dns_hostname: "my.domain.tld,another.domain.tld" + external_dns_ttl: 60 ports: http: port: 80 diff --git a/templates/nginx_ingress_helm_values.yaml b/templates/nginx_ingress_helm_values.yaml index bfd7b93..6339b48 100644 --- a/templates/nginx_ingress_helm_values.yaml +++ b/templates/nginx_ingress_helm_values.yaml @@ -1,21 +1,25 @@ k8sJenkinsMgmt: - ingress: - annotationIngressClass: ##NGINX_INGRESS_ANNOTATION_CLASS## - namespace: ##NAMESPACE## - loadbalancerIp: ##PUBLIC_IP_ADDRESS## - deploymentName: ##NGINX_INGRESS_DEPLOYMENT_NAME## - jenkinsDeploymentName: ##JENKINS_MASTER_DEPLOYMENT_NAME## - jenkinsUriPrefix: ##JENKINS_MASTER_DEFAULT_URI_PREFIX## - containerImage: ##NGINX_INGRESS_CONTROLLER_CONTAINER_IMAGE## - imagePullSecrets: ##NGINX_INGRESS_CONTROLLER_CONTAINER_PULL_SECRETS## - controllerForNamespace: - enabled: ##NGINX_INGRESS_CONTROLLER_FOR_NAMESPACE## - loadbalancer: - enabled: ##NGINX_LOADBALANCER_ENABLED## - ports: - http: - port: ##NGINX_LOADBALANCER_HTTP_PORT## - targetPort: ##NGINX_LOADBALANCER_HTTP_TARGETPORT## - https: - port: ##NGINX_LOADBALANCER_HTTPS_PORT## - targetPort: ##NGINX_LOADBALANCER_HTTPS_TARGETPORT## + ingress: + annotationIngressClass: ##NGINX_INGRESS_ANNOTATION_CLASS## + namespace: ##NAMESPACE## + loadbalancerIp: ##PUBLIC_IP_ADDRESS## + deploymentName: ##NGINX_INGRESS_DEPLOYMENT_NAME## + jenkinsDeploymentName: ##JENKINS_MASTER_DEPLOYMENT_NAME## + jenkinsUriPrefix: ##JENKINS_MASTER_DEFAULT_URI_PREFIX## + containerImage: ##NGINX_INGRESS_CONTROLLER_CONTAINER_IMAGE## + imagePullSecrets: ##NGINX_INGRESS_CONTROLLER_CONTAINER_PULL_SECRETS## + controllerForNamespace: + enabled: ##NGINX_INGRESS_CONTROLLER_FOR_NAMESPACE## + loadbalancer: + enabled: ##NGINX_LOADBALANCER_ENABLED## + ports: + http: + port: ##NGINX_LOADBALANCER_HTTP_PORT## + targetPort: ##NGINX_LOADBALANCER_HTTP_TARGETPORT## + https: + port: ##NGINX_LOADBALANCER_HTTPS_PORT## + targetPort: ##NGINX_LOADBALANCER_HTTPS_TARGETPORT## + annotations: + enabled: false + external_dns_hostname: "my.domain.tld,another.domain.tld" + external_dns_ttl: 60 From 9f5265bfc01962a193138a511f8757ca2976edce Mon Sep 17 00:00:00 2001 From: Ragin666 Date: Wed, 11 Nov 2020 17:32:19 +0100 Subject: [PATCH 2/4] namespace as prefix for domain Signed-off-by: Ragin666 --- .../nginx_template_actions.go | 10 ++++++++++ app/constants/constants.go | 9 +++++++++ app/models/configuration.go | 19 +++++++++++++++++++ config/k8s_jcasc_mgmt.cnf | 7 +++++++ templates/nginx_ingress_helm_values.yaml | 6 +++--- 5 files changed, 48 insertions(+), 3 deletions(-) diff --git a/app/actions/createprojectactions/nginx_template_actions.go b/app/actions/createprojectactions/nginx_template_actions.go index a40f48b..748c3ce 100644 --- a/app/actions/createprojectactions/nginx_template_actions.go +++ b/app/actions/createprojectactions/nginx_template_actions.go @@ -51,6 +51,16 @@ func ActionReplaceGlobalConfigNginxIngressCtrlHelmValues(projectDirectory string if success, err = files.ReplaceStringInFile(nginxHelmValuesFile, constants.TemplateNginxLoadbalancerHTTPSTargetPort, strconv.FormatUint(models.GetConfiguration().LoadBalancer.Port.HTTPSTarget, 10)); !success { return success, err } + // Loadbalancer annotations placeholder + if success, err = files.ReplaceStringInFile(nginxHelmValuesFile, constants.TemplateNginxLoadbalancerAnnotationsEnabled, strconv.FormatBool(models.GetConfiguration().LoadBalancer.Annotations.Enabled)); !success { + return success, err + } + if success, err = files.ReplaceStringInFile(nginxHelmValuesFile, constants.TemplateNginxLoadbalancerAnnotationsExtDnsHostname, models.GetConfiguration().LoadBalancer.Annotations.ExtDNS.Hostname); !success { + return success, err + } + if success, err = files.ReplaceStringInFile(nginxHelmValuesFile, constants.TemplateNginxLoadbalancerAnnotationsExtDnsTtl, strconv.FormatUint(models.GetConfiguration().LoadBalancer.Annotations.ExtDNS.Ttl, 10)); !success { + return success, err + } } return true, nil } diff --git a/app/constants/constants.go b/app/constants/constants.go index ff161fd..51a00cc 100644 --- a/app/constants/constants.go +++ b/app/constants/constants.go @@ -213,6 +213,15 @@ const TemplateNginxLoadbalancerHTTPSPort = "##NGINX_LOADBALANCER_HTTPS_PORT##" // TemplateNginxLoadbalancerHTTPSTargetPort : Placeholder for Nginx load balancer HTTPS target port const TemplateNginxLoadbalancerHTTPSTargetPort = "##NGINX_LOADBALANCER_HTTPS_TARGETPORT##" +// TemplateNginxLoadbalancerAnnotationsEnabled : Placeholder for Nginx Annotation support +const TemplateNginxLoadbalancerAnnotationsEnabled = "##NGINX_LOADBALANCER_ANNOTATIONS_ENABLED##" + +// TemplateNginxLoadbalancerAnnotationsExtDnsTtl : Placeholder for external DNS TTL annotation +const TemplateNginxLoadbalancerAnnotationsExtDnsTtl = "##NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_TTL##" + +// TemplateNginxLoadbalancerAnnotationsExtDnsTtl : Placeholder for external DNS hostname annotation +const TemplateNginxLoadbalancerAnnotationsExtDnsHostname = "##NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_HOSTNAME##" + // TemplateKubernetesServerCertificate : Placeholder for Kubernetes server certificate const TemplateKubernetesServerCertificate = "##KUBERNETES_SERVER_CERTIFICATE##" diff --git a/app/models/configuration.go b/app/models/configuration.go index 9676fb5..c471795 100644 --- a/app/models/configuration.go +++ b/app/models/configuration.go @@ -97,6 +97,13 @@ type Configuration struct { HTTPS uint64 HTTPSTarget uint64 } + Annotations struct { + Enabled bool + ExtDNS struct { + Ttl uint64 + Hostname string + } + } } // Kubernetes relevant data Kubernetes struct { @@ -414,6 +421,18 @@ func addLoadBalancerConfig(key string, value string) (success bool) { configuration.LoadBalancer.Port.HTTPSTarget, _ = strconv.ParseUint(value, 10, 16) success = true break + case "NGINX_LOADBALANCER_ANNOTATIONS_ENABLED": + configuration.LoadBalancer.Annotations.Enabled, _ = strconv.ParseBool(value) + success = true + break + case "NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_HOSTNAME": + configuration.LoadBalancer.Annotations.ExtDNS.Hostname = value + success = true + break + case "NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_TTL": + configuration.LoadBalancer.Annotations.ExtDNS.Ttl, _ = strconv.ParseUint(value, 10, 16) + success = true + break } return success } diff --git a/config/k8s_jcasc_mgmt.cnf b/config/k8s_jcasc_mgmt.cnf index 13a9974..a6fc837 100644 --- a/config/k8s_jcasc_mgmt.cnf +++ b/config/k8s_jcasc_mgmt.cnf @@ -81,6 +81,13 @@ NGINX_LOADBALANCER_HTTP_TARGETPORT=80 NGINX_LOADBALANCER_HTTPS_PORT=443 NGINX_LOADBALANCER_HTTPS_TARGETPORT=443 +# enable annotations on the loadbalancer service +NGINX_LOADBALANCER_ANNOTATIONS_ENABLED=false + +# external DNS hostname +NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_HOSTNAME="domain.tld" +# external DNS TTL time in seconds +NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_TTL=60 # default certificate of the Kubernetes server KUBERNETES_SERVER_CERTIFICATE=LS0tLS1DeUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM3akNDQWRhZ0F4SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFvTVJJd0VBWURWUVFLRXdsMGFHVXQKY21GdVkyZ3hFakFRQmdOVkJBTVRDV05oZEhSc1pTMWpZVEFlRncweE9URXdNalV3TnpNMU5UaGFGdzB5T1RFdwpNakl3TnpNMU5UaGFNQ2d4RWpBUUJnTlZCQW9UQ1hSb1pTMXlZVzVqYURFU01CQUdBMVVFQXhNSlkyRjBkR3hsCkxXTmhNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXZmSU5NdFJCN1liRzVvbEsKL0lpckdFZlZVbWxhZXcyR0RzMm5od2NOZC9Ha09NdmVMdThySDUzdUMwRm1QTXYvd21CdWRKMGJ0anF3RldxQgpubHlVL0VPQWhzeUN3Z1FFeE0xY2ZmQTUzRDZlQncyVHVsZ3ZudTNoYzRmbmZvTEdVbUNyTVNiVXplMjBncm43CjI4UWdmcXBxcVRQMm42b21OUzlLSm9obmp4VDZpaVVYZExwS29nNEhhcndiUVNmdmdnWHFrTGNRVmpucjllWkYKTEhGY1hpanpVK1pES3BIT2tyNGlsc1FiOFhiT2xpK01Sa0p2OWVOdEhYajRoeVFYakpBdHdzUUhTeXdja1lYUQpGUFRFQi9IejBQUUJpTC9jaTk0dGUrWHRSNDJMNFgrZlh2eUpIOGFNQ09VMTZkaEhuUjBxOW1jLzJjTlZMYjJ0CmxOWWVWUUlEQVFBQm95TXdJVEFPQmdOVkhROEJBZjhFQkFNQ0FxUXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU4KQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBZ3UzSDVkRHA5d0FNZlg0V0pUSWlEGUxjTU0wSElkMFJGbDhaTU9oUgowRTB0YnUrbkduaHh0d3lIMUE5UFRjRm9pU3h1THNNNktrSWNZL1ZLallqRnBPemxXZVJuVW12WnpTdDkyaTRuCjRoa2duA8ZEa1l6bzVPb1FEF21nRXhFVlpsRnJKaXFZYjYwR3Z6Q0RHblZUc3ljT2xqaVJmeGdWSFQvR8t6bkEKbG9scTY4Z2VlVGFZMWZjdWZTK3FPcHBKcm9CNjZvZENtenhuMExVZE4yRU9ucDJYZUdIZ0hjRzRFcFVXODdXcQpJZVZTTkY3SDFIYVlqY0Z2ZD3SZHFseVVpRjkvaWwxMFJYVHTSbzNPa3loZ3BzWnPUNWRBTk9jOXA0M0MKNHF0CjNwZDJvN2hHRGxVc3g4cFpsaZZHamo4ZA8rVy9qRXY1K1VTQzVPQ09kRHJJU2c9PQotLS0tLUVORCBDRVJUSUZMR0FUSS0tBT0t diff --git a/templates/nginx_ingress_helm_values.yaml b/templates/nginx_ingress_helm_values.yaml index 6339b48..0395558 100644 --- a/templates/nginx_ingress_helm_values.yaml +++ b/templates/nginx_ingress_helm_values.yaml @@ -20,6 +20,6 @@ k8sJenkinsMgmt: port: ##NGINX_LOADBALANCER_HTTPS_PORT## targetPort: ##NGINX_LOADBALANCER_HTTPS_TARGETPORT## annotations: - enabled: false - external_dns_hostname: "my.domain.tld,another.domain.tld" - external_dns_ttl: 60 + enabled: ##NGINX_LOADBALANCER_ANNOTATIONS_ENABLED## + external_dns_hostname: "##NAMESPACE##.##NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_HOSTNAME##" + external_dns_ttl: ##NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_TTL## From 482f10912b06fcfdb5e97b05a4a131ab3d3f4fd1 Mon Sep 17 00:00:00 2001 From: Ragin666 Date: Wed, 11 Nov 2020 19:37:11 +0100 Subject: [PATCH 3/4] Fix for namespace empty exception Signed-off-by: Ragin666 --- app/gui/install/install_gui_screen.go | 7 ++++--- app/gui/namespace/create_namespace_gui_screen.go | 4 +++- app/gui/secrets/apply_secrets_gui_screen.go | 7 ++++--- app/gui/uninstall/uninstall_gui_screen.go | 7 ++++--- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/gui/install/install_gui_screen.go b/app/gui/install/install_gui_screen.go index 8b8e915..fd4af3a 100644 --- a/app/gui/install/install_gui_screen.go +++ b/app/gui/install/install_gui_screen.go @@ -15,8 +15,8 @@ import ( "time" ) -var namespaceSelectEntry *widget.SelectEntry var namespaceErrorLabel = widget.NewLabel("") +var namespaceSelectEntry = uielements.CreateNamespaceSelectEntry(namespaceErrorLabel) // ScreenInstall shows the install screen func ScreenInstall(window fyne.Window) fyne.CanvasObject { @@ -28,7 +28,6 @@ func ScreenInstall(window fyne.Window) fyne.CanvasObject { var secretsPasswords string // Entries - var namespaceSelectEntry = uielements.CreateNamespaceSelectEntry(namespaceErrorLabel) var secretsFileSelect = uielements.CreateSecretsFileEntry() var deploymentNameEntry = uielements.CreateDeploymentNameEntry() var installTypeRadio = uielements.CreateInstallTypeRadio() @@ -123,7 +122,9 @@ type namespaceCreatedNotifier struct { func (notifier namespaceCreatedNotifier) Handle(payload events.NamespaceCreatedPayload) { logger.Log().Info("[install_gui] -> Retrieved event to that new namespace was created") - namespaceSelectEntry.SetOptions(namespaceactions.ActionReadNamespaceWithFilter(nil)) + if namespaceSelectEntry != nil { + namespaceSelectEntry.SetOptions(namespaceactions.ActionReadNamespaceWithFilter(nil)) + } events.RefreshTabs.Trigger(events.RefreshTabsPayload{ Time: time.Now(), diff --git a/app/gui/namespace/create_namespace_gui_screen.go b/app/gui/namespace/create_namespace_gui_screen.go index 1d3e9c9..aeed8b3 100644 --- a/app/gui/namespace/create_namespace_gui_screen.go +++ b/app/gui/namespace/create_namespace_gui_screen.go @@ -55,7 +55,9 @@ type namespaceCreatedNotifier struct { func (notifier namespaceCreatedNotifier) Handle(payload events.NamespaceCreatedPayload) { logger.Log().Info("[namespace_gui] -> Retrieved event to that new namespace was created") - namespaceSelectEntry.SetOptions(namespaceactions.ActionReadNamespaceWithFilter(nil)) + if namespaceSelectEntry != nil { + namespaceSelectEntry.SetOptions(namespaceactions.ActionReadNamespaceWithFilter(nil)) + } events.RefreshTabs.Trigger(events.RefreshTabsPayload{ Time: time.Now(), diff --git a/app/gui/secrets/apply_secrets_gui_screen.go b/app/gui/secrets/apply_secrets_gui_screen.go index 8ca9373..a386490 100644 --- a/app/gui/secrets/apply_secrets_gui_screen.go +++ b/app/gui/secrets/apply_secrets_gui_screen.go @@ -15,7 +15,7 @@ import ( // Namespace var namespaceErrorLabel = widget.NewLabel("") -var namespaceSelectEntry *widget.SelectEntry +var namespaceSelectEntry = uielements.CreateNamespaceSelectEntry(namespaceErrorLabel) // ScreenApplySecretsToAllNamespace shows the apply to all namespaces screen func ScreenApplySecretsToAllNamespace(window fyne.Window) fyne.CanvasObject { @@ -56,7 +56,6 @@ func ScreenApplySecretsToAllNamespace(window fyne.Window) fyne.CanvasObject { func ScreenApplySecretsToNamespace(window fyne.Window) fyne.CanvasObject { var secretsFiles = uielements.CreateSecretsFileEntry() var passwordEntry = widget.NewPasswordEntry() - var namespaceSelectEntry = uielements.CreateNamespaceSelectEntry(namespaceErrorLabel) var form = &widget.Form{ Items: []*widget.FormItem{ @@ -94,7 +93,9 @@ type namespaceCreatedNotifier struct { func (notifier namespaceCreatedNotifier) Handle(payload events.NamespaceCreatedPayload) { logger.Log().Info("[secrets_gui] -> Retrieved event to that new namespace was created") - namespaceSelectEntry.SetOptions(namespaceactions.ActionReadNamespaceWithFilter(nil)) + if namespaceSelectEntry != nil { + namespaceSelectEntry.SetOptions(namespaceactions.ActionReadNamespaceWithFilter(nil)) + } events.RefreshTabs.Trigger(events.RefreshTabsPayload{ Time: time.Now(), diff --git a/app/gui/uninstall/uninstall_gui_screen.go b/app/gui/uninstall/uninstall_gui_screen.go index 8d5b9ea..00d7ce2 100644 --- a/app/gui/uninstall/uninstall_gui_screen.go +++ b/app/gui/uninstall/uninstall_gui_screen.go @@ -17,7 +17,7 @@ import ( // Namespace var namespaceErrorLabel = widget.NewLabel("") -var namespaceSelectEntry *widget.SelectEntry +var namespaceSelectEntry = uielements.CreateNamespaceSelectEntry(namespaceErrorLabel) // ScreenUninstall shows the uninstall screen func ScreenUninstall(window fyne.Window) fyne.CanvasObject { @@ -32,7 +32,6 @@ func ScreenUninstall(window fyne.Window) fyne.CanvasObject { // Dry-run or execute var dryRunRadio = uielements.CreateDryRunRadio() - namespaceSelectEntry = uielements.CreateNamespaceSelectEntry(namespaceErrorLabel) var form = &widget.Form{ Items: []*widget.FormItem{ @@ -97,7 +96,9 @@ type namespaceCreatedNotifier struct { func (notifier namespaceCreatedNotifier) Handle(payload events.NamespaceCreatedPayload) { logger.Log().Info("[uninstall_gui] -> Retrieved event to that new namespace was created") - namespaceSelectEntry.SetOptions(namespaceactions.ActionReadNamespaceWithFilter(nil)) + if namespaceSelectEntry != nil { + namespaceSelectEntry.SetOptions(namespaceactions.ActionReadNamespaceWithFilter(nil)) + } events.RefreshTabs.Trigger(events.RefreshTabsPayload{ Time: time.Now(), From 4b85c2cce7aeb69d51a2724f70beb9f06ba57c70 Mon Sep 17 00:00:00 2001 From: Ragin666 Date: Wed, 11 Nov 2020 19:55:48 +0100 Subject: [PATCH 4/4] Documentation and version bumping Signed-off-by: Ragin666 --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ VERSION | 2 +- config/k8s_jcasc_mgmt.cnf | 2 +- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14afbab..cbc1d97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,38 @@ +# 2.8.0 +## Bugfixes +This version fixes a problem with the namespace events after creating a new project. + +## External DNS annotations +This version introduces support for external DNS annotations on the Nginx load balancer service. +To activate it, the following configurations can be changed in your project configuration: + +```bash +# enable annotations on the load balancer service +NGINX_LOADBALANCER_ANNOTATIONS_ENABLED=false + +# external DNS hostname +NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_HOSTNAME="domain.tld" +# external DNS TTL time in seconds +NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_TTL=60 +``` + +These values are replacing the annotations block in the [nginx_ingress_helm_values.yaml](templates/nginx_ingress_helm_values.yaml): +```yaml + annotations: + enabled: ##NGINX_LOADBALANCER_ANNOTATIONS_ENABLED## + external_dns_hostname: "##NAMESPACE##.##NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_HOSTNAME##" + external_dns_ttl: ##NGINX_LOADBALANCER_ANNOTATIONS_EXT_DNS_TTL## +``` +The default for new DNS names is `.`. +This version supports no direct UI edit (but it is possible to abuse e.g. the Jenkins Welcome Message). + +Please update this file in the project templates, if modified templates are used. + +If own charts are used, please update the following files in the `nginx-ingress-controller` folder: +- [templates/loadbalancer.yaml](charts/nginx-ingress-controller/templates/loadbalancer.yaml) +- [values.yaml](charts/nginx-ingress-controller/values.yaml) + + # 2.7.0 This release mainly updates the underlying fyne.io framework to version 1.4.0. With this update the UI is much better and gets a fresher color scheme. diff --git a/VERSION b/VERSION index 9aa3464..6533b66 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.7.0 \ No newline at end of file +2.8.0 \ No newline at end of file diff --git a/config/k8s_jcasc_mgmt.cnf b/config/k8s_jcasc_mgmt.cnf index a6fc837..50349cc 100644 --- a/config/k8s_jcasc_mgmt.cnf +++ b/config/k8s_jcasc_mgmt.cnf @@ -81,7 +81,7 @@ NGINX_LOADBALANCER_HTTP_TARGETPORT=80 NGINX_LOADBALANCER_HTTPS_PORT=443 NGINX_LOADBALANCER_HTTPS_TARGETPORT=443 -# enable annotations on the loadbalancer service +# enable annotations on the load balancer service NGINX_LOADBALANCER_ANNOTATIONS_ENABLED=false # external DNS hostname