v2.9에서 v2.10으로 업그레이드

v2.9에서 v2.10으로 업그레이드 (v2.9 to 2.10)

v2.10에서는 kubectl이 1.24에서 1.26으로 올라가면서 managedNamespaceMetadata의 동작이 바뀌고, Helm 버전도 업그레이드됐어요. 또 redis 관련 NetworkPolicy의 Egress 제한이 제거됐어요.

출처: 문서

본문

managedNamespaceMetadata가 더 이상 클라이언트 측 적용 라벨·어노테이션을 보존하지 않음

Argo CD 2.10은 kubectl을 1.24에서 1.26으로 업그레이드했어요. 이 업그레이드는 서버 측 kubectl apply를 사용할 때 클라이언트 측으로 적용된 라벨과 어노테이션이 더 이상 보존되지 않는 변경을 도입했어요. 이 변경은 Application CRD의 managedNamespaceMetadata 필드에 영향을 미쳐요. 이전에는 managedNamespaceMetadata가 활성화되어 있을 때 클라이언트 측 apply로 적용된 라벨과 어노테이션이 보존됐어요. 이제 그 기존 라벨과 어노테이션은 제거돼요.

예상치 못한 동작을 피하려면, 기존 네임스페이스에서 managedNamespaceMetadata를 활성화하기 전에 클라이언트 측에서 서버 측 리소스 업그레이드 가이드를 먼저 따라 하세요.

Helm 버전 업그레이드

번들로 제공되는 Helm 버전이 3.13.2에서 3.14.3으로 업그레이드됐어요.

argocd-redisargocd-redis-ha-haproxy의 Egress NetworkPolicy

Argo CD 2.10.11부터 argocd-redisargocd-redis-ha-haproxy의 NetworkPolicy가 Egress 제한을 제거했어요. 이 변경은 Redis 접근을 보호하는 시크릿을 만들기 위해 Kubernetes API에 접근을 허용하기 위한 것이었어요.

2.10.11 이전과 유사한 네트워킹 제한을 유지하려면, Kubernetes API에만 접근할 수 있고 Redis 자체가 필요한 접근도 허용하는 Egress 규칙을 추가하면 돼요. Kubernetes 접근을 위한 Egress 규칙은 전적으로 여러분의 Kubernetes 구성에 달려 있어요. Redis 자체 접근은 argocd-redis-network-policy NetworkPolicy에 다음을 추가해 허용할 수 있어요:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: argocd-redis-network-policy
spec:
  policyTypes:
  - Ingress
+  - Egress
+  egress:
+  - ports:
+    - port: 53
+      protocol: UDP
+    - port: 53
+      protocol: TCP
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: argocd-redis-ha-haproxy
spec:
  policyTypes:
  - Ingress
+  - Egress
+  egress:
+  - ports:
+    - port: 6379
+      protocol: TCP
+    - port: 26379
+      protocol: TCP
+    to:
+    - podSelector:
+        matchLabels:
+          app.kubernetes.io/name: argocd-redis-ha
+  - ports:
+    - port: 53
+      protocol: UDP
+    - port: 53
+      protocol: TCP

더 알아보기 (Learn more)