프로젝트 소개
K8s Namespace Sync는 Kubernetes 클러스터 내 여러 네임스페이스 간에 Secret과 ConfigMap을 자동으로 동기화하는 Kubernetes 컨트롤러입니다. 소스 네임스페이스의 변경 사항을 감시하고 모든 대상 네임스페이스에 동기화하며, finalizer를 사용하여 소스가 삭제될 때 리소스를 정리함으로써 일관성을 유지합니다.
주요 기능은 다음과 같습니다:
- Secret과 ConfigMap의 자동 동기화.
- 소스 변경 사항의 자동 감지 및 실시간 동기화.
- 선택적 네임스페이스 타기팅 및 특정 네임스페이스의 수동 제외.
- 시스템 네임스페이스(kube-system, kube-public 등) 자동 제외.
- include/exclude 규칙에 대한 글로브 패턴 매칭을 통한 리소스 필터링.
- 동기화 작업, 충돌, 소요 시간 모니터링을 위한 Prometheus 메트릭.
- 동기화 작업에 대한 가시성을 위한 Kubernetes 이벤트(SyncComplete, SyncFailed, SyncConflict 등).
- 현재 동기화 상태를 반영하는 상태 조건.
이 컨트롤러는 Helm(OCI 레지스트리 또는 클래식 리포지토리), kubectl apply를 통해 설치하거나 소스에서 빌드할 수 있습니다. CEL 검증 규칙으로 인해 Kubernetes v1.25 이상이 필요합니다. CRD는 admission 시점에 비어 있지 않은 sourceNamespace와 최소 하나의 secret 또는 configmap 이름을 요구하는 등의 검증 규칙을 적용합니다. 또한 NamespaceSync가 중복되는 경우를 신중하게 처리하여 충돌을 방지하며, 명시적으로 대상으로 지정되지 않는 한 수동으로 생성된 객체가 덮어쓰이지 않도록 보장합니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.