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

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

  1. Étiqueter les nœuds existants :

    $ oc label node <node-name> node-role.kubernetes.io/infra=""
    Copy to Clipboard Toggle word wrap
  2. 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
    Copy to Clipboard Toggle word wrap
  3. Ajoutez la bascule runOnInfra dans la ressource personnalisée GitOpsService:

    apiVersion: pipelines.openshift.io/v1alpha1
    kind: GitopsService
    metadata:
      name: cluster
    spec:
      runOnInfra: true
    Copy to Clipboard Toggle word wrap
  4. Facultatif : si des taints ont été ajoutés aux nœuds, ajoutez tolerations à la ressource personnalisée GitOpsService, par exemple :

      spec:
        runOnInfra: true
        tolerations:
        - effect: NoSchedule
          key: infra
          value: reserved
        - effect: NoExecute
          key: infra
          value: reserved
    Copy to Clipboard Toggle word wrap
  5. 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 Pods Pod details pour n'importe quel module dans l'interface utilisateur de la console.
Note

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.

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 red hat applications menu icon dans la console web, et définit un espace de noms spring-petclinic sur le cluster.

Procédure

  1. Dans le tableau de bord Argo CD, cliquez sur NEW APP pour ajouter une nouvelle application Argo CD.
  2. 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
  3. Cliquez sur CREATE pour créer votre application.
  4. Ouvrez la perspective Administrator de la console web et naviguez vers Administration Namespaces dans le menu de gauche.
  5. 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 noms openshift-gitops puisse gérer votre espace de noms.

4.6.3. Création d'une application à l'aide de l'outil oc

Vous pouvez créer des applications Argo CD dans votre terminal en utilisant l'outil oc.

Procédure

  1. Télécharger l'exemple d'application:

    $ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
    Copy to Clipboard Toggle word wrap
  2. Créer l'application :

    $ oc create -f openshift-gitops-getting-started/argo/app.yaml
    Copy to Clipboard Toggle word wrap
  3. Exécutez la commande oc get pour examiner l'application créée :

    $ oc get application -n openshift-gitops
    Copy to Clipboard Toggle word wrap
  4. 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
    Copy to Clipboard Toggle word wrap

4.6.4. Synchroniser votre application avec votre dépôt Git

Procédure

  1. 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.
  2. 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.
  3. 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.
  4. Naviguez vers la console web OpenShift Container Platform et cliquez sur l'icône de menu red hat applications menu icon pour vérifier qu'un lien vers le site Red Hat Developer Blog - Kubernetes est maintenant présent.
  5. 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.

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.

Note

Argo CD n'a pas les permissions d'administrateur de cluster.

Permissions pour l'instance Argo CD :

Expand

Resources

Descriptions

Groupes de ressources

Configurer l'utilisateur ou l'administrateur

operators.coreos.com

Opérateurs optionnels gérés par OLM

user.openshift.io, rbac.authorization.k8s.io

Groupes, utilisateurs et leurs autorisations

config.openshift.io

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

storage.k8s.io

Stockage

console.openshift.io

Personnalisation de la console

4.6.6. Ajout de permissions pour la configuration de la grappe

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

  1. Connectez-vous à la console web de OpenShift Container Platform en tant qu'administrateur.
  2. 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.

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: secrets-cluster-role
    rules:
    - apiGroups: [""]
      resources: ["secrets"]
      verbs: ["*"]
    Copy to Clipboard Toggle word wrap
  3. Cliquez sur Create pour ajouter le rôle de cluster.
  4. Créez maintenant le binding du rôle de cluster. Dans la console web, sélectionnez User Management Role Bindings Create Binding.
  5. Sélectionnez All Projects dans la liste déroulante Project.
  6. Cliquez sur Create binding.
  7. Sélectionnez Binding type comme Cluster-wide role binding (ClusterRoleBinding).
  8. Saisissez une valeur unique pour le site RoleBinding name.
  9. Sélectionnez le rôle de cluster nouvellement créé ou un rôle de cluster existant dans la liste déroulante.
  10. Sélectionnez le site Subject comme ServiceAccount et fournissez ensuite les sites Subject namespace et name.

    1. Subject namespace: openshift-gitops
    2. Subject name: openshift-gitops-argocd-application-controller
  11. Cliquez sur Create. Le fichier YAML de l'objet ClusterRoleBinding est le suivant :

    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: cluster-role-binding
    subjects:
      - kind: ServiceAccount
        name: openshift-gitops-argocd-application-controller
        namespace: openshift-gitops
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: admin
    Copy to Clipboard Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat