Sobre o projeto

K8s Namespace Sync é um controlador Kubernetes que sincroniza automaticamente Secrets e ConfigMaps entre vários namespaces dentro de um cluster Kubernetes. Ele monitora alterações no namespace de origem e as sincroniza para todos os namespaces de destino, mantendo a consistência ao limpar recursos quando a origem é excluída, usando finalizers. Os principais recursos incluem: - Sincronização automática de Secrets e ConfigMaps. - Detecção automática e sincronização em tempo real de alterações na origem. - Direcionamento seletivo de namespaces e exclusão manual de namespaces específicos. - Exclusão automática de namespaces de sistema (kube-system, kube-public, etc.). - Filtragem de recursos com correspondência de padrões glob para regras de inclusão/exclusão. - Métricas Prometheus para monitorar operações de sincronização, conflitos e durações. - Eventos Kubernetes para visibilidade das operações de sincronização (SyncComplete, SyncFailed, SyncConflict, etc.). - Condições de status para refletir o estado atual da sincronização. O controlador pode ser instalado via Helm (registro OCI ou repositório clássico), kubectl apply ou compilado a partir do código-fonte. Ele requer Kubernetes v1.25+ devido às regras de validação CEL. O CRD impõe regras de validação no momento da admissão, como exigir um sourceNamespace não vazio e pelo menos um nome de secret ou configmap. Ele também trata NamespaceSyncs sobrepostos com cuidado para evitar conflitos, garantindo que objetos criados manualmente não sejam sobrescritos, a menos que sejam explicitamente direcionados.