Utiliser un dépôt non structuré

Créer un dépôt non structuré vous permet d'organiser votre référentiel arbitrairement, sans suivre la structure de répertoire de dépôt par défaut. Anthos Config Management synchronise le même ensemble d'objets Kubernetes avec votre cluster que dans le dépôt hiérarchique par défaut.

Cela vous permet de synchroniser votre configuration Kubernetes existante avec votre dépôt Anthos Config Management. Par exemple, si vous souhaitez synchroniser un chart Helm avec votre cluster, vous pouvez exécuter helm template et effectuer un commit sur le manifeste affiché dans votre dépôt.

Limites

Les dépôts non structurés ne sont pas compatibles avec toutes les fonctionnalités d'Anthos Config Management. Cette section décrit les principales différences entre les dépôts hiérarchiques et non structurés.

Objets non compatibles

Vous ne pouvez pas utiliser les objets Kubernetes Repo et HierarchyConfig dans un dépôt non structuré.

Objets à l'échelle d'un espace de noms

Les espaces de noms abstraits ne sont pas compatibles avec les dépôts non structurés.

Dans un dépôt non structuré, tous les objets à l'échelle d'un espace de noms doivent déclarer l'annotation metadata.namespace ou NamespaceSelector. Le fait de déclarer les deux annotations n'est pas valide. Si les ressources à l'échelle de l'espace de noms ne déclarent pas metadata.namespace ou l'annotation NamespaceSelector, Anthos Config Management utilise l'espace de noms "par défaut" du cluster. Consultez la section Sélecteurs ci-dessous pour connaître la sémantique de l'objet NamespaceSelector.

Sélecteurs

Vous pouvez déclarer les objets ClusterSelector et NamespaceSelector dans un dépôt non structuré.

Dans un dépôt non structuré, les objets ClusterSelector fonctionnent normalement.

Dans un dépôt non structuré, les objets qui déclarent l'annotation NamespaceSelector sont appliqués à tous les objets Namespace, qui satisfont aux conditions de l'objet NamespaceSelector. Avant de créer un dépôt non structuré avec des objets précédemment utilisés dans un dépôt hiérarchique, vérifiez que vos objets NamespaceSelector ne s'appliquent pas aux autres ressources.

Configurer un dépôt non structuré

Pour configurer un dépôt non structuré, définissez la valeur de spec.sourceFormat sur unstructured dans config-management.yaml.

Par exemple, le fichier config-management.yaml ci-dessous configure l'exemple de pipeline d'intégration continue.

# config-management.yaml

apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
  name: config-management
spec:
  # clusterName is required and must be unique among all managed clusters
  clusterName: my-cluster
  git:
    syncRepo: https://github.com/GoogleCloudPlatform/csp-config-management/ 
    syncBranch: 1.0.0
    secretType: ssh
    policyDir: ci-pipeline-unstructured
  sourceFormat: unstructured

Et ensuite ?

Consultez l'exemple de dépôt non structuré dans le pipeline d'intégration continue.