7.3. Configurer des dépôts de cartes Helm personnalisés
Vous pouvez installer les graphiques Helm sur un cluster OpenShift Container Platform en utilisant les méthodes suivantes :
- Le CLI.
- La perspective Developer de la console web.
Le site Developer Catalog, dans la perspective Developer de la console Web, affiche les graphiques Helm disponibles dans le cluster. Par défaut, il répertorie les graphiques Helm du dépôt de graphiques Helm de Red Hat OpenShift. Pour obtenir une liste des graphiques, consultez le fichier Red Hat Helm index
.
En tant qu'administrateur de cluster, vous pouvez ajouter plusieurs référentiels de diagrammes Helm adaptés au cluster et à l'espace de noms, distincts du référentiel Helm par défaut adapté au cluster, et afficher les diagrammes Helm de ces référentiels sur le site Developer Catalog.
En tant qu'utilisateur normal ou membre d'un projet disposant des autorisations de contrôle d'accès basé sur les rôles (RBAC) appropriées, vous pouvez ajouter plusieurs référentiels de diagrammes Helm dans l'espace de noms, en plus du référentiel Helm par défaut dans le cluster, et afficher les diagrammes Helm de ces référentiels dans le site Developer Catalog.
Dans la perspective Developer de la console web, vous pouvez utiliser la page Helm pour :
- Créez des versions et des dépôts Helm en utilisant le bouton Create.
- Créer, mettre à jour ou supprimer un référentiel graphique Helm à l'échelle d'un cluster ou d'un espace de noms.
- Consultez la liste des référentiels graphiques Helm existants dans l'onglet Référentiels, qui peuvent également être facilement distingués en tant que référentiels de cluster ou d'espace de noms.
7.3.1. Installation d'un diagramme Helm sur un cluster OpenShift Container Platform
Conditions préalables
- Vous avez un cluster OpenShift Container Platform en cours d'exécution et vous vous y êtes connecté.
- Vous avez installé Helm.
Procédure
Créer un nouveau projet :
oc new-project vault
$ oc new-project vault
Copy to Clipboard Copied! Ajouter un référentiel de cartes Helm à votre client Helm local :
helm repo add openshift-helm-charts https://charts.openshift.io/
$ helm repo add openshift-helm-charts https://charts.openshift.io/
Copy to Clipboard Copied! Exemple de sortie
"openshift-helm-charts" has been added to your repositories
"openshift-helm-charts" has been added to your repositories
Copy to Clipboard Copied! Mettre à jour le référentiel :
helm repo update
$ helm repo update
Copy to Clipboard Copied! Installer un exemple de chambre forte HashiCorp :
helm install example-vault openshift-helm-charts/hashicorp-vault
$ helm install example-vault openshift-helm-charts/hashicorp-vault
Copy to Clipboard Copied! Exemple de sortie
NAME: example-vault LAST DEPLOYED: Fri Mar 11 12:02:12 2022 NAMESPACE: vault STATUS: deployed REVISION: 1 NOTES: Thank you for installing HashiCorp Vault!
NAME: example-vault LAST DEPLOYED: Fri Mar 11 12:02:12 2022 NAMESPACE: vault STATUS: deployed REVISION: 1 NOTES: Thank you for installing HashiCorp Vault!
Copy to Clipboard Copied! Vérifiez que la carte a été installée avec succès :
helm list
$ helm list
Copy to Clipboard Copied! Exemple de sortie
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION example-vault vault 1 2022-03-11 12:02:12.296226673 +0530 IST deployed vault-0.19.0 1.9.2
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION example-vault vault 1 2022-03-11 12:02:12.296226673 +0530 IST deployed vault-0.19.0 1.9.2
Copy to Clipboard Copied!
7.3.2. Installer les cartes Helm en utilisant la perspective du développeur
Vous pouvez utiliser la perspective Developer de la console Web ou le CLI pour sélectionner et installer un graphique parmi les graphiques Helm répertoriés dans la perspective Developer Catalog. Vous pouvez créer des versions Helm en installant des graphiques Helm et les voir dans la perspective Developer de la console Web.
Conditions préalables
- Vous vous êtes connecté à la console web et avez basculé dans la perspective Developer .
Procédure
Pour créer des versions de Helm à partir des cartes de Helm fournies dans le site Developer Catalog:
- Dans la perspective Developer, accédez à la vue Add et sélectionnez un projet. Cliquez ensuite sur l'option Helm Chart pour voir tous les diagrammes de barre dans la vue Developer Catalog.
- Sélectionnez un graphique et lisez la description, le README et d'autres détails concernant le graphique.
Cliquez sur Install Helm Chart.
Figure 7.1. Fiches de pilotage dans le catalogue des développeurs
Dans la page Install Helm Chart:
- Saisissez un nom unique pour la version dans le champ Release Name.
- Sélectionnez la version de la carte requise dans la liste déroulante Chart Version.
Configurez votre carte Helm en utilisant le site Form View ou le site YAML View.
NoteLorsque cela est possible, vous pouvez passer de la vue YAML View à la vue Form View. Les données sont conservées lors du passage d'une vue à l'autre.
- Cliquez sur Install pour créer un communiqué de presse Helm. Vous serez redirigé vers la vue Topology où la version est affichée. Si le tableau Helm contient des notes de mise à jour, le tableau est présélectionné et le panneau de droite affiche les notes de mise à jour pour cette version.
- Voir la nouvelle version de Helm sur la page Helm Releases.
Vous pouvez mettre à niveau, revenir en arrière ou désinstaller une version de Helm en utilisant le bouton Actions sur le panneau latéral ou en cliquant avec le bouton droit de la souris sur une version de Helm.
7.3.3. Utilisation de Helm dans le terminal web
Vous pouvez utiliser Helm en initialisant le terminal Web dans la perspective Developer de la console Web. Pour plus d'informations, voir Utilisation du terminal web.
7.3.4. Créer un graphique Helm personnalisé sur OpenShift Container Platform
Procédure
Créer un nouveau projet :
oc new-project nodejs-ex-k
$ oc new-project nodejs-ex-k
Copy to Clipboard Copied! Téléchargez un exemple de graphique Node.js contenant des objets OpenShift Container Platform :
git clone https://github.com/redhat-developer/redhat-helm-charts
$ git clone https://github.com/redhat-developer/redhat-helm-charts
Copy to Clipboard Copied! Allez dans le répertoire contenant l'exemple de tableau :
cd redhat-helm-charts/alpha/nodejs-ex-k/
$ cd redhat-helm-charts/alpha/nodejs-ex-k/
Copy to Clipboard Copied! Modifiez le fichier
Chart.yaml
et ajoutez une description de votre graphique :apiVersion: v2 name: nodejs-ex-k description: A Helm chart for OpenShift icon: https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.svg version: 0.2.1
apiVersion: v2
1 name: nodejs-ex-k
2 description: A Helm chart for OpenShift
3 icon: https://static.redhat.com/libs/redhat/brand-assets/latest/corp/logo.svg
4 version: 0.2.1
5 Copy to Clipboard Copied! - 1
- La version de l'API de la carte. Il devrait être
v2
pour les cartes Helm qui nécessitent au moins Helm 3. - 2
- Le nom de votre graphique.
- 3
- La description de votre carte.
- 4
- L'URL d'une image à utiliser comme icône.
- 5
- La version de votre graphique selon la spécification Semantic Versioning (SemVer) 2.0.0.
Vérifiez que le graphique est correctement formaté :
helm lint
$ helm lint
Copy to Clipboard Copied! Exemple de sortie
[INFO] Chart.yaml: icon is recommended 1 chart(s) linted, 0 chart(s) failed
[INFO] Chart.yaml: icon is recommended 1 chart(s) linted, 0 chart(s) failed
Copy to Clipboard Copied! Naviguer vers le niveau de répertoire précédent :
cd ..
$ cd ..
Copy to Clipboard Copied! Installer la carte :
helm install nodejs-chart nodejs-ex-k
$ helm install nodejs-chart nodejs-ex-k
Copy to Clipboard Copied! Vérifiez que la carte a été installée avec succès :
helm list
$ helm list
Copy to Clipboard Copied! Exemple de sortie
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nodejs-chart nodejs-ex-k 1 2019-12-05 15:06:51.379134163 -0500 EST deployed nodejs-0.1.0 1.16.0
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nodejs-chart nodejs-ex-k 1 2019-12-05 15:06:51.379134163 -0500 EST deployed nodejs-0.1.0 1.16.0
Copy to Clipboard Copied!
7.3.5. Ajouter des dépôts de cartes Helm personnalisés
En tant qu'administrateur de cluster, vous pouvez ajouter des référentiels de graphiques Helm personnalisés à votre cluster et activer l'accès aux graphiques Helm à partir de ces référentiels dans le site Developer Catalog.
Procédure
Pour ajouter un nouveau dépôt de cartes Helm, vous devez ajouter la ressource personnalisée (CR) Helm Chart Repository à votre cluster.
Exemple de dépôt de cartes de barre CR
apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: <name> spec: # optional name that might be used by console # name: <chart-display-name> connectionConfig: url: <helm-chart-repository-url>
apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: <name> spec: # optional name that might be used by console # name: <chart-display-name> connectionConfig: url: <helm-chart-repository-url>
Copy to Clipboard Copied! Par exemple, pour ajouter un référentiel d'échantillons graphiques Azure, exécutez :
cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: azure-sample-repo spec: name: azure-sample-repo connectionConfig: url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs EOF
$ cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: azure-sample-repo spec: name: azure-sample-repo connectionConfig: url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs EOF
Copy to Clipboard Copied! Naviguez sur le site Developer Catalog dans la console Web pour vérifier que les cartes Helm du référentiel de cartes sont affichées.
Par exemple, utilisez le filtre Chart repositories pour rechercher un graphique Helm dans le référentiel.
Figure 7.2. Filtre sur les référentiels graphiques
NoteSi un administrateur de cluster supprime tous les référentiels de cartes, vous ne pouvez pas afficher l'option Helm dans la vue Add, Developer Catalog et dans le panneau de navigation gauche.
7.3.6. Ajout de dépôts de graphiques Helm personnalisés dans l'espace de noms
La définition de ressource personnalisée (CRD) HelmChartRepository
pour le référentiel Helm permet aux administrateurs d'ajouter des référentiels Helm en tant que ressources personnalisées. La définition de ressource personnalisée ProjectHelmChartRepository
(namespace-scoped) permet aux membres du projet disposant des autorisations de contrôle d'accès basé sur les rôles (RBAC) appropriées de créer des ressources de référentiel Helm de leur choix, mais limitées à leur espace de noms. Ces membres du projet peuvent consulter des graphiques provenant de ressources de dépôt Helm à la fois à l'échelle du cluster et à l'échelle de l'espace de noms.
- Les administrateurs peuvent empêcher les utilisateurs de créer des ressources de référentiel Helm dans un espace de noms. En limitant les utilisateurs, les administrateurs ont la possibilité de contrôler le RBAC par le biais d'un rôle d'espace de noms au lieu d'un rôle de cluster. Cela évite d'élever inutilement les autorisations pour l'utilisateur et empêche l'accès à des services ou des applications non autorisés.
- L'ajout du référentiel Helm à l'échelle de l'espace de noms n'a pas d'impact sur le comportement du référentiel Helm à l'échelle du cluster existant.
En tant qu'utilisateur régulier ou membre de projet disposant des autorisations RBAC appropriées, vous pouvez ajouter à votre cluster des référentiels de diagrammes Helm personnalisés dans l'espace de noms et activer l'accès aux diagrammes Helm à partir de ces référentiels dans le site Developer Catalog.
Procédure
Pour ajouter un nouveau référentiel Helm Chart dans l'espace de noms, vous devez ajouter la ressource personnalisée (CR) Helm Chart Repository à votre espace de noms.
Exemple de référentiel de diagramme de Helm dans l'espace de nommage (Namespace-scoped) CR
apiVersion: helm.openshift.io/v1beta1 kind: ProjectHelmChartRepository metadata: name: <name> spec: url: https://my.chart-repo.org/stable # optional name that might be used by console name: <chart-repo-display-name> # optional and only needed for UI purposes description: <My private chart repo> # required: chart repository URL connectionConfig: url: <helm-chart-repository-url>
apiVersion: helm.openshift.io/v1beta1 kind: ProjectHelmChartRepository metadata: name: <name> spec: url: https://my.chart-repo.org/stable # optional name that might be used by console name: <chart-repo-display-name> # optional and only needed for UI purposes description: <My private chart repo> # required: chart repository URL connectionConfig: url: <helm-chart-repository-url>
Copy to Clipboard Copied! Par exemple, pour ajouter un référentiel de graphiques Azure scoped à votre espace de noms
my-namespace
, exécutez :cat <<EOF | oc apply --namespace my-namespace -f - apiVersion: helm.openshift.io/v1beta1 kind: ProjectHelmChartRepository metadata: name: azure-sample-repo spec: name: azure-sample-repo connectionConfig: url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs EOF
$ cat <<EOF | oc apply --namespace my-namespace -f - apiVersion: helm.openshift.io/v1beta1 kind: ProjectHelmChartRepository metadata: name: azure-sample-repo spec: name: azure-sample-repo connectionConfig: url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs EOF
Copy to Clipboard Copied! La sortie vérifie que le référentiel de diagrammes Helm est créé dans l'espace de noms :
Exemple de sortie
projecthelmchartrepository.helm.openshift.io/azure-sample-repo created
projecthelmchartrepository.helm.openshift.io/azure-sample-repo created
Copy to Clipboard Copied! Naviguez vers Developer Catalog dans la console web pour vérifier que les graphiques Helm du référentiel de graphiques sont affichés dans votre espace de noms
my-namespace
.Par exemple, utilisez le filtre Chart repositories pour rechercher un graphique Helm dans le référentiel.
Figure 7.3. Filtre des référentiels graphiques dans votre espace de noms
Il est également possible d'exécuter :
oc get projecthelmchartrepositories --namespace my-namespace
$ oc get projecthelmchartrepositories --namespace my-namespace
Copy to Clipboard Copied! Exemple de sortie
NAME AGE azure-sample-repo 1m
NAME AGE azure-sample-repo 1m
Copy to Clipboard Copied! NoteSi un administrateur de cluster ou un utilisateur normal disposant des autorisations RBAC appropriées supprime tous les référentiels graphiques d'un espace de noms spécifique, vous ne pouvez pas afficher l'option Helm dans la vue Add, Developer Catalog et dans le panneau de navigation de gauche pour cet espace de noms spécifique.
7.3.7. Création d'informations d'identification et de certificats CA pour ajouter des référentiels graphiques Helm
Certains référentiels graphiques Helm ont besoin d'informations d'identification et de certificats d'autorité de certification (CA) personnalisés pour s'y connecter. Vous pouvez utiliser la console web ainsi que le CLI pour ajouter des informations d'identification et des certificats.
Procédure
Pour configurer les informations d'identification et les certificats, puis ajouter un référentiel graphique Helm à l'aide de l'interface de programmation :
Dans l'espace de noms
openshift-config
, créez un objetConfigMap
avec un certificat d'autorité de certification personnalisé au format encodé PEM, et stockez-le sous la cléca-bundle.crt
dans la carte de configuration :oc create configmap helm-ca-cert \ --from-file=ca-bundle.crt=/path/to/certs/ca.crt \ -n openshift-config
$ oc create configmap helm-ca-cert \ --from-file=ca-bundle.crt=/path/to/certs/ca.crt \ -n openshift-config
Copy to Clipboard Copied! Dans l'espace de noms
openshift-config
, créez un objetSecret
pour ajouter les configurations TLS du client :oc create secret tls helm-tls-configs \ --cert=/path/to/certs/client.crt \ --key=/path/to/certs/client.key \ -n openshift-config
$ oc create secret tls helm-tls-configs \ --cert=/path/to/certs/client.crt \ --key=/path/to/certs/client.key \ -n openshift-config
Copy to Clipboard Copied! Notez que le certificat et la clé du client doivent être au format codé PEM et stockés sous les clés
tls.crt
ettls.key
, respectivement.Ajoutez le référentiel Helm comme suit :
cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: <helm-repository> spec: name: <helm-repository> connectionConfig: url: <URL for the Helm repository> tlsConfig: name: helm-tls-configs ca: name: helm-ca-cert EOF
$ cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: <helm-repository> spec: name: <helm-repository> connectionConfig: url: <URL for the Helm repository> tlsConfig: name: helm-tls-configs ca: name: helm-ca-cert EOF
Copy to Clipboard Copied! Les certificats
ConfigMap
etSecret
sont consommés dans le CR HelmChartRepository à l'aide des champstlsConfig
etca
. Ces certificats sont utilisés pour se connecter à l'URL du référentiel Helm.Par défaut, tous les utilisateurs authentifiés ont accès à tous les graphiques configurés. Toutefois, pour les référentiels graphiques nécessitant des certificats, vous devez fournir aux utilisateurs un accès en lecture à la carte de configuration
helm-ca-cert
et au secrethelm-tls-configs
dans l'espace de nomsopenshift-config
, comme suit :cat <<EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: openshift-config name: helm-chartrepos-tls-conf-viewer rules: - apiGroups: [""] resources: ["configmaps"] resourceNames: ["helm-ca-cert"] verbs: ["get"] - apiGroups: [""] resources: ["secrets"] resourceNames: ["helm-tls-configs"] verbs: ["get"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: openshift-config name: helm-chartrepos-tls-conf-viewer subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: 'system:authenticated' roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: helm-chartrepos-tls-conf-viewer EOF
$ cat <<EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: openshift-config name: helm-chartrepos-tls-conf-viewer rules: - apiGroups: [""] resources: ["configmaps"] resourceNames: ["helm-ca-cert"] verbs: ["get"] - apiGroups: [""] resources: ["secrets"] resourceNames: ["helm-tls-configs"] verbs: ["get"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: openshift-config name: helm-chartrepos-tls-conf-viewer subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: 'system:authenticated' roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: helm-chartrepos-tls-conf-viewer EOF
Copy to Clipboard Copied!
7.3.8. Filtrer les tableaux de bord en fonction de leur niveau de certification
Vous pouvez filtrer les graphiques de Helm en fonction de leur niveau de certification sur le site Developer Catalog.
Procédure
- Dans le site Developer perspective, accédez à la vue Add et sélectionnez un projet.
- Dans la tuile Developer Catalog, sélectionnez l'option Helm Chart pour voir toutes les cartes de Helm dans Developer Catalog.
Utilisez les filtres à gauche de la liste des graphiques Helm pour filtrer les graphiques requis :
- Utilisez le filtre Chart Repositories pour filtrer les graphiques fournis par Red Hat Certification Charts ou OpenShift Helm Charts.
-
Utilisez le filtre Source pour filtrer les graphiques provenant de Partners, Community ou Red Hat. Les graphiques certifiés sont indiqués par l'icône (
).
Le filtre Source n'est pas visible lorsqu'il n'y a qu'un seul type de fournisseur.
Vous pouvez maintenant sélectionner la carte requise et l'installer.
7.3.9. Désactivation des dépôts de Helm Chart
Vous pouvez désactiver les cartes Helm d'un référentiel de cartes Helm particulier dans le catalogue en définissant la propriété disabled
de la ressource personnalisée HelmChartRepository
sur true
.
Procédure
Pour désactiver un référentiel graphique Helm à l'aide de l'interface de programmation, ajoutez l'indicateur
disabled: true
à la ressource personnalisée. Par exemple, pour supprimer un référentiel graphique d'un échantillon Azure, exécutez :cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: azure-sample-repo spec: connectionConfig: url:https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs disabled: true EOF
$ cat <<EOF | oc apply -f - apiVersion: helm.openshift.io/v1beta1 kind: HelmChartRepository metadata: name: azure-sample-repo spec: connectionConfig: url:https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs disabled: true EOF
Copy to Clipboard Copied! Pour désactiver un référentiel Helm Chart récemment ajouté à l'aide de la console Web :
-
Allez sur Custom Resource Definitions et recherchez la ressource personnalisée
HelmChartRepository
. - Allez sur Instances, trouvez le référentiel que vous voulez désactiver et cliquez sur son nom.
Allez dans l'onglet YAML, ajoutez le drapeau
disabled: true
dans la sectionspec
et cliquez surSave
.Exemple
spec: connectionConfig: url: <url-of-the-repositoru-to-be-disabled> disabled: true
spec: connectionConfig: url: <url-of-the-repositoru-to-be-disabled> disabled: true
Copy to Clipboard Copied! Le dépôt est maintenant désactivé et n'apparaîtra pas dans le catalogue.
-
Allez sur Custom Resource Definitions et recherchez la ressource personnalisée