Migrer les ressources Config Controller

Cette page explique comment migrer des ressources Config Connector d'un cluster Config Controller vers un autre. Vous devrez peut-être migrer une ressource si votre cluster Config Controller principal échoue et doit être remplacé, ou si vous devez modifier une configuration de cluster immuable.

Cette page utilise la terminologie suivante :

  • Cluster source : cluster contenant les ressources Config Connector que vous devez migrer.
  • Cluster de destination : cluster vers lequel vous allez migrer les ressources.

Recommandations

  • Avant d'apporter des modifications en production, effectuez ces étapes dans un environnement de test.
  • Si vous devez migrer plusieurs clusters Config Controller, migrez-les chacun en commençant par le cluster le moins critique.
  • Si le cluster Config Sync se synchronise à partir de plusieurs sources de référence, migrez toutes les ressources de chaque source en même temps.

Procédure de migration pour divers scénarios

Migrer toutes les ressources

Pour migrer toutes les ressources, procédez comme suit :

  1. Créez le cluster de destination.

  2. Arrêtez de transmettre les modifications à la source fiable à partir de laquelle le cluster source est configuré pour la synchronisation. Config Sync doit continuer à se synchroniser à partir de la source fiable. Seules les modifications à partir desquelles le cluster source est synchronisé doivent être arrêtées.

  3. Assurez-vous que toutes les modifications récentes apportées à la source de référence sont synchronisées dans le cluster et que toutes les ressources sont à jour dans le cluster source.

    Si certaines ressources comportent des erreurs, vous devrez peut-être les analyser individuellement. Si une ressource n'a pas encore été créée en raison d'une erreur, elle est créée ultérieurement à l'aide de Config Connector s'exécutant dans le cluster de destination. Ces erreurs peuvent généralement être ignorées. Toutefois, pour la plupart des erreurs, vous devez identifier et corriger les causes avant de tenter la migration.

  4. Configurez Config Sync dans le cluster de destination pour lire les données à partir de la même source de référence que celle à partir de laquelle le cluster source est configuré. Si plusieurs synchronisations sont configurées pour se synchroniser à partir de plusieurs sources fiables, faites-le pour chaque synchronisation.

  5. Utilisez la commande nomos status pour vous assurer que le cluster de destination a synchronisé toutes les ressources de la source fiable.

  6. Une fois les ressources synchronisées, supprimez RootSync ou RepoSync du cluster source.

  7. Une fois que chaque source de référence a été migrée, supprimez le cluster source Config Controller.

Migrer certaines ressources

Pour migrer certaines ressources, procédez comme suit :

  1. Suivez les étapes 1 à 6 de la section précédente Migrer toutes les ressources.

  2. Annotez les ressources à migrer vers le cluster de destination avec l'annotation cnrm.cloud.google.com/deletion-policy: abandon. Cette annotation empêche Config Connector de supprimer les ressources sous-jacentes lorsque la ressource Config Connector est supprimée du cluster Config Controller.

  3. Supprimez les ressources marquées comme abandonnées sur le cluster source. Cette suppression ne fonctionne que si ces ressources sont également retirées de la source fiable avant la reprise de Config Sync.

  4. Déplacez ces ressources vers une autre source de référence ou un autre dossier au sein de la même source de référence.

  5. Configurez le cluster de destination à synchroniser à partir de l'emplacement vers lequel vous avez déplacé les ressources. Le cluster de destination peut maintenant acquérir ces ressources et commencer à les gérer.

Migrer des ressources individuelles

Lorsqu'un cluster Config Controller ne peut pas être supprimé (par exemple, lorsque vous migrez uniquement un sous-ensemble de ressources vers un autre cluster), vous pouvez supprimer des ressources individuelles. Pour supprimer des ressources individuelles, désactivez Config Sync, puis définissez l'annotation cnrm.cloud.google.com/deletion-policy: abandon sur les ressources individuelles que vous devez supprimer.

Migrer les ressources qui ont un resourceID généré par le service

Pour les ressources pour lesquelles le champ resourceID n'a pas été explicitement fourni, le champ resourceID n'a pas besoin d'être spécifié pour l'acquisition de ressources par une autre instance Config Connector. Cependant, des ressources possédant un ID de ressource généré par le service nécessitent des étapes supplémentaires. Même si resourceID est généré par le service, il doit être fourni pour acquérir ces ressources à partir d'une autre instance Config Connector. Pour ces ressources, vous devez ajouter les resourceID à la source de référence avant d'essayer d'acquérir des ressources auprès du cluster de destination.

Migrer des ressources à l'aide d'une règle de prévention des conflits

Par défaut, la règle de prévention des conflits est désactivée pour les ressources. Vous pouvez l'activer sur une ressource en définissant l'annotation suivante :

cnrm.cloud.google.com/management-conflict-prevention-policy: "resource"

Une fois paramétré, Config Connector doit acquérir un bail pour la ressource sous-jacente avant d'y apporter des modifications. Cela signifie que le cluster de destination ne peut pas acquérir immédiatement le bail, car Config Connector détient le bail dans le cluster source. Le bail est accordé pour une durée de 40 minutes. Cependant, après 20 minutes, Config Connector tente de renouveler de manière proactive le bail. En raison de ce comportement, si Config Connector dans le cluster source est opérationnel et en cours d'exécution, le cluster de destination ne peut pas acquérir le bail. Le cluster source doit libérer son bail avant que le cluster de destination puisse l'acquérir. Pour ce faire, vous pouvez supprimer le cluster source ou supprimer la ressource dans le cluster source.

Une fois que le cluster source a libéré le bail, le cluster de destination peut acquérir le bail. Le cluster de destination peut acquérir le bail après au maximum 40 minutes et commencer à gérer les ressources. Aucune modification ne doit être apportée aux ressources Config Connector tant que le cluster de destination n'a pas acquis le bail.

Étapes suivantes