v2.11에서 v2.12로 업그레이드

v2.11에서 v2.12로 업그레이드 (v2.11 to 2.12)

v2.12에서는 클러스터 시크릿의 project 스코핑 동작이 바뀌고, redis·haproxy의 이미지 저장소가 DockerHub에서 ECR로 변경됐어요. ApplicationSet의 일부 필드는 서버 측 apply 시 원자적(atomic)으로 관리되어야 해요.

출처: 문서

본문

클러스터 시크릿 스코핑 변경

Argo CD 2.12부터 project가 비어 있지 않은 값인 클러스터 시크릿의 사용에 몇 가지 변경이 있어요. 이전에는 Application 또는 ApplicationSetrepoUrl 필드의 URL과 일치하는 모든 클러스터 시크릿을 사용했어요. 2.12부터는 애플리케이션의 project 필드가 클러스터 시크릿의 project 필드와 또한 일치하는지 확인해요. 즉, project-a로 스코프된 클러스터 시크릿이 있으면, project-b로 스코프된 애플리케이션은 더 이상 그 시크릿을 사용할 수 없어요. 여러 프로젝트의 애플리케이션이 사용하도록 의도된 클러스터 시크릿이 있다면 project 필드를 비워(설정 해제) 두어야 해요.

이는 applicationset에서 Git 생성기를 사용할 때도 적용돼요. applicationset은 특정 프로젝트로 스코프되지 않으므로, 그것이 사용하는 모든 클러스터 시크릿도 전역 스코프(즉, 모든 시크릿의 project가 설정 해제)여야 해요.

Helm 버전 업그레이드

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

redishaproxy의 이미지 저장소 변경

Argo CD 2.12는 업스트림 redis-ha Helm 차트 버전을 4.22.3에서 4.26.6으로 업그레이드했어요.

업그레이드의 일부로 redishaproxy의 이미지 저장소가 DockerHub에서 ECR로 변경됐어요.

저장소 변경이 여러분의 환경에서 동작하는지 확인하세요. 문제의 한 예로, 여러분의 환경이 DockerHub에서는 Cosign으로 이미지 서명을 검증할 수 있지만 ECR에서는 그럴 수 없는 경우가 있어요. 이미지 검증 정책에 AWS ECR을 승인된 저장소로 포함해야 해요. 업그레이드 전에 저장소 변경이 수용 가능한지 검증하세요.

ApplicationSet 필드의 서버 측 Apply 관리

요약 (Summary)

서버 측 apply에서 여러 필드 매니저를 사용해 ApplicationSet의 단일 selector 또는 labelSelector 필드를 관리하고 있다면, 그 필드 관리는 2.12부터 원자적(atomic)으로 바꿔야 해요.

세부 사항 (Details)

Argo CD 2.12는 controller-gen 버전을 0.4.1에서 0.14.0으로 업그레이드했어요. 그 변경의 일부로 여러 ApplicationSet CRD 필드가 이제 x-kubernetes-map-type: atomic을 갖게 됐어요.

영향을 받는 각 필드는 matchLabelsmatchExpressions 두 개의 하위 키를 가진 라벨 셀렉터예요.

이 변경 이전에는 두 필드 매니저가 matchLabelsmatchExpressions 필드를 독립적으로 관리할 수 있었어요. 2.12 CRD부터는 단일 필드 매니저가 그 두 필드를 모두 관리해야 해요. 이 동작은 라벨 셀렉터 구조체의 업스트림 동작과 일치해요.

필드 동작에 대한 자세한 내용은 Kubernetes 서버 측 apply 병합 전략 문서를 참고하세요.

영향을 받는 ApplicationSet 필드는 다음과 같아요 (jq 셀렉터 문법):

  • .spec.generators[].selector
  • .spec.generators[].cluster.selector
  • .spec.generators[].clusterDecisionResource.labelSelector
  • .spec.generators[].matrix.generators[].selector
  • .spec.generators[].merge.generators[].selector

추가된 헬스체크 (Added Healthchecks)

  • core.humio.com/HumioAction
  • core.humio.com/HumioAlert
  • core.humio.com/HumioCluster
  • core.humio.com/HumioIngestToken
  • core.humio.com/HumioParser
  • core.humio.com/HumioRepository
  • core.humio.com/HumioView
  • k8s.mariadb.com/Backup
  • k8s.mariadb.com/Database
  • k8s.mariadb.com/Grant
  • k8s.mariadb.com/MariaDB
  • k8s.mariadb.com/SqlJob
  • k8s.mariadb.com/User
  • kafka.strimzi.io/KafkaBridge
  • kafka.strimzi.io/KafkaConnector
  • keda.sh/ScaledObject
  • openfaas.com/Function
  • camel.apache.org/Integration

더 알아보기 (Learn more)