우리의 NGINX 포크
우리의 포크는 GitHub에서 가져온 NGINX 차트입니다.
NGINX 포크에 대한 조정 사항
NGINX 포크에 다음과 같은 조정이 이루어졌습니다:
-
tcp-configmap.yaml
: 새로운tcpExternalConfig
설정에 따라 선택적입니다. - 다른 차트에서 템플릿화된 TCP ConfigMap 이름을 사용할 수 있는 기능
-
controller-configmap-tcp.yaml
:.metadata.name
은 템플릿ingress-nginx.tcp-configmap
입니다. -
controller-deployment.yaml
:.spec.template.spec.containers[0].args
는 ConfigMap 이름에 대해ingress-nginx.tcp-configmap
템플릿을 사용합니다. - GitLab 차트는
ingress-nginx.tcp-configmap
을 오버라이드하여gitlab/gitlab-org/charts/gitlab-shell
이 TCP 서비스를 구성할 수 있도록 합니다.
-
- 릴리스 이름에 따라 템플릿화된 Ingress 이름을 사용할 수 있는 기능
-
controller.service.loadBalancerIP
를externalIpTpl
로 교체 (기본값은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
의 NGINXisControllerTagValid
헬퍼를 제거했습니다. - HPAs에서 autoscaling/v2beta2 및 autoscaling/v2 API에 대한 지원이 추가되었고, 메모리 및 사용자 정의 메트릭을 지원하며, 동작 구성을 지원하도록 HPA 설정이 확장되었습니다.
- PodDisruptionBudget의 API 버전에 대한 조건부 지원이 추가되었습니다.
- 외부 및 내부(
controller.service.internal.enabled
로 활성화된 경우) 서비스에 대해 GitLab Shell(SSH 액세스)을 독립적으로 활성화/비활성화하는 다음 부울 값을 추가했습니다:-
controller.service.enableShell
. -
controller.service.internal.enableShell
.
(기존 차트 패턴controller.service.enableHttp(s)
를 따릅니다.)
-
-
controller-serviceaccount.yaml
에 템플릿 호출{{ include "ingress-nginx.automountServiceAccountToken" . }}
를 추가했습니다. -
_helpers.tpl
에 템플릿을 추가했습니다:{{/* 기본 ServiceAccount 토큰이 Kubernetes에 의해 마운트되어야 하는지 여부를 설정합니다. 기본값은 'true'입니다. */}} {{- define "ingress-nginx.automountServiceAccountToken" -}} automountServiceAccountToken: {{ pluck "automountServiceAccountToken" .Values.serviceAccount .Values.global.serviceAccount | first }} {{- end -}}
-
default-backend-serviceaccount.yaml
에 템플릿 호출{{ include "ingress-nginx.defaultBackend.automountServiceAccountToken" . }}
를 추가했습니다. -
_helpers.tpl
에 템플릿을 추가했습니다:{{/* 기본 ServiceAccount 토큰이 Kubernetes에 의해 마운트되어야 하는지 여부를 설정합니다. 기본값은 '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 규칙을 추가했습니다. 우리의 차트가 4.0.6에 있을 때 필요한데, 컨트롤러 이미지를 1.11.2로 업데이트했습니다. 차트를 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