Descripción general de los repositorios

En esta página, se describe cómo el Sincronizador de configuración lee la configuración de un repositorio de Git estructurado denominado repositorio y aplica la configuración resultante a tus clústeres automáticamente.

Si deseas más flexibilidad estructural (por ejemplo, deseas crear subcarpetas de recursos), puedes crear un repositorio que no siga esta estructura. Para obtener más información, consulta la páginas sobre cómo crear un repositorio no estructurado.

Requisitos previos

  • Debes familiarizarte con los repositorios de Git y la interfaz de línea de comandos git.
  • Debes familiarizarte con los objetos de Kubernetes que deseas configurar y sus campos obligatorios y opcionales.

Estructura del repositorio

El Sincronizador de configuración aprovecha la estructura similar a la del sistema de archivos de Git y la usa para determinar a qué clústeres o espacios de nombres pertenece una configuración.

namespaces/

El directorio namespaces/ contiene opciones de configuración para espacios de nombres y objetos con alcance de espacio de nombres. La estructura dentro de namespaces/ es el mecanismo que dirige la herencia del espacio de nombres. Puedes limitar los espacios de nombres que pueden heredar un archivo de configuración mediante un NamespaceSelector.

cluster/

El directorio cluster/ contiene opciones de configuración que se aplican a clústeres enteros, en lugar de a espacios de nombres. De forma predeterminada, cualquier configuración del directorio cluster/ se aplica a todos los clústeres inscritos en el Sincronizador de configuración. Puedes limitar los clústeres a los que una configuración puede afectar mediante un ClusterSelector.

clusterregistry/

El directorio clusterregistry/ es opcional y contiene opciones de configuración para ClusterSelectors. Los ClusterSelectors limitan los clústeres a los que se aplica una configuración y se mencionan en las opciones de configuración que se encuentran en los directorios cluster/ y namespaces/.

system/

El directorio system/ contiene opciones de configuración para el operador. Consulta la página sobre cómo instalar el Sincronizador de configuración para obtener más información sobre cómo configurarlo.

Ejemplo de repositorio

En el repositorio de ejemplo, se muestra la estructura de un repositorio.

Observa los directorios de espacio de nombres abstractos anidados online/ y shipping-app-backend/ en namespaces/. Son directorios de espacio de nombres abstractos porque no contienen directamente una configuración para un espacio de nombres.

foo-corp
├── cluster
│   ├── namespace-reader-clusterrolebinding.yaml
│   ├── namespace-reader-clusterrole.yaml
│   ├── pod-creator-clusterrole.yaml
│   └── pod-security-policy.yaml
├── clusterregistry
│   ├── cluster-1.yaml
│   ├── cluster-2.yaml
│   ├── clusterselector-1.yaml
│   └── clusterselector-2.yaml
├── namespaces
│   ├── audit
│   │   └── namespace.yaml
│   ├── online
│   │   └── shipping-app-backend
│   │       ├── pod-creator-rolebinding.yaml
│   │       ├── quota.yaml
│   │       ├── shipping-dev
│   │       │   ├── job-creator-rolebinding.yaml
│   │       │   ├── job-creator-role.yaml
│   │       │   ├── namespace.yaml
│   │       │   └── quota.yaml
│   │       ├── shipping-prod
│   │       │   └── namespace.yaml
│   │       └── shipping-staging
│   │           └── namespace.yaml
│   ├── sre-rolebinding.yaml
│   ├── sre-supported-selector.yaml
│   └── viewers-rolebinding.yaml
└── system
    └── hierarchy-config.yaml

¿Qué sigue?