Descripción general de los repositorios

En esta página se describe cómo Anthos Config Management lee la configuración de un repositorio de Git denominado repositorio y aplica la configuración resultante a tus clústeres de manera automática.

Requisitos

  • 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

Anthos Config Management 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. Consulta ese tema para obtener más detalles.

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 Anthos Config Management. Puedes limitar los clústeres 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 Instalación de Anthos Config Management para obtener más información sobre la configuración de Anthos Config Management.

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?