20.6. Définir une politique de réseau par défaut pour les projets
En tant qu'administrateur de cluster, vous pouvez modifier le modèle de nouveau projet pour inclure automatiquement les stratégies de réseau lorsque vous créez un nouveau projet. Si vous n'avez pas encore de modèle personnalisé pour les nouveaux projets, vous devez d'abord en créer un.
20.6.1. 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
-
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
. Générer le modèle de projet par défaut :
oc adm create-bootstrap-project-template -o yaml > template.yaml
-
Utilisez un éditeur de texte pour modifier le fichier
template.yaml
généré en ajoutant des objets ou en modifiant des objets existants. 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
Modifiez la ressource de configuration du projet à l'aide de la console Web ou de la CLI.
En utilisant la console web :
-
Naviguez jusqu'à la page Administration
Cluster Settings. - Cliquez sur Configuration pour afficher toutes les ressources de configuration.
- Trouvez l'entrée pour Project et cliquez sur Edit YAML.
-
Naviguez jusqu'à la page Administration
Utilisation de la CLI :
Modifier la ressource
project.config.openshift.io/cluster
:$ oc edit project.config.openshift.io/cluster
Mettez à jour la section
spec
pour inclure les paramètresprojectRequestTemplate
etname
, et définissez le nom de votre modèle de projet téléchargé. Le nom par défaut estproject-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>
- Après avoir enregistré vos modifications, créez un nouveau projet pour vérifier que vos modifications ont bien été appliquées.
20.6.2. Ajouter des politiques de réseau au nouveau modèle de projet
En tant qu'administrateur de cluster, vous pouvez ajouter des politiques de réseau au modèle par défaut pour les nouveaux projets. OpenShift Container Platform créera automatiquement tous les objets NetworkPolicy
spécifiés dans le modèle du projet.
Conditions préalables
-
Votre cluster utilise un fournisseur de réseau CNI par défaut qui prend en charge les objets
NetworkPolicy
, tel que le fournisseur de réseau OpenShift SDN avec l'optionmode: NetworkPolicy
. Ce mode est le mode par défaut pour OpenShift SDN. -
You installed the OpenShift CLI (
oc
). -
Vous devez vous connecter au cluster avec un utilisateur disposant des privilèges
cluster-admin
. - Vous devez avoir créé un modèle de projet personnalisé par défaut pour les nouveaux projets.
Procédure
Modifiez le modèle par défaut pour un nouveau projet en exécutant la commande suivante :
$ oc edit template <project_template> -n openshift-config
Remplacez
<project_template>
par le nom du modèle par défaut que vous avez configuré pour votre cluster. Le nom du modèle par défaut estproject-request
.Dans le modèle, ajoutez chaque objet
NetworkPolicy
en tant qu'élément du paramètreobjects
. Le paramètreobjects
accepte une collection d'un ou plusieurs objets.Dans l'exemple suivant, la collection de paramètres
objects
comprend plusieurs objetsNetworkPolicy
.objects: - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-same-namespace spec: podSelector: {} ingress: - from: - podSelector: {} - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-openshift-ingress spec: ingress: - from: - namespaceSelector: matchLabels: network.openshift.io/policy-group: ingress podSelector: {} policyTypes: - Ingress - apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-kube-apiserver-operator spec: ingress: - from: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: openshift-kube-apiserver-operator podSelector: matchLabels: app: kube-apiserver-operator policyTypes: - Ingress ...
Facultatif : Créez un nouveau projet pour confirmer que vos objets de stratégie de réseau ont été créés avec succès en exécutant les commandes suivantes :
Créer un nouveau projet :
oc new-project <projet> $ oc new-project <projet> 1
- 1
- Remplacez
<project>
par le nom du projet que vous créez.
Confirmez que les objets de stratégie de réseau du nouveau modèle de projet existent dans le nouveau projet :
$ oc get networkpolicy NAME POD-SELECTOR AGE allow-from-openshift-ingress <none> 7s allow-from-same-namespace <none> 7s