From 5e24ff5959df953ed4bb37f051f2809784af1a3f Mon Sep 17 00:00:00 2001 From: Jusaa Date: Wed, 13 Sep 2023 12:52:32 +0300 Subject: [PATCH] Made ingressClassName configurable (#20) * Made ingressClassName configurable * remove default ingressclassname * Added customAnnotations configuration variable for ingress * Added customAnnotations options for all geoweb charts --------- Co-authored-by: Jussi Liukkonen --- charts/geoweb-cap-backend/Chart.yaml | 2 +- charts/geoweb-cap-backend/README.md | 4 +++- .../templates/{nginx-ingress.yaml => cap-ingress.yaml} | 10 +++++++++- charts/geoweb-cap-backend/values.yaml | 2 +- charts/geoweb-frontend/Chart.yaml | 4 ++-- charts/geoweb-frontend/README.md | 6 ++++-- .../{nginx-ingress.yaml => geoweb-ingress.yaml} | 10 +++++++++- charts/geoweb-frontend/values.yaml | 2 +- charts/geoweb-opmet-backend/Chart.yaml | 2 +- charts/geoweb-opmet-backend/README.md | 4 +++- .../{nginx-ingress.yaml => opmet-ingress.yaml} | 10 +++++++++- charts/geoweb-opmet-backend/values.yaml | 2 +- charts/geoweb-presets-backend/Chart.yaml | 2 +- charts/geoweb-presets-backend/README.md | 4 +++- .../{nginx-ingress.yaml => presets-ingress.yaml} | 10 +++++++++- charts/geoweb-presets-backend/values.yaml | 2 +- charts/geoweb-warnings-backend/Chart.yaml | 4 ++-- charts/geoweb-warnings-backend/README.md | 6 ++++-- .../{nginx-ingress.yaml => warnings-ingress.yaml} | 10 +++++++++- charts/geoweb-warnings-backend/values.yaml | 2 +- 20 files changed, 74 insertions(+), 24 deletions(-) rename charts/geoweb-cap-backend/templates/{nginx-ingress.yaml => cap-ingress.yaml} (72%) rename charts/geoweb-frontend/templates/{nginx-ingress.yaml => geoweb-ingress.yaml} (78%) rename charts/geoweb-opmet-backend/templates/{nginx-ingress.yaml => opmet-ingress.yaml} (72%) rename charts/geoweb-presets-backend/templates/{nginx-ingress.yaml => presets-ingress.yaml} (73%) rename charts/geoweb-warnings-backend/templates/{nginx-ingress.yaml => warnings-ingress.yaml} (73%) diff --git a/charts/geoweb-cap-backend/Chart.yaml b/charts/geoweb-cap-backend/Chart.yaml index 009dfeb..75f2abf 100644 --- a/charts/geoweb-cap-backend/Chart.yaml +++ b/charts/geoweb-cap-backend/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.2.2 +version: 1.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/charts/geoweb-cap-backend/README.md b/charts/geoweb-cap-backend/README.md index 95198bd..cfbb158 100644 --- a/charts/geoweb-cap-backend/README.md +++ b/charts/geoweb-cap-backend/README.md @@ -53,4 +53,6 @@ The following table lists the configurable parameters of the CAP backend chart a | `cap.svcPort` | Port used for service | `80` | | `cap.containerPort` | Port used for container | `8080` | | `cap.replicas` | Amount of replicas deployed | `1` | -| `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | \ No newline at end of file +| `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | +| `ingress.ingressClassName` | Set ingressClassName parameter to not use default ingressClass | | +| `ingress.customAnnotations` | Custom annotations for ingress, for example
customAnnotations:
traefik.annotation: exampleValue
Overrides default nginx annotations if set | | \ No newline at end of file diff --git a/charts/geoweb-cap-backend/templates/nginx-ingress.yaml b/charts/geoweb-cap-backend/templates/cap-ingress.yaml similarity index 72% rename from charts/geoweb-cap-backend/templates/nginx-ingress.yaml rename to charts/geoweb-cap-backend/templates/cap-ingress.yaml index 707929c..6e284ff 100644 --- a/charts/geoweb-cap-backend/templates/nginx-ingress.yaml +++ b/charts/geoweb-cap-backend/templates/cap-ingress.yaml @@ -3,13 +3,21 @@ kind: Ingress metadata: name: {{ .Values.ingress.name }}-{{ .Values.cap.name }} annotations: + {{- if .Values.ingress.customAnnotations }} + {{- with .Values.ingress.customAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- else }} nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/force-ssl-redirect: "false" nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-methods: "DELETE, PUT, GET, POST, OPTIONS, PATCH, HEAD" + {{- end }} spec: - ingressClassName: nginx +{{- if .Values.ingress.ingressClassName }} + ingressClassName: {{ .Values.ingress.ingressClassName }} +{{- end }} rules: - host: {{ .Values.cap.url }} http: diff --git a/charts/geoweb-cap-backend/values.yaml b/charts/geoweb-cap-backend/values.yaml index 6842ece..9798c74 100644 --- a/charts/geoweb-cap-backend/values.yaml +++ b/charts/geoweb-cap-backend/values.yaml @@ -10,4 +10,4 @@ cap: replicas: 1 ingress: - name: nginx-ingress-controller # Sync with nginx-ingress-controller/values.yaml \ No newline at end of file + name: nginx-ingress-controller \ No newline at end of file diff --git a/charts/geoweb-frontend/Chart.yaml b/charts/geoweb-frontend/Chart.yaml index 06c817d..1969506 100644 --- a/charts/geoweb-frontend/Chart.yaml +++ b/charts/geoweb-frontend/Chart.yaml @@ -15,10 +15,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 2.2.3 +version: 2.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v6.1.1" +appVersion: "v7.0.0" diff --git a/charts/geoweb-frontend/README.md b/charts/geoweb-frontend/README.md index 7f47cc6..0f098b5 100644 --- a/charts/geoweb-frontend/README.md +++ b/charts/geoweb-frontend/README.md @@ -103,7 +103,7 @@ The following table lists the configurable parameters of the GeoWeb frontend cha | Parameter | Description | Default | | - | - | - | -| `versions.frontend` | Possibility to override application version | `v6.1.1` | +| `versions.frontend` | Possibility to override application version | `v7.0.0` | | `frontend.name` | Name of frontend | `geoweb` | | `frontend.registry` | Registry to fetch image | `registry.gitlab.com/opengeoweb/opengeoweb` | | `frontend.commitHash` | Adds commitHash annotation to the deployment | | @@ -163,4 +163,6 @@ The following table lists the configurable parameters of the GeoWeb frontend cha | `frontend.awsAccessKeySecret` | AWS_SECRET_ACCESS_KEY for authenticating to S3 | | | `frontend.awsDefaultRegion` | Region where your S3 bucket is located | | | `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | -| `ingress.rules` | Extra nginx configuration rules, like cache headers | See reference in `values.yaml` | \ No newline at end of file +| `ingress.ingressClassName` | Set ingressClassName parameter to not use default ingressClass | | +| `ingress.rules` | Extra nginx configuration rules, like cache headers | See reference in `values.yaml` | +| `ingress.customAnnotations` | Custom annotations for ingress, for example
customAnnotations:
traefik.annotation: exampleValue
Overrides default nginx annotations and `frontend.auth_secret`, `frontend.auth_secretName` and `ingress.rules` can't be used if set | | diff --git a/charts/geoweb-frontend/templates/nginx-ingress.yaml b/charts/geoweb-frontend/templates/geoweb-ingress.yaml similarity index 78% rename from charts/geoweb-frontend/templates/nginx-ingress.yaml rename to charts/geoweb-frontend/templates/geoweb-ingress.yaml index 51fee89..6a0ed73 100644 --- a/charts/geoweb-frontend/templates/nginx-ingress.yaml +++ b/charts/geoweb-frontend/templates/geoweb-ingress.yaml @@ -3,6 +3,11 @@ kind: Ingress metadata: name: {{ .Values.ingress.name }}-{{ .Values.frontend.name }} annotations: + {{- if .Values.ingress.customAnnotations }} + {{- with .Values.ingress.customAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- else }} {{- if .Values.frontend.auth_secret }} nginx.ingress.kubernetes.io/auth-type: basic nginx.ingress.kubernetes.io/auth-secret: {{ .Values.frontend.auth_secretName }} @@ -16,8 +21,11 @@ metadata: nginx.ingress.kubernetes.io/configuration-snippet: | {{- .Values.ingress.rules | nindent 6 }} {{- end }} + {{- end }} spec: - ingressClassName: nginx +{{- if .Values.ingress.ingressClassName }} + ingressClassName: {{ .Values.ingress.ingressClassName }} +{{- end }} rules: - host: {{ .Values.frontend.url }} http: diff --git a/charts/geoweb-frontend/values.yaml b/charts/geoweb-frontend/values.yaml index 7782480..22c5db4 100644 --- a/charts/geoweb-frontend/values.yaml +++ b/charts/geoweb-frontend/values.yaml @@ -1,5 +1,5 @@ versions: - frontend: "v6.1.1" + frontend: "v7.0.0" frontend: name: geoweb diff --git a/charts/geoweb-opmet-backend/Chart.yaml b/charts/geoweb-opmet-backend/Chart.yaml index 781861f..3e94a99 100644 --- a/charts/geoweb-opmet-backend/Chart.yaml +++ b/charts/geoweb-opmet-backend/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 2.2.2 +version: 2.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/charts/geoweb-opmet-backend/README.md b/charts/geoweb-opmet-backend/README.md index 7d66595..7d5eb8c 100644 --- a/charts/geoweb-opmet-backend/README.md +++ b/charts/geoweb-opmet-backend/README.md @@ -98,4 +98,6 @@ The following table lists the configurable parameters of the Opmet backend chart | `opmet.publisher.port` | Port used for publisher | `8090`| | `opmet.publisher.DESTINATION` | Folder inside publisher container where TACs are stored | `/app/output` | | `opmet.publisher.volumeOptions` | yaml including the definition of the volume where TACs are published to, for example:
hostPath:
   path: /test/path
or
emptyDir:
  
| `emptyDir:` | -| `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | \ No newline at end of file +| `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | +| `ingress.ingressClassName` | Set ingressClassName parameter to not use default ingressClass | | +| `ingress.customAnnotations` | Custom annotations for ingress, for example
customAnnotations:
traefik.annotation: exampleValue
Overrides default nginx annotations if set | | \ No newline at end of file diff --git a/charts/geoweb-opmet-backend/templates/nginx-ingress.yaml b/charts/geoweb-opmet-backend/templates/opmet-ingress.yaml similarity index 72% rename from charts/geoweb-opmet-backend/templates/nginx-ingress.yaml rename to charts/geoweb-opmet-backend/templates/opmet-ingress.yaml index 3250108..c83fb26 100644 --- a/charts/geoweb-opmet-backend/templates/nginx-ingress.yaml +++ b/charts/geoweb-opmet-backend/templates/opmet-ingress.yaml @@ -3,13 +3,21 @@ kind: Ingress metadata: name: {{ .Values.ingress.name }}-{{ .Values.opmet.name }} annotations: + {{- if .Values.ingress.customAnnotations }} + {{- with .Values.ingress.customAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- else }} nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/force-ssl-redirect: "false" nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-methods: "DELETE, PUT, GET, POST, OPTIONS, PATCH, HEAD" + {{- end }} spec: - ingressClassName: nginx +{{- if .Values.ingress.ingressClassName }} + ingressClassName: {{ .Values.ingress.ingressClassName }} +{{- end }} rules: - host: {{ .Values.opmet.url }} http: diff --git a/charts/geoweb-opmet-backend/values.yaml b/charts/geoweb-opmet-backend/values.yaml index e5bd3f3..3a46547 100644 --- a/charts/geoweb-opmet-backend/values.yaml +++ b/charts/geoweb-opmet-backend/values.yaml @@ -37,4 +37,4 @@ opmet: OPMET_BACKEND_HOST: localhost:8000 ingress: - name: nginx-ingress-controller # Sync with nginx-ingress-controller/values.yaml + name: nginx-ingress-controller \ No newline at end of file diff --git a/charts/geoweb-presets-backend/Chart.yaml b/charts/geoweb-presets-backend/Chart.yaml index 1dfa997..3f53406 100644 --- a/charts/geoweb-presets-backend/Chart.yaml +++ b/charts/geoweb-presets-backend/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 2.4.1 +version: 2.5.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/charts/geoweb-presets-backend/README.md b/charts/geoweb-presets-backend/README.md index b333559..86bc1b0 100644 --- a/charts/geoweb-presets-backend/README.md +++ b/charts/geoweb-presets-backend/README.md @@ -115,4 +115,6 @@ The following table lists the configurable parameters of the Presets backend cha | `presets.awsAccessKeyId` | AWS_ACCESS_KEY_ID for authenticating to S3 | | | `presets.awsAccessKeySecret` | AWS_SECRET_ACCESS_KEY for authenticating to S3 | | | `presets.awsDefaultRegion` | Region where your S3 bucket is located | | -| `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | \ No newline at end of file +| `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | +| `ingress.ingressClassName` | Set ingressClassName parameter to not use default ingressClass | | +| `ingress.customAnnotations` | Custom annotations for ingress, for example
customAnnotations:
traefik.annotation: exampleValue
Overrides default nginx annotations if set | | \ No newline at end of file diff --git a/charts/geoweb-presets-backend/templates/nginx-ingress.yaml b/charts/geoweb-presets-backend/templates/presets-ingress.yaml similarity index 73% rename from charts/geoweb-presets-backend/templates/nginx-ingress.yaml rename to charts/geoweb-presets-backend/templates/presets-ingress.yaml index 5e4a4ea..70c1c22 100644 --- a/charts/geoweb-presets-backend/templates/nginx-ingress.yaml +++ b/charts/geoweb-presets-backend/templates/presets-ingress.yaml @@ -3,13 +3,21 @@ kind: Ingress metadata: name: {{ .Values.ingress.name }}-{{ .Values.presets.name }} annotations: + {{- if .Values.ingress.customAnnotations }} + {{- with .Values.ingress.customAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- else }} nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/force-ssl-redirect: "false" nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-methods: "DELETE, PUT, GET, POST, OPTIONS, PATCH, HEAD" + {{- end }} spec: - ingressClassName: nginx +{{- if .Values.ingress.ingressClassName }} + ingressClassName: {{ .Values.ingress.ingressClassName }} +{{- end }} rules: - host: {{ .Values.presets.url }} http: diff --git a/charts/geoweb-presets-backend/values.yaml b/charts/geoweb-presets-backend/values.yaml index cf1fa06..0965c7d 100644 --- a/charts/geoweb-presets-backend/values.yaml +++ b/charts/geoweb-presets-backend/values.yaml @@ -27,4 +27,4 @@ presets: volumeSize: 100Mi ingress: - name: nginx-ingress-controller # Sync with nginx-ingress-controller/values.yaml + name: nginx-ingress-controller \ No newline at end of file diff --git a/charts/geoweb-warnings-backend/Chart.yaml b/charts/geoweb-warnings-backend/Chart.yaml index 1254979..6b9b08c 100644 --- a/charts/geoweb-warnings-backend/Chart.yaml +++ b/charts/geoweb-warnings-backend/Chart.yaml @@ -15,10 +15,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.0.1 +version: 0.1.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.0.3" +appVersion: "0.0.4" diff --git a/charts/geoweb-warnings-backend/README.md b/charts/geoweb-warnings-backend/README.md index 399f82a..17a96cb 100644 --- a/charts/geoweb-warnings-backend/README.md +++ b/charts/geoweb-warnings-backend/README.md @@ -57,7 +57,7 @@ The following table lists the configurable parameters of the Warnings backend ch | Parameter | Description | Default | | - | - | - | -| `versions.warnings` | Possibility to override application version | `0.0.3` | +| `versions.warnings` | Possibility to override application version | `0.0.4` | | `warnings.name` | Name of backend | `warnings` | | `warnings.registry` | Registry to fetch image | `registry.gitlab.com/opengeoweb/backend-services/warnings-backend` | | `warnings.commitHash` | Adds commitHash annotation to the deployment | | @@ -83,4 +83,6 @@ The following table lists the configurable parameters of the Warnings backend ch | `warnings.nginx.OAUTH2_USERINFO` | Userinfo endpoint to retrieve consented claims, or assertions, about the logged in end-user | - | | `warnings.nginx.WARNINGS_BACKEND_HOST` | Address where nginx accesses the backend | `0.0.0.0:8080` | | `warnings.nginx.NGINX_PORT_HTTP` | Port used for nginx | `80` | -| `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | \ No newline at end of file +| `ingress.name` | Name of the ingress controller in use | `nginx-ingress-controller` | +| `ingress.ingressClassName` | Set ingressClassName parameter to not use default ingressClass | | +| `ingress.customAnnotations` | Custom annotations for ingress, for example
customAnnotations:
traefik.annotation: exampleValue
Overrides default nginx annotations if set | | \ No newline at end of file diff --git a/charts/geoweb-warnings-backend/templates/nginx-ingress.yaml b/charts/geoweb-warnings-backend/templates/warnings-ingress.yaml similarity index 73% rename from charts/geoweb-warnings-backend/templates/nginx-ingress.yaml rename to charts/geoweb-warnings-backend/templates/warnings-ingress.yaml index 476ce04..9385d5c 100644 --- a/charts/geoweb-warnings-backend/templates/nginx-ingress.yaml +++ b/charts/geoweb-warnings-backend/templates/warnings-ingress.yaml @@ -3,13 +3,21 @@ kind: Ingress metadata: name: {{ .Values.ingress.name }}-{{ .Values.warnings.name }} annotations: + {{- if .Values.ingress.customAnnotations }} + {{- with .Values.ingress.customAnnotations }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- else }} nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/force-ssl-redirect: "false" nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-methods: "DELETE, PUT, GET, POST, OPTIONS, PATCH, HEAD" + {{- end }} spec: - ingressClassName: nginx +{{- if .Values.ingress.ingressClassName }} + ingressClassName: {{ .Values.ingress.ingressClassName }} +{{- end }} rules: - host: {{ .Values.warnings.url }} http: diff --git a/charts/geoweb-warnings-backend/values.yaml b/charts/geoweb-warnings-backend/values.yaml index d2d236f..2bf3d63 100644 --- a/charts/geoweb-warnings-backend/values.yaml +++ b/charts/geoweb-warnings-backend/values.yaml @@ -1,5 +1,5 @@ versions: - warnings: "0.0.3" + warnings: "0.0.4" warnings: name: warnings