diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d9abbde..d8b82be2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ and this project's packages adheres to [Semantic Versioning](http://semver.org/s ## [Unreleased] +### Added + +- Chart: Sync to upstream. ([#673](https://github.com/giantswarm/ingress-nginx-app/pull/673)) + - Values: Add `controller.disableLeaderElection`. + - Values: Add `controller.electionTTL`. + +### Changed + +- Chart: Sync to upstream. ([#673](https://github.com/giantswarm/ingress-nginx-app/pull/673)) + - Controller: Update image to [`v1.11.1`](https://github.com/kubernetes/ingress-nginx/blob/main/changelog/controller-1.11.1.md). + ## [3.8.1] - 2024-07-21 ### Changed diff --git a/helm/ingress-nginx/Chart.yaml b/helm/ingress-nginx/Chart.yaml index 9e8eeed6..c57d4f5e 100644 --- a/helm/ingress-nginx/Chart.yaml +++ b/helm/ingress-nginx/Chart.yaml @@ -2,7 +2,7 @@ annotations: application.giantswarm.io/team: team-cabbage ui.giantswarm.io/logo: https://s.giantswarm.io/app-icons/ingress-nginx/2/logo_dark.svg apiVersion: v2 -appVersion: 1.10.3 +appVersion: 1.11.1 description: Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer home: https://github.com/giantswarm/ingress-nginx-app icon: https://s.giantswarm.io/app-icons/ingress-nginx/2/icon_dark.svg diff --git a/helm/ingress-nginx/README.md b/helm/ingress-nginx/README.md index 604b8110..13a83304 100644 --- a/helm/ingress-nginx/README.md +++ b/helm/ingress-nginx/README.md @@ -2,7 +2,7 @@ [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer -![Version: 3.8.1](https://img.shields.io/badge/Version-3.8.1-informational?style=flat-square) ![AppVersion: 1.10.3](https://img.shields.io/badge/AppVersion-1.10.3-informational?style=flat-square) +![Version: 3.8.1](https://img.shields.io/badge/Version-3.8.1-informational?style=flat-square) ![AppVersion: 1.11.1](https://img.shields.io/badge/AppVersion-1.11.1-informational?style=flat-square) To use, add `ingressClassName: nginx` spec field or the `kubernetes.io/ingress.class: nginx` annotation to your Ingress resources. @@ -302,9 +302,11 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.containerSecurityContext | object | `{}` | Security context for controller containers | | controller.customTemplate.configMapKey | string | `""` | | | controller.customTemplate.configMapName | string | `""` | | +| controller.disableLeaderElection | bool | `false` | This configuration disable Nginx Controller Leader Election | | controller.dnsConfig | object | `{}` | Optionally customize the pod dnsConfig. | | controller.dnsPolicy | string | `"ClusterFirst"` | Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'. By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller to keep resolving names inside the k8s network, use ClusterFirstWithHostNet. | | controller.electionID | string | `""` | Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader' | +| controller.electionTTL | string | `""` | Duration a leader election is valid before it's getting re-elected, e.g. `15s`, `10m` or `1h`. (Default: 30s) | | controller.enableAnnotationValidations | bool | `true` | | | controller.enableMimalloc | bool | `true` | Enable mimalloc as a drop-in replacement for malloc. # ref: https://github.com/microsoft/mimalloc # | | controller.enableTopologyAwareRouting | bool | `false` | This configuration enables Topology Aware Routing feature, used together with service annotation service.kubernetes.io/topology-mode="auto" Defaults to false | @@ -334,7 +336,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu | controller.image.runAsNonRoot | bool | `true` | | | controller.image.runAsUser | int | `101` | | | controller.image.seccompProfile.type | string | `"RuntimeDefault"` | | -| controller.image.tag | string | `"v1.10.3"` | | +| controller.image.tag | string | `"v1.11.1"` | | | controller.ingressClass | string | `"nginx"` | For backwards compatibility with ingress.class annotation, use ingressClass. Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation | | controller.ingressClassByName | bool | `false` | Process IngressClass per name (additionally as per spec.controller). | | controller.ingressClassResource | object | `{"aliases":[],"annotations":{},"controllerValue":"k8s.io/ingress-nginx","default":false,"enabled":true,"name":"nginx","parameters":{}}` | This section refers to the creation of the IngressClass resource. IngressClasses are immutable and cannot be changed after creation. We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required. | diff --git a/helm/ingress-nginx/templates/_params.tpl b/helm/ingress-nginx/templates/_params.tpl index 0ddef0af..48569a8b 100644 --- a/helm/ingress-nginx/templates/_params.tpl +++ b/helm/ingress-nginx/templates/_params.tpl @@ -60,6 +60,12 @@ {{- if .Values.controller.enableTopologyAwareRouting }} - --enable-topology-aware-routing=true {{- end }} +{{- if .Values.controller.disableLeaderElection }} +- --disable-leader-election=true +{{- end }} +{{- if .Values.controller.electionTTL }} +- --election-ttl={{ .Values.controller.electionTTL }} +{{- end }} {{- range $key, $value := .Values.controller.extraArgs }} {{- /* Accept keys without values or with false as value */}} {{- if eq ($value | quote | len) 2 }} diff --git a/helm/ingress-nginx/values.schema.json b/helm/ingress-nginx/values.schema.json index 94cce1e7..285d581d 100644 --- a/helm/ingress-nginx/values.schema.json +++ b/helm/ingress-nginx/values.schema.json @@ -343,6 +343,9 @@ } } }, + "disableLeaderElection": { + "type": "boolean" + }, "dnsConfig": { "type": "object" }, @@ -352,6 +355,9 @@ "electionID": { "type": "string" }, + "electionTTL": { + "type": "string" + }, "enableAnnotationValidations": { "type": "boolean" }, diff --git a/helm/ingress-nginx/values.yaml b/helm/ingress-nginx/values.yaml index 231c7e86..1ac4fd24 100644 --- a/helm/ingress-nginx/values.yaml +++ b/helm/ingress-nginx/values.yaml @@ -26,7 +26,7 @@ controller: ## for backwards compatibility consider setting the full image url via the repository value below ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail ## repository: - tag: "v1.10.3" + tag: "v1.11.1" digest: "" digestChroot: "" pullPolicy: IfNotPresent @@ -90,6 +90,10 @@ controller: # -- This configuration enables Topology Aware Routing feature, used together with service annotation service.kubernetes.io/topology-mode="auto" # Defaults to false enableTopologyAwareRouting: false + # -- This configuration disable Nginx Controller Leader Election + disableLeaderElection: false + # -- Duration a leader election is valid before it's getting re-elected, e.g. `15s`, `10m` or `1h`. (Default: 30s) + electionTTL: "" # -- This configuration defines if Ingress Controller should allow users to set # their own *-snippet annotations, otherwise this is forbidden / dropped # when users add those annotations. diff --git a/vendir.lock.yml b/vendir.lock.yml index 29a115bb..b00cfc0a 100644 --- a/vendir.lock.yml +++ b/vendir.lock.yml @@ -2,8 +2,8 @@ apiVersion: vendir.k14s.io/v1alpha1 directories: - contents: - git: - commitTitle: 'ServiceMonitor: Configure relabelings. (#13)' - sha: 657fb5774a65fc62bab41dbe0af56aa8b4460791 + commitTitle: 'Chart: Implement Giant Swarm changes. (#12)...' + sha: bab5bab495b263fdafac31c9af7688eccbf52776 path: ingress-nginx path: helm kind: LockConfig