2.3. Configuration de la création de projets


Dans OpenShift Container Platform, projects est utilisé pour regrouper et isoler des objets liés. Lorsqu'une demande est faite pour créer un nouveau projet à l'aide de la console web ou de la commande oc new-project, un point de terminaison dans OpenShift Container Platform est utilisé pour provisionner le projet selon un modèle, qui peut être personnalisé.

En tant qu'administrateur de cluster, vous pouvez autoriser et configurer la façon dont les développeurs et les comptes de service peuvent créer, ou self-provision, leurs propres projets.

2.3.1. A propos de la création de projets

Le serveur API de OpenShift Container Platform fournit automatiquement de nouveaux projets basés sur le modèle de projet identifié par le paramètre projectRequestTemplate dans la ressource de configuration de projet du cluster. Si le paramètre n'est pas défini, le serveur API crée un modèle par défaut qui crée un projet avec le nom demandé et attribue à l'utilisateur demandeur le rôle admin pour ce projet.

Lorsqu'une demande de projet est soumise, l'API substitue les paramètres suivants dans le modèle :

Tableau 2.1. Paramètres par défaut du modèle de projet
ParamètresDescription

PROJECT_NAME

Le nom du projet. Obligatoire.

PROJECT_DISPLAYNAME

Le nom d'affichage du projet. Peut être vide.

PROJECT_DESCRIPTION

La description du projet. Peut être vide.

PROJECT_ADMIN_USER

Le nom d'utilisateur de l'utilisateur administrateur.

PROJECT_REQUESTING_USER

Le nom d'utilisateur de l'utilisateur demandeur.

L'accès à l'API est accordé aux développeurs ayant le rôle self-provisioner et le rôle de cluster self-provisioners. Ce rôle est disponible par défaut pour tous les développeurs authentifiés.

2.3.2. Modifier le modèle pour les nouveaux projets

En tant qu'administrateur de cluster, vous pouvez modifier le modèle de projet par défaut afin que les nouveaux projets soient créés en fonction de vos besoins.

Pour créer votre propre modèle de projet personnalisé :

Procédure

  1. Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.
  2. Générer le modèle de projet par défaut :

    oc adm create-bootstrap-project-template -o yaml > template.yaml
  3. Utilisez un éditeur de texte pour modifier le fichier template.yaml généré en ajoutant des objets ou en modifiant des objets existants.
  4. Le modèle de projet doit être créé dans l'espace de noms openshift-config. Chargez votre modèle modifié :

    $ oc create -f template.yaml -n openshift-config
  5. Modifiez la ressource de configuration du projet à l'aide de la console Web ou de la CLI.

    • En utilisant la console web :

      1. Naviguez jusqu'à la page Administration Cluster Settings.
      2. Cliquez sur Configuration pour afficher toutes les ressources de configuration.
      3. Trouvez l'entrée pour Project et cliquez sur Edit YAML.
    • Utilisation de la CLI :

      1. Modifier la ressource project.config.openshift.io/cluster:

        $ oc edit project.config.openshift.io/cluster
  6. Mettez à jour la section spec pour inclure les paramètres projectRequestTemplate et name, et définissez le nom de votre modèle de projet téléchargé. Le nom par défaut est project-request.

    Ressource de configuration de projet avec modèle de projet personnalisé

    apiVersion: config.openshift.io/v1
    kind: Project
    metadata:
      ...
    spec:
      projectRequestTemplate:
        name: <template_name>

  7. Après avoir enregistré vos modifications, créez un nouveau projet pour vérifier que vos modifications ont bien été appliquées.

2.3.3. Désactiver l'auto-provisionnement des projets

Vous pouvez empêcher un groupe d'utilisateurs authentifiés d'auto-approvisionner de nouveaux projets.

Procédure

  1. Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.
  2. Affichez l'utilisation de la liaison de rôle du cluster self-provisioners en exécutant la commande suivante :

    $ oc describe clusterrolebinding.rbac self-provisioners

    Exemple de sortie

    Name:		self-provisioners
    Labels:		<none>
    Annotations:	rbac.authorization.kubernetes.io/autoupdate=true
    Role:
      Kind:	ClusterRole
      Name:	self-provisioner
    Subjects:
      Kind	Name				Namespace
      ----	----				---------
      Group	system:authenticated:oauth

    Passez en revue les sujets de la section self-provisioners.

  3. Supprimez le rôle de cluster self-provisioner du groupe system:authenticated:oauth.

    • Si la liaison des rôles du cluster self-provisioners lie uniquement le rôle self-provisioner au groupe system:authenticated:oauth, exécutez la commande suivante :

      $ oc patch clusterrolebinding.rbac self-provisioners -p '{"subjects": null}'
    • Si la liaison du rôle de cluster self-provisioners lie le rôle self-provisioner à plus d'utilisateurs, de groupes ou de comptes de service que le groupe system:authenticated:oauth, exécutez la commande suivante :

      $ oc adm policy \
          remove-cluster-role-from-group self-provisioner \
          system:authenticated:oauth
  4. Modifiez le lien du rôle de cluster self-provisioners pour empêcher les mises à jour automatiques du rôle. Les mises à jour automatiques réinitialisent les rôles de cluster à l'état par défaut.

    • Pour mettre à jour l'attribution des rôles à l'aide de l'interface de ligne de commande :

      1. Exécutez la commande suivante :

        $ oc edit clusterrolebinding.rbac self-provisioners
      2. Dans la définition de rôle affichée, définissez la valeur du paramètre rbac.authorization.kubernetes.io/autoupdate sur false, comme indiqué dans l'exemple suivant :

        apiVersion: authorization.openshift.io/v1
        kind: ClusterRoleBinding
        metadata:
          annotations:
            rbac.authorization.kubernetes.io/autoupdate: "false"
          ...
    • Pour mettre à jour l'attribution des rôles à l'aide d'une seule commande :

      $ oc patch clusterrolebinding.rbac self-provisioners -p '{ "metadata": { "annotations": { "rbac.authorization.kubernetes.io/autoupdate": "false" } } }'
  5. Connectez-vous en tant qu'utilisateur authentifié et vérifiez qu'il n'est plus possible d'auto-provisionner un projet :

    $ oc new-project test

    Exemple de sortie

    Error from server (Forbidden): You may not request a new project via this API.

    Pensez à personnaliser ce message de demande de projet pour fournir des instructions plus utiles et spécifiques à votre organisation.

2.3.4. Personnalisation du message de demande de projet

Lorsqu'un développeur ou un compte de service qui n'est pas en mesure d'auto-provisionner des projets fait une demande de création de projet à l'aide de la console web ou de la CLI, le message d'erreur suivant est renvoyé par défaut :

You may not request a new project via this API.

Les administrateurs de clusters peuvent personnaliser ce message. Envisagez de le mettre à jour pour fournir des instructions supplémentaires sur la manière de demander un nouveau projet spécifique à votre organisation. Par exemple :

  • Pour demander un projet, contactez votre administrateur système à l'adresse projectname@example.com.
  • Pour demander un nouveau projet, remplissez le formulaire de demande de projet situé à l'adresse https://internal.example.com/openshift-project-request.

Pour personnaliser le message de demande de projet :

Procédure

  1. Modifiez la ressource de configuration du projet à l'aide de la console Web ou de la CLI.

    • En utilisant la console web :

      1. Naviguez jusqu'à la page Administration Cluster Settings.
      2. Cliquez sur Configuration pour afficher toutes les ressources de configuration.
      3. Trouvez l'entrée pour Project et cliquez sur Edit YAML.
    • Utilisation de la CLI :

      1. Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.
      2. Modifier la ressource project.config.openshift.io/cluster:

        $ oc edit project.config.openshift.io/cluster
  2. Mettez à jour la section spec pour inclure le paramètre projectRequestMessage et définissez la valeur de votre message personnalisé :

    Ressource de configuration de projet avec message de demande de projet personnalisé

    apiVersion: config.openshift.io/v1
    kind: Project
    metadata:
      ...
    spec:
      projectRequestMessage: <message_string>

    Par exemple :

    apiVersion: config.openshift.io/v1
    kind: Project
    metadata:
      ...
    spec:
      projectRequestMessage: To request a project, contact your system administrator at projectname@example.com.
  3. Après avoir enregistré vos modifications, essayez de créer un nouveau projet en tant que développeur ou compte de service qui n'est pas en mesure d'auto-provisionner des projets afin de vérifier que vos modifications ont été appliquées avec succès.
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.

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 leBlog 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.

© 2024 Red Hat, Inc.