우리의 NGINX 포크
자세히: Tier: Free, Premium, Ultimate Offering: Self-Managed
우리의 NGINX 차트 fork는 GitHub에서 가져왔습니다.
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
:-
.spec.template.metadata.labels
에podlabels
및global.pod.labels
추가
-
-
default-backend-deployment.yaml
:-
.spec.template.metadata.labels
에podlabels
및global.pod.labels
추가
-
- NGINX의 기본 노드 선택기 비활성화.
- PDB
maxUnavailable
지원 추가. -
charts/nginx-ingress/templates/_helpers.tpl
의 NGINX의isControllerTagValid
도우미 제거 - autoscaling/v2beta2 및 autoscaling/v2 API 지원 추가 및 메모리 및 사용자 지정 지표 및 동작 구성을 지원하기 위해 HPA 설정 확장
- PodDisruptionBudget의 API 버전에 조건부 지원 추가
- 외부 및 내부(
controller.service.internal.enabled
로 활성화된 경우) 서비스에 대해 독립적으로 GitLab Shell (SSH 액세스) 활성화/비활성화하기 위해 다음 boolean 추가:-
controller.service.enableShell
. -
controller.service.internal.enableShell
. (기존 차트 패턴controller.service.enableHttp(s)
따름)
-
-
controller-serviceaccount.yaml
에 템플릿 호출{{ include "ingress-nginx.automountServiceAccountToken" . }}
추가 -
_helpers.tpl
에 템플릿 추가:{{/* 쿠버네티스에 의해 기본 ServiceAccount 토큰을 마운트해야 하는지 여부 설정 기본값은 '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 토큰을 마운트해야 하는지 여부 설정 기본값은 'true' */}} {{- define "ingress-nginx.defaultBackend.automountServiceAccountToken" -}} automountServiceAccountToken: {{ pluck "automountServiceAccountToken" .Values.defaultBackend.serviceAccount .Values.global.serviceAccount | first }} {{- end -}}
- Pod 보안 표준 프로필 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
andcharts/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.1fallback을 삭제한 후에 제거될 것이며, 이는 8.8 릴리즈에 예정되어 있습니다.
controller: image: fallbackTag: "v1.3.1" fallbackDigest: "sha256:54f7fe2c6c5a9db9a0ebf1131797109bb7a4d91f56b9b362bde2abd237dd1974" disableFallback: false