我们的 NGINX 派生
对 NGINX 派生的调整
对 NGINX 派生进行了以下调整:
-
tcp-configmap.yaml
:可选的,取决于新的tcpExternalConfig
设置。 - 能够使用来自另一个 chart 的模板化 TCP ConfigMap 名称。
-
controller-configmap-tcp.yaml
:.metadata.name
是一个模板ingress-nginx.tcp-configmap
。 -
controller-deployment.yaml
:.spec.template.spec.containers[0].args
使用ingress-nginx.tcp-configmap
模板作为 ConfigMap 名称。 - 极狐GitLab chart 覆盖
ingress-nginx.tcp-configmap
。
-
- 能够根据发布名称使用模板化的 Ingress 名称。
- 将
controller.service.loadBalancerIP
替换为global.hosts.externalIP
。 - 添加了通过
common.labels
配置选项添加常用标签的支持。 -
controller-deployment.yaml
:- 将
podlabels
和global.pod.labels
添加到.spec.template.metadata.labels
。
- 将
-
default-backend-deployment.yaml
:- 将
podlabels
和global.pod.labels
添加到.spec.template.metadata.labels
。
- 将
- 禁用 NGINX 的默认 nodeSelectors。
- 添加了对 PDB
maxUnavailable
的支持。 - 在
charts/nginx-ingress/templates/_helpers.tpl
中删除 NGINX 的isControllerTagValid
helper:- 该检查自 2020 年实施以来一直没有更新。
- 我们需要引用一个包含
ubi
的标签,这意味着semverCompare
无论如何都不会按预期工作。
- 在 HPA 中添加了对 autoscaling/v2beta2 和 autoscaling/v2 API 的支持,并扩展了 HPA 设置,支持内存和自定义指标以及行为配置。
- 添加了对 API 版本的 PodDisruptionBudget 的条件支持。
- 添加以下布尔值,独立启用/禁用外部和内部(如果使用
controller.service.internal.enabled
启用)服务的极狐GitLab Shell(SSH 访问):-
controller.service.enableShell
。 -
controller.service.internal.enableShell
。(遵循controller.service.enableHttp(s)
的现有 chart 样式)
-
- 在
controller-serviceaccount.yaml
中增加模板调用{{ include "ingress-nginx.controller.automountServiceAccountToken" . }}
-
添加模板到
_helpers.tpl
:{{/* Set if the default ServiceAccount token should be mounted by Kubernetes or not. Default is 'true' */}} {{- define "ingress-nginx.defaultBackend.automountServiceAccountToken" -}} automountServiceAccountToken: {{ pluck "automountServiceAccountToken" .Values.defaultBackend.serviceAccount .Values.global.serviceAccount | first }} {{- end -}}
- 添加以下属性以和 Pod Security Standards Profile Restricted 保持一致:
-
controller-deployment.yaml
spec.template.spec.containers[0].securityContext.runAsNonRoot
spec.template.spec.containers[0].securityContext.seccompProfile
-
-
添加下面新的 RBAC 规则。当我们的 chart 是 4.0.6 时,这将非常有必要,但是我们已经将控制器镜像更新到 1.11.2。一旦我们将 chart 更新到 4.11.2,我们就可以删除这个补丁。这是因为控制器现在使用 endpointslices 来跟踪端点。这需要同时添加到
charts/nginx-ingress/templates/clusterrole.yaml
和charts/nginx-ingress/templates/controller-role.yaml
文件中:- apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch - get
此外,为了支持从 v1.3.1 迁移到 v1.11.2,对于那些设置了他们自己的 RBAC 规则的用户,我们还添加了这些值,一旦我们删除 v1.3.1 回退,这些值将被删除,这将在 8.8 版本中进行。
controller:
image:
fallbackTag: "v1.3.1"
fallbackDigest: "sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974"
disableFallback: false