Add extra configMaps support to helm chart (#10673)
* Add extra configMaps support to helm chart Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com> * Introducing unit tests for helm chart Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com> --------- Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
This commit is contained in:
parent
60046bf7e1
commit
1f06e26080
8 changed files with 100 additions and 2 deletions
8
.github/workflows/ci.yaml
vendored
8
.github/workflows/ci.yaml
vendored
|
@ -163,6 +163,14 @@ jobs:
|
|||
go-version: '1.21.3'
|
||||
check-latest: true
|
||||
|
||||
- name: Install Helm Unit Test Plugin
|
||||
run: |
|
||||
helm plugin install https://github.com/quintush/helm-unittest
|
||||
|
||||
- name: Run Helm Unit Tests
|
||||
run: |
|
||||
helm unittest charts/ingress-nginx -d
|
||||
|
||||
- name: cache
|
||||
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
|
||||
with:
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -61,3 +61,4 @@ cmd/plugin/release/*.tar.gz
|
|||
cmd/plugin/release/LICENSE
|
||||
tmp/
|
||||
test/junitreports/
|
||||
tests/__snapshot__
|
||||
|
|
|
@ -20,3 +20,4 @@
|
|||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
__snapshot__
|
||||
|
|
|
@ -19,4 +19,4 @@ maintainers:
|
|||
name: ingress-nginx
|
||||
sources:
|
||||
- https://github.com/kubernetes/ingress-nginx
|
||||
version: 4.8.3
|
||||
version: 4.8.4
|
||||
|
|
|
@ -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
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
To use, add `ingressClassName: nginx` spec field or the `kubernetes.io/ingress.class: nginx` annotation to your Ingress resources.
|
||||
|
||||
|
@ -465,6 +465,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
|
|||
| defaultBackend.enabled | bool | `false` | |
|
||||
| defaultBackend.existingPsp | string | `""` | Use an existing PSP instead of creating one |
|
||||
| defaultBackend.extraArgs | object | `{}` | |
|
||||
| defaultBackend.extraConfigMaps | list | `[]` | |
|
||||
| defaultBackend.extraEnvs | list | `[]` | Additional environment variables to set for defaultBackend pods |
|
||||
| defaultBackend.extraVolumeMounts | list | `[]` | |
|
||||
| defaultBackend.extraVolumes | list | `[]` | |
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
{{- if .Values.defaultBackend.enabled }}
|
||||
{{- range .Values.defaultBackend.extraConfigMaps }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .name }}
|
||||
namespace: {{ include "ingress-nginx.namespace" $ | quote }}
|
||||
labels:
|
||||
{{- include "ingress-nginx.labels" $ | nindent 4 }}
|
||||
{{- with $.Values.defaultBackend.labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- with .labels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
data:
|
||||
{{- with .data }}
|
||||
{{- toYaml . | nindent 2 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
suite: test default backend extra ConfigMaps
|
||||
templates:
|
||||
- default-backend-extra-configmaps.yaml
|
||||
|
||||
tests:
|
||||
- it: should not create any ConfigMap by default
|
||||
set:
|
||||
Release.Namespace: default
|
||||
defaultBackend.enabled: true
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 0
|
||||
|
||||
- it: should create one ConfigMap
|
||||
set:
|
||||
Release.Namespace: default
|
||||
defaultBackend.enabled: true
|
||||
defaultBackend.extraConfigMaps:
|
||||
- name: my-configmap-1
|
||||
data:
|
||||
key1: value1
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 1
|
||||
- isKind:
|
||||
of: ConfigMap
|
||||
- equal:
|
||||
path: metadata.name
|
||||
value: my-configmap-1
|
||||
|
||||
- it: should correctly render multiple ConfigMaps
|
||||
set:
|
||||
Release.Namespace: nginx
|
||||
defaultBackend.enabled: true
|
||||
defaultBackend.extraConfigMaps:
|
||||
- name: my-configmap-1
|
||||
data:
|
||||
key1: value1
|
||||
- name: my-configmap-2
|
||||
data:
|
||||
key2: value2
|
||||
asserts:
|
||||
- hasDocuments:
|
||||
count: 2
|
||||
- isKind:
|
||||
of: ConfigMap
|
||||
- matchRegex:
|
||||
path: metadata.name
|
||||
pattern: "my-configmap-\\d+"
|
|
@ -931,6 +931,21 @@ defaultBackend:
|
|||
## Additional volumes to the default backend pod.
|
||||
# - name: copy-portal-skins
|
||||
# emptyDir: {}
|
||||
extraConfigMaps: []
|
||||
## Additional configmaps to the default backend pod.
|
||||
# Example ConfigMap, uncomment and configure as needed
|
||||
# - name: my-extra-configmap-1
|
||||
# labels:
|
||||
# type: config-1
|
||||
# data:
|
||||
# extra_file_1.html: |
|
||||
# <!-- Extra HTML content for ConfigMap 1 -->
|
||||
# - name: my-extra-configmap-2
|
||||
# labels:
|
||||
# type: config-2
|
||||
# data:
|
||||
# extra_file_2.html: |
|
||||
# <!-- Extra HTML content for ConfigMap 2 -->
|
||||
|
||||
autoscaling:
|
||||
annotations: {}
|
||||
|
|
Loading…
Reference in a new issue