Skip to content

Commit b5da51d

Browse files
authored
feat: Support NIC version 2.4.0 (#38)
* Update chart for NIC v2.4.0 * Update manifests based on latest NIC version
1 parent 863bbd0 commit b5da51d

24 files changed

+188
-98
lines changed

config/manifests/bases/nginx-ingress-operator.clusterserviceversion.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ metadata:
3636
"enableExternalDNS": false,
3737
"enableLatencyMetrics": false,
3838
"enableOIDC": false,
39+
"includeYear": false,
3940
"enablePreviewPolicies": false,
4041
"enableSnippets": false,
4142
"enableTLSPassthrough": false,
@@ -49,8 +50,10 @@ metadata:
4950
"image": {
5051
"pullPolicy": "IfNotPresent",
5152
"repository": "nginx/nginx-ingress",
52-
"tag": "2.3.0-ubi"
53+
"tag": "2.4.0-ubi"
5354
},
55+
"lifecycle": {},
56+
"customConfigMap": "",
5457
"ingressClass": "nginx",
5558
"initContainers": [],
5659
"kind": "deployment",
@@ -123,6 +126,7 @@ metadata:
123126
"scheme": "http",
124127
"secret": ""
125128
},
129+
"disableIPV6": false,
126130
"rbac": {
127131
"create": true
128132
}
@@ -302,7 +306,7 @@ spec:
302306
- --metrics-bind-address=127.0.0.1:8080
303307
- --leader-elect
304308
- --leader-election-id=nginx-ingress-operator
305-
image: nginx/nginx-ingress-operator:1.0.0
309+
image: nginx/nginx-ingress-operator:1.1.0
306310
livenessProbe:
307311
httpGet:
308312
path: /healthz

config/rbac/role.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,14 @@ rules:
168168
- watch
169169
- update
170170
- create
171+
- apiGroups:
172+
- ""
173+
resources:
174+
- namespaces
175+
verbs:
176+
- get
177+
- list
178+
- watch
171179
# Comment out this scc block before running the bundle command if running in a non-OpenShift environment
172180
- apiGroups:
173181
- security.openshift.io
@@ -192,6 +200,16 @@ rules:
192200
- create
193201
- patch
194202
- list
203+
- apiGroups:
204+
- coordination.k8s.io
205+
resources:
206+
- leases
207+
verbs:
208+
- get
209+
- list
210+
- watch
211+
- update
212+
- create
195213
- apiGroups:
196214
- networking.k8s.io
197215
resources:

config/samples/charts_v1alpha1_nginxingress.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ spec:
2424
enableCustomResources: true
2525
enableLatencyMetrics: false
2626
enableOIDC: false
27+
includeYear: false
2728
enablePreviewPolicies: false
2829
enableSnippets: false
2930
enableTLSPassthrough: false
@@ -37,7 +38,9 @@ spec:
3738
image:
3839
pullPolicy: IfNotPresent
3940
repository: nginx/nginx-ingress
40-
tag: 2.3.0-ubi
41+
tag: 2.4.0-ubi
42+
lifecycle: {}
43+
customConfigMap: ""
4144
ingressClass: nginx
4245
initContainers: []
4346
kind: deployment
@@ -105,5 +108,6 @@ spec:
105108
port: 9113
106109
scheme: http
107110
secret: ""
111+
disableIPV6: false
108112
rbac:
109113
create: true

helm-charts/nginx-ingress/Chart.yaml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
apiVersion: v1
2-
appVersion: 2.3.0
1+
apiVersion: v2
2+
name: nginx-ingress
3+
version: 0.15.0
4+
appVersion: 2.4.0
5+
kubeVersion: ">= 1.19.0-0"
6+
type: application
37
description: NGINX Ingress Controller
8+
icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v2.4.0/deployments/helm-chart/chart-icon.png
49
home: https://github.com/nginxinc/kubernetes-ingress
5-
icon: https://raw.githubusercontent.com/nginxinc/kubernetes-ingress/v2.2.0/deployments/helm-chart/chart-icon.png
10+
sources:
11+
- https://github.com/nginxinc/kubernetes-ingress/tree/v2.4.0/deployments/helm-chart
612
keywords:
7-
- ingress
8-
- nginx
9-
kubeVersion: '>= 1.19.0-0'
13+
- ingress
14+
- nginx
1015
maintainers:
11-
12-
name: nginxinc
13-
name: nginx-ingress
14-
sources:
15-
- https://github.com/nginxinc/kubernetes-ingress/tree/v2.2.0/deployments/helm-chart
16-
version: 0.14.0
16+
- name: nginxinc
17+

helm-charts/nginx-ingress/README.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ This step is required if you're installing the chart using its sources. Addition
2323

2424
1. Clone the Ingress Controller repo:
2525
```console
26-
$ git clone https://github.com/nginxinc/kubernetes-ingress --branch v2.3.0
26+
$ git clone https://github.com/nginxinc/kubernetes-ingress --branch v2.4.0
2727
```
2828
**Note**: If you want to use the experimental repository (`edge`), remove the `--branch` flag and value.
2929

@@ -155,16 +155,19 @@ Parameter | Description | Default
155155
`controller.hostNetwork` | Enables the Ingress Controller pods to use the host's network namespace. | false
156156
`controller.nginxDebug` | Enables debugging for NGINX. Uses the `nginx-debug` binary. Requires `error-log-level: debug` in the ConfigMap via `controller.config.entries`. | false
157157
`controller.logLevel` | The log level of the Ingress Controller. | 1
158+
`controller.image.digest ` | The image digest of the Ingress Controller. | None
158159
`controller.image.repository` | The image repository of the Ingress Controller. | nginx/nginx-ingress
159-
`controller.image.tag` | The tag of the Ingress Controller image. | 2.3.0
160+
`controller.image.tag` | The tag of the Ingress Controller image. | 2.4.0
160161
`controller.image.pullPolicy` | The pull policy for the Ingress Controller image. | IfNotPresent
162+
`controller.lifecycle` | The lifecycle of the Ingress Controller pods. | {}
163+
`controller.customConfigMap` | The name of the custom ConfigMap used by the Ingress Controller. If set, then the default config is ignored. | ""
161164
`controller.config.name` | The name of the ConfigMap used by the Ingress Controller. | Autogenerated
162165
`controller.config.annotations` | The annotations of the Ingress Controller configmap. | {}
163166
`controller.config.entries` | The entries of the ConfigMap for customizing NGINX configuration. See [ConfigMap resource docs](https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/) for the list of supported ConfigMap keys. | {}
164167
`controller.customPorts` | A list of custom ports to expose on the NGINX ingress controller pod. Follows the conventional Kubernetes yaml syntax for container ports. | []
165-
`controller.defaultTLS.cert` | The base64-encoded TLS certificate for the default HTTPS server. If not specified, a pre-generated self-signed certificate is used. **Note:** It is recommended that you specify your own certificate. | A pre-generated self-signed certificate.
166-
`controller.defaultTLS.key` | The base64-encoded TLS key for the default HTTPS server. **Note:** If not specified, a pre-generated key is used. It is recommended that you specify your own key. | A pre-generated key.
167-
`controller.defaultTLS.secret` | The secret with a TLS certificate and key for the default HTTPS server. The value must follow the following format: `<namespace>/<name>`. Used as an alternative to specifying a certificate and key using `controller.defaultTLS.cert` and `controller.defaultTLS.key` parameters. | None
168+
`controller.defaultTLS.cert` | The base64-encoded TLS certificate for the default HTTPS server. **Note:** By default, a pre-generated self-signed certificate is used. It is recommended that you specify your own certificate. Alternatively, omitting the default server secret completely will configure NGINX to reject TLS connections to the default server. | A pre-generated self-signed certificate.
169+
`controller.defaultTLS.key` | The base64-encoded TLS key for the default HTTPS server. **Note:** By default, a pre-generated key is used. It is recommended that you specify your own key. Alternatively, omitting the default server secret completely will configure NGINX to reject TLS connections to the default server. | A pre-generated key.
170+
`controller.defaultTLS.secret` | The secret with a TLS certificate and key for the default HTTPS server. The value must follow the following format: `<namespace>/<name>`. Used as an alternative to specifying a certificate and key using `controller.defaultTLS.cert` and `controller.defaultTLS.key` parameters. **Note:** Alternatively, omitting the default server secret completely will configure NGINX to reject TLS connections to the default server. | None
168171
`controller.wildcardTLS.cert` | The base64-encoded TLS certificate for every Ingress/VirtualServer host that has TLS enabled but no secret specified. If the parameter is not set, for such Ingress/VirtualServer hosts NGINX will break any attempt to establish a TLS connection. | None
169172
`controller.wildcardTLS.key` | The base64-encoded TLS key for every Ingress/VirtualServer host that has TLS enabled but no secret specified. If the parameter is not set, for such Ingress/VirtualServer hosts NGINX will break any attempt to establish a TLS connection. | None
170173
`controller.wildcardTLS.secret` | The secret with a TLS certificate and key for every Ingress/VirtualServer host that has TLS enabled but no secret specified. The value must follow the following format: `<namespace>/<name>`. Used as an alternative to specifying a certificate and key using `controller.wildcardTLS.cert` and `controller.wildcardTLS.key` parameters. | None
@@ -181,7 +184,7 @@ Parameter | Description | Default
181184
`controller.replicaCount` | The number of replicas of the Ingress Controller deployment. | 1
182185
`controller.ingressClass` | A class of the Ingress Controller. An IngressClass resource with the name equal to the class must be deployed. Otherwise, the Ingress Controller will fail to start. The Ingress Controller only processes resources that belong to its class - i.e. have the "ingressClassName" field resource equal to the class. The Ingress Controller processes all the VirtualServer/VirtualServerRoute/TransportServer resources that do not have the "ingressClassName" field for all versions of kubernetes. | nginx
183186
`controller.setAsDefaultIngress` | New Ingresses without an `"ingressClassName"` field specified will be assigned the class specified in `controller.ingressClass`. | false
184-
`controller.watchNamespace` | Namespace to watch for Ingress resources. By default the Ingress Controller watches all namespaces. | ""
187+
`controller.watchNamespace` | Comma separated list of namespaces the Ingress Controller should watch for resources. By default the Ingress Controller watches all namespaces. | ""
185188
`controller.enableCustomResources` | Enable the custom resources. | true
186189
`controller.enablePreviewPolicies` | Enable preview policies. This parameter is deprecated. To enable OIDC Policies please use `controller.enableOIDC` instead. | false
187190
`controller.enableOIDC` | Enable OIDC policies. | false
@@ -217,6 +220,11 @@ Parameter | Description | Default
217220
`controller.service.httpsPort.targetPort` | The target port of the HTTPS port of the Ingress Controller service. | 443
218221
`controller.serviceAccount.name` | The name of the service account of the Ingress Controller pods. Used for RBAC. | Autogenerated
219222
`controller.serviceAccount.imagePullSecretName` | The name of the secret containing docker registry credentials. Secret must exist in the same namespace as the helm release. | ""
223+
`controller.serviceMonitor.name` | The name of the serviceMonitor. | Autogenerated
224+
`controller.serviceMonitor.create` | Create a ServiceMonitor custom resource. | false
225+
`controller.serviceMonitor.labels` | Kubernetes object labels to attach to the serviceMonitor object. | ""
226+
`controller.serviceMonitor.selectorMatchLabels` | A set of labels to allow the selection of endpoints for the ServiceMonitor. | ""
227+
`controller.serviceMonitor.endpoints` | A list of endpoints allowed as part of this ServiceMonitor. | ""
220228
`controller.reportIngressStatus.enable` | Updates the address field in the status of Ingress resources with an external address of the Ingress Controller. You must also specify the source of the external address either through an external service via `controller.reportIngressStatus.externalService`, `controller.reportIngressStatus.ingressLink` or the `external-status-address` entry in the ConfigMap via `controller.config.entries`. **Note:** `controller.config.entries.external-status-address` takes precedence over the others. | true
221229
`controller.reportIngressStatus.externalService` | Specifies the name of the service with the type LoadBalancer through which the Ingress Controller is exposed externally. The external address of the service is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute resources. `controller.reportIngressStatus.enable` must be set to `true`. The default is autogenerated and enabled when `controller.service.create` is set to `true` and `controller.service.type` is set to `LoadBalancer`. | Autogenerated
222230
`controller.reportIngressStatus.ingressLink` | Specifies the name of the IngressLink resource, which exposes the Ingress Controller pods via a BIG-IP system. The IP of the BIG-IP system is used when reporting the status of Ingress, VirtualServer and VirtualServerRoute resources. `controller.reportIngressStatus.enable` must be set to `true`. | ""
@@ -225,17 +233,19 @@ Parameter | Description | Default
225233
`controller.reportIngressStatus.annotations` | The annotations of the leader election configmap. | {}
226234
`controller.pod.annotations` | The annotations of the Ingress Controller pod. | {}
227235
`controller.pod.extraLabels` | The additional extra labels of the Ingress Controller pod. | {}
228-
`controller.appprotect.enable` | Enables the App Protect module in the Ingress Controller. | false
236+
`controller.appprotect.enable` | Enables the App Protect WAF module in the Ingress Controller. | false
229237
`controller.appprotectdos.enable` | Enables the App Protect DoS module in the Ingress Controller. | false
230238
`controller.appprotectdos.debug` | Enable debugging for App Protect DoS. | false
231239
`controller.appprotectdos.maxDaemons` | Max number of ADMD instances. | 1
232240
`controller.appprotectdos.maxWorkers` | Max number of nginx processes to support. | Number of CPU cores in the machine
233241
`controller.appprotectdos.memory` | RAM memory size to consume in MB. | 50% of free RAM in the container or 80MB, the smaller
234242
`controller.readyStatus.enable` | Enables the readiness endpoint `"/nginx-ready"`. The endpoint returns a success code when NGINX has loaded all the config after the startup. This also configures a readiness probe for the Ingress Controller pods that uses the readiness endpoint. | true
235243
`controller.readyStatus.port` | The HTTP port for the readiness endpoint. | 8081
244+
`controller.readyStatus.initialDelaySeconds` | The number of seconds after the Ingress Controller pod has started before readiness probes are initiated. | 0
236245
`controller.enableLatencyMetrics` | Enable collection of latency metrics for upstreams. Requires `prometheus.create`. | false
237246
`controller.minReadySeconds` | Specifies the minimum number of seconds for which a newly created Pod should be ready without any of its containers crashing, for it to be considered available. [docs](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#min-ready-seconds) | 0
238247
`controller.strategy` | Specifies the strategy used to replace old Pods by new ones. [docs](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy) | {}
248+
`controller.disableIPV6` | Disable IPV6 listeners explicitly for nodes that do not support the IPV6 stack. | false
239249
`rbac.create` | Configures RBAC. | true
240250
`prometheus.create` | Expose NGINX or NGINX Plus metrics in the Prometheus format. | false
241251
`prometheus.port` | Configures the port to scrape the metrics. | 9113

helm-charts/nginx-ingress/crds/appprotectdos.f5.com_apdoslogconfs.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.4.0
5+
controller-gen.kubebuilder.io/version: v0.9.2
66
creationTimestamp: null
77
name: apdoslogconfs.appprotectdos.f5.com
88
spec:
@@ -38,13 +38,11 @@ spec:
3838
- splunk
3939
- arcsight
4040
- user-defined
41-
default: splunk
4241
type: string
4342
format_string:
4443
type: string
4544
max_message_size:
4645
pattern: ^([1-9]|[1-5][0-9]|6[0-4])k$
47-
default: 5k
4846
type: string
4947
type: object
5048
filter:

helm-charts/nginx-ingress/crds/appprotectdos.f5.com_apdospolicy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.4.0
5+
controller-gen.kubebuilder.io/version: v0.9.2
66
creationTimestamp: null
77
name: apdospolicies.appprotectdos.f5.com
88
spec:

helm-charts/nginx-ingress/crds/appprotectdos.f5.com_dosprotectedresources.yaml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.7.0
5+
controller-gen.kubebuilder.io/version: v0.10.0
66
creationTimestamp: null
77
name: dosprotectedresources.appprotectdos.f5.com
88
spec:
@@ -79,9 +79,3 @@ spec:
7979
type: string
8080
served: true
8181
storage: true
82-
status:
83-
acceptedNames:
84-
kind: ""
85-
plural: ""
86-
conditions: []
87-
storedVersions: []

helm-charts/nginx-ingress/crds/externaldns.nginx.org_dnsendpoints.yaml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.8.0
5+
controller-gen.kubebuilder.io/version: v0.10.0
66
creationTimestamp: null
77
name: dnsendpoints.externaldns.nginx.org
88
spec:
@@ -29,11 +29,13 @@ spec:
2929
metadata:
3030
type: object
3131
spec:
32+
description: DNSEndpointSpec holds information about endpoints.
3233
type: object
3334
properties:
3435
endpoints:
3536
type: array
3637
items:
38+
description: Endpoint describes DNS Endpoint.
3739
type: object
3840
properties:
3941
dnsName:
@@ -48,6 +50,7 @@ spec:
4850
description: ProviderSpecific stores provider specific config
4951
type: array
5052
items:
53+
description: ProviderSpecificProperty represents provider specific config property.
5154
type: object
5255
properties:
5356
name:
@@ -69,6 +72,7 @@ spec:
6972
items:
7073
type: string
7174
status:
75+
description: DNSEndpointStatus represents generation observed by the external dns controller.
7276
type: object
7377
properties:
7478
observedGeneration:
@@ -79,9 +83,3 @@ spec:
7983
storage: true
8084
subresources:
8185
status: {}
82-
status:
83-
acceptedNames:
84-
kind: ""
85-
plural: ""
86-
conditions: []
87-
storedVersions: []

helm-charts/nginx-ingress/crds/k8s.nginx.org_globalconfigurations.yaml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.8.0
5+
controller-gen.kubebuilder.io/version: v0.10.0
66
creationTimestamp: null
77
name: globalconfigurations.k8s.nginx.org
88
spec:
@@ -48,9 +48,3 @@ spec:
4848
type: string
4949
served: true
5050
storage: true
51-
status:
52-
acceptedNames:
53-
kind: ""
54-
plural: ""
55-
conditions: []
56-
storedVersions: []

0 commit comments

Comments
 (0)