4.6. Configurer un cluster OpenShift en déployant une application avec des configurations de cluster
Avec Red Hat OpenShift GitOps, vous pouvez configurer Argo CD pour synchroniser récursivement le contenu d'un répertoire Git avec une application qui contient des configurations personnalisées pour votre cluster.
Conditions préalables
- Red Hat OpenShift GitOps est installé dans votre cluster.
- Connexion à l'instance Argo CD.
4.6.1. Exécution de l'instance Argo CD au niveau du cluster Copier lienLien copié sur presse-papiers!
L'instance Argo CD par défaut et les contrôleurs qui l'accompagnent, installés par l'opérateur Red Hat OpenShift GitOps, peuvent désormais fonctionner sur les nœuds d'infrastructure du cluster en définissant un simple basculement de configuration.
Procédure
Étiqueter les nœuds existants :
oc label node <node-name> node-role.kubernetes.io/infra=""
$ oc label node <node-name> node-role.kubernetes.io/infra=""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif : si nécessaire, vous pouvez également appliquer des taints et isoler les charges de travail sur les nœuds d'infrastructure et empêcher d'autres charges de travail d'être planifiées sur ces nœuds :
oc adm taint nodes -l node-role.kubernetes.io/infra \ infra=reserved:NoSchedule infra=reserved:NoExecute
$ oc adm taint nodes -l node-role.kubernetes.io/infra \ infra=reserved:NoSchedule infra=reserved:NoExecute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez la bascule
runOnInfra
dans la ressource personnaliséeGitOpsService
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif : si des taints ont été ajoutés aux nœuds, ajoutez
tolerations
à la ressource personnaliséeGitOpsService
, par exemple :Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Vérifiez que les charges de travail de l'espace de noms
openshift-gitops
sont désormais planifiées sur les nœuds d'infrastructure en affichant PodsPod details pour n'importe quel module dans l'interface utilisateur de la console.
Tous les nodeSelectors
et tolerations
ajoutés manuellement à la ressource personnalisée Argo CD par défaut sont remplacés par la bascule et tolerations
dans la ressource personnalisée GitOpsService
.
4.6.2. Créer une application en utilisant le tableau de bord du CD Argo Copier lienLien copié sur presse-papiers!
Argo CD fournit un tableau de bord qui vous permet de créer des applications.
Cet exemple de flux de travail vous guide dans le processus de configuration d'Argo CD pour synchroniser de manière récursive le contenu du répertoire cluster
avec l'application cluster-configs
. Le répertoire définit les configurations de cluster de la console web d'OpenShift Container Platform qui ajoutent un lien vers Red Hat Developer Blog - Kubernetes sous l'icône de menu
dans la console web, et définit un espace de noms
spring-petclinic
sur le cluster.
Procédure
- Dans le tableau de bord Argo CD, cliquez sur NEW APP pour ajouter une nouvelle application Argo CD.
Pour ce flux de travail, créez une application cluster-configs avec les configurations suivantes :
- Nom de l'application
-
cluster-configs
- Projet
-
default
- Politique de synchronisation
-
Manual
- URL du référentiel
-
https://github.com/redhat-developer/openshift-gitops-getting-started
- Révision
-
HEAD
- Chemin d'accès
-
cluster
- Destination
-
https://kubernetes.default.svc
- Espace de noms
-
spring-petclinic
- Récurrence des répertoires
-
checked
- Cliquez sur CREATE pour créer votre application.
-
Ouvrez la perspective Administrator de la console web et naviguez vers Administration
Namespaces dans le menu de gauche. -
Recherchez et sélectionnez l'espace de noms, puis entrez
argocd.argoproj.io/managed-by=openshift-gitops
dans le champ Label afin que l'instance d'Argo CD dans l'espace de nomsopenshift-gitops
puisse gérer votre espace de noms.
4.6.3. Création d'une application à l'aide de l'outil oc Copier lienLien copié sur presse-papiers!
Vous pouvez créer des applications Argo CD dans votre terminal en utilisant l'outil oc
.
Procédure
Télécharger l'exemple d'application:
git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
$ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créer l'application :
oc create -f openshift-gitops-getting-started/argo/app.yaml
$ oc create -f openshift-gitops-getting-started/argo/app.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exécutez la commande
oc get
pour examiner l'application créée :oc get application -n openshift-gitops
$ oc get application -n openshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez une étiquette à l'espace de noms dans lequel votre application est déployée afin que l'instance Argo CD dans l'espace de noms
openshift-gitops
puisse la gérer :oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops
$ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6.4. Synchroniser votre application avec votre dépôt Git Copier lienLien copié sur presse-papiers!
Procédure
- Dans le tableau de bord Argo CD, remarquez que l'application cluster-configs Argo CD a les statuts Missing et OutOfSync. Parce que l'application a été configurée avec une politique de synchronisation manuelle, Argo CD ne la synchronise pas automatiquement.
- Cliquez sur SYNC sur la tuile cluster-configs, examinez les changements, puis cliquez sur SYNCHRONIZE. Argo CD détectera automatiquement tout changement dans le référentiel Git. Si les configurations sont modifiées, Argo CD changera l'état de cluster-configs en OutOfSync. Vous pouvez modifier la politique de synchronisation d'Argo CD pour appliquer automatiquement les modifications de votre référentiel Git au cluster.
- Remarquez que l'application cluster-configs Argo CD a maintenant les statuts Healthy et Synced. Cliquez sur la tuile cluster-configs pour vérifier les détails des ressources synchronisées et leur statut sur le cluster.
-
Naviguez vers la console web OpenShift Container Platform et cliquez sur l'icône de menu
pour vérifier qu'un lien vers le site Red Hat Developer Blog - Kubernetes est maintenant présent.
Naviguez jusqu'à la page Project et recherchez l'espace de noms
spring-petclinic
pour vérifier qu'il a été ajouté au cluster.Les configurations de votre cluster ont été synchronisées avec succès sur le cluster.
4.6.5. Autorisations intégrées pour la configuration des clusters Copier lienLien copié sur presse-papiers!
Par défaut, l'instance Argo CD dispose d'autorisations pour gérer des ressources spécifiques à la grappe, telles que les opérateurs de grappe, les opérateurs OLM facultatifs et la gestion des utilisateurs.
Argo CD n'a pas les permissions d'administrateur de cluster.
Permissions pour l'instance Argo CD :
Resources | Descriptions |
Groupes de ressources | Configurer l'utilisateur ou l'administrateur |
| Opérateurs optionnels gérés par OLM |
| Groupes, utilisateurs et leurs autorisations |
| Opérateurs du plan de contrôle gérés par l'OVE utilisés pour configurer la configuration de la construction à l'échelle de la grappe, la configuration du registre et les politiques du planificateur |
| Stockage |
| Personnalisation de la console |
4.6.6. Ajout de permissions pour la configuration de la grappe Copier lienLien copié sur presse-papiers!
Vous pouvez accorder des autorisations à une instance Argo CD pour gérer la configuration du cluster. Créez un rôle de cluster avec des autorisations supplémentaires, puis créez une nouvelle liaison de rôle de cluster pour associer le rôle de cluster à un compte de service.
Procédure
- Connectez-vous à la console web de OpenShift Container Platform en tant qu'administrateur.
Dans la console web, sélectionnez User Management
Roles Create Role. Utilisez le modèle YAML ClusterRole
suivant pour ajouter des règles afin de spécifier les autorisations supplémentaires.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Cliquez sur Create pour ajouter le rôle de cluster.
-
Créez maintenant le binding du rôle de cluster. Dans la console web, sélectionnez User Management
Role Bindings Create Binding. - Sélectionnez All Projects dans la liste déroulante Project.
- Cliquez sur Create binding.
- Sélectionnez Binding type comme Cluster-wide role binding (ClusterRoleBinding).
- Saisissez une valeur unique pour le site RoleBinding name.
- Sélectionnez le rôle de cluster nouvellement créé ou un rôle de cluster existant dans la liste déroulante.
Sélectionnez le site Subject comme ServiceAccount et fournissez ensuite les sites Subject namespace et name.
-
Subject namespace:
openshift-gitops
-
Subject name:
openshift-gitops-argocd-application-controller
-
Subject namespace:
Cliquez sur Create. Le fichier YAML de l'objet
ClusterRoleBinding
est le suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow