Chapitre 6. Connecter les applications aux services
6.1. Notes de mise à jour pour Service Binding Operator
L'opérateur de liaison de services se compose d'un contrôleur et d'une définition de ressource personnalisée (CRD) pour la liaison de services. Il gère le plan de données pour les charges de travail et les services d'appui. Le contrôleur de liaison de services lit les données mises à disposition par le plan de contrôle des services d'appui. Il projette ensuite ces données vers les charges de travail conformément aux règles spécifiées dans la ressource ServiceBinding
.
Avec Service Binding Operator, vous pouvez :
- Liez vos charges de travail grâce à des services de sauvegarde gérés par l'opérateur.
- Automatiser la configuration des données de liaison.
- Fournir aux opérateurs de services une expérience administrative simple pour fournir et gérer l'accès aux services.
- Enrichir le cycle de développement avec une méthode de liaison de service cohérente et déclarative qui élimine les divergences dans les environnements en grappe.
La définition de ressource personnalisée (CRD) de l'opérateur de liaison de services prend en charge les API suivantes :
-
Service Binding avec le groupe API
binding.operators.coreos.com
. -
Service Binding (Spec API) avec le groupe API
servicebinding.io
.
6.1.1. Matrice de soutien
Certaines fonctionnalités du tableau suivant sont en avant-première technologique. Ces fonctionnalités expérimentales ne sont pas destinées à être utilisées en production.
Dans le tableau, les caractéristiques sont marquées par les statuts suivants :
- TP: Technology Preview
- GA: General Availability
Notez l'étendue de l'assistance suivante sur le portail client de Red Hat pour ces fonctionnalités :
Service Binding Operator | API Group and Support Status | OpenShift Versions | |
---|---|---|---|
Version |
|
| |
1.3.3 | GA | GA | 4.9-4.12 |
1.3.1 | GA | GA | 4.9-4.11 |
1.3 | GA | GA | 4.9-4.11 |
1.2 | GA | GA | 4.7-4.11 |
1.1.1 | GA | TP | 4.7-4.10 |
1.1 | GA | TP | 4.7-4.10 |
1.0.1 | GA | TP | 4.7-4.9 |
1.0 | GA | TP | 4.7-4.9 |
6.1.2. Rendre l'open source plus inclusif
Red Hat s'engage à remplacer les termes problématiques dans son code, sa documentation et ses propriétés Web. Nous commençons par ces quatre termes : master, slave, blacklist et whitelist. En raison de l'ampleur de cette entreprise, ces changements seront mis en œuvre progressivement au cours de plusieurs versions à venir. Pour plus de détails, consultez le message de Chris Wright, directeur technique de Red Hat.
6.1.3. Notes de version pour Service Binding Operator 1.3.3
Service Binding Operator 1.3.3 est maintenant disponible sur OpenShift Container Platform 4.9, 4.10, 4.11 et 4.12.
6.1.3.1. Problèmes corrigés
-
Avant cette mise à jour, une vulnérabilité de sécurité
CVE-2022-41717
a été constatée pour Service Binding Operator. Cette mise à jour corrige l'erreurCVE-2022-41717
et met à jour le paquetgolang.org/x/net
de v0.0.0-20220906165146-f3363e06e74c à v0.4.0. APPSVC-1256 - Avant cette mise à jour, les services fournis n'étaient détectés que si la ressource concernée avait l'annotation \N "servicebinding.io/provisioned-service : true" définie, tandis que les autres services fournis n'étaient pas détectés. Avec cette mise à jour, le mécanisme de détection identifie correctement tous les services fournis en se basant sur l'attribut "status.binding.name". APPSVC-1204
6.1.4. Notes de version pour Service Binding Operator 1.3.1
Service Binding Operator 1.3.1 est maintenant disponible sur OpenShift Container Platform 4.9, 4.10, et 4.11.
6.1.4.1. Problèmes corrigés
-
Avant cette mise à jour, une vulnérabilité de sécurité
CVE-2022-32149
a été notée pour Service Binding Operator. Cette mise à jour corrige l'erreurCVE-2022-32149
et met à jour le paquetagegolang.org/x/text
de v0.3.7 à v0.3.8. APPSVC-1220
6.1.5. Notes de version pour Service Binding Operator 1.3
Service Binding Operator 1.3 est maintenant disponible sur OpenShift Container Platform 4.9, 4.10, et 4.11.
6.1.5.1. Fonctionnalité supprimée
- Dans Service Binding Operator 1.3, la fonction de descripteur Operator Lifecycle Manager (OLM) a été supprimée afin d'améliorer l'utilisation des ressources. Au lieu des descripteurs OLM, vous pouvez utiliser les annotations CRD pour déclarer les données de liaison.
6.1.6. Notes de mise à jour pour Service Binding Operator 1.2
Service Binding Operator 1.2 est maintenant disponible sur OpenShift Container Platform 4.7, 4.8, 4.9, 4.10, et 4.11.
6.1.6.1. Nouvelles fonctionnalités
Cette section présente les nouveautés de Service Binding Operator 1.2 :
-
Permettre à l'opérateur de liaison de services de prendre en compte les champs facultatifs dans les annotations en fixant la valeur de l'indicateur
optional
àtrue
. -
Soutien aux ressources
servicebinding.io/v1beta1
. - Amélioration de la découvrabilité des services liables en exposant le secret de liaison pertinent sans exiger la présence d'une charge de travail.
6.1.6.2. Problèmes connus
- Actuellement, lorsque vous installez Service Binding Operator sur OpenShift Container Platform 4.11, l'empreinte mémoire de Service Binding Operator augmente au-delà des limites prévues. Toutefois, en cas d'utilisation réduite, l'empreinte mémoire reste dans les limites prévues pour votre environnement ou vos scénarios. Par rapport à OpenShift Container Platform 4.10, en cas de stress, l'empreinte mémoire moyenne et maximale augmente considérablement. Ce problème est également évident dans les versions précédentes de Service Binding Operator. Il n'y a actuellement aucune solution à ce problème. APPSVC-1200
-
Par défaut, les fichiers projetés ont des permissions de 0644. Service Binding Operator ne peut pas définir de permissions spécifiques en raison d'un bogue dans Kubernetes qui cause des problèmes si le service attend des permissions spécifiques telles que
0600
. Comme solution de contournement, vous pouvez modifier le code du programme ou de l'application qui s'exécute à l'intérieur d'une ressource de charge de travail pour copier le fichier dans le répertoire/tmp
et définir les autorisations appropriées. APPSVC-1127 Il y a actuellement un problème connu avec l'installation de Service Binding Operator dans un mode d'installation à espace de noms unique. L'absence d'une règle de contrôle d'accès basé sur les rôles (RBAC) adaptée à l'espace de noms empêche la liaison d'une application à quelques services connus soutenus par l'opérateur que le Service Binding Operator peut automatiquement détecter et lier. Dans ce cas, un message d'erreur similaire à l'exemple suivant est généré :
Exemple de message d'erreur
`postgresclusters.postgres-operator.crunchydata.com "hippo" is forbidden: User "system:serviceaccount:my-petclinic:service-binding-operator" cannot get resource "postgresclusters" in API group "postgres-operator.crunchydata.com" in the namespace "my-petclinic"`
Solution 1 : Installez le Service Binding Operator dans le mode d'installation
all namespaces
. Par conséquent, la règle RBAC appropriée à l'échelle du cluster existe maintenant et la liaison réussit.Solution 2 : Si vous ne pouvez pas installer le Service Binding Operator dans le mode d'installation
all namespaces
, installez la liaison de rôle suivante dans l'espace de noms où le Service Binding Operator est installé :Exemple : Liaison de rôles pour l'opérateur Crunchy Postgres
kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: service-binding-crunchy-postgres-viewer subjects: - kind: ServiceAccount name: service-binding-operator roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: service-binding-crunchy-postgres-viewer-role
Selon la spécification, lorsque vous modifiez les ressources
ClusterWorkloadResourceMapping
, le Service Binding Operator doit utiliser la version précédente de la ressourceClusterWorkloadResourceMapping
pour supprimer les données de liaison qui ont été projetées jusqu'à présent. Actuellement, lorsque vous modifiez les ressourcesClusterWorkloadResourceMapping
, le Service Binding Operator utilise la dernière version de la ressourceClusterWorkloadResourceMapping
pour supprimer les données de liaison. Par conséquent, {the servicebinding-title} peut supprimer les données de liaison de manière incorrecte. Pour contourner ce problème, procédez comme suit :-
Supprimer toutes les ressources
ServiceBinding
qui utilisent la ressourceClusterWorkloadResourceMapping
correspondante. -
Modifier la ressource
ClusterWorkloadResourceMapping
. -
Appliquez à nouveau les ressources
ServiceBinding
que vous avez retirées à l'étape 1.
-
Supprimer toutes les ressources
6.1.7. Notes de version pour Service Binding Operator 1.1.1
Service Binding Operator 1.1.1 est maintenant disponible sur OpenShift Container Platform 4.7, 4.8, 4.9, et 4.10.
6.1.7.1. Problèmes corrigés
-
Avant cette mise à jour, une vulnérabilité de sécurité
CVE-2021-38561
a été notée pour le diagramme Service Binding Operator Helm. Cette mise à jour corrige l'erreurCVE-2021-38561
et met à jour le paquetagegolang.org/x/text
de v0.3.6 à v0.3.7. APPSVC-1124 -
Avant cette mise à jour, les utilisateurs du Developer Sandbox ne disposaient pas d'autorisations suffisantes pour lire les ressources
ClusterWorkloadResourceMapping
. Par conséquent, l'opérateur de liaison de services empêchait toutes les liaisons de services d'aboutir. Avec cette mise à jour, le Service Binding Operator inclut désormais les règles de contrôle d'accès basées sur les rôles (RBAC) appropriées pour tout sujet authentifié, y compris les utilisateurs de l'Environnement de développement. Ces règles RBAC permettent à l'opérateur de liaison de services deget
,list
etwatch
les ressourcesClusterWorkloadResourceMapping
pour les utilisateurs de l'Environnement de développement et de traiter les liaisons de services avec succès. APPSVC-1135
6.1.7.2. Problèmes connus
Il y a actuellement un problème connu avec l'installation de Service Binding Operator dans un mode d'installation à espace de noms unique. L'absence d'une règle de contrôle d'accès basé sur les rôles (RBAC) adaptée à l'espace de noms empêche la liaison d'une application à quelques services connus soutenus par l'opérateur que le Service Binding Operator peut automatiquement détecter et lier. Dans ce cas, un message d'erreur similaire à l'exemple suivant est généré :
Exemple de message d'erreur
`postgresclusters.postgres-operator.crunchydata.com "hippo" is forbidden: User "system:serviceaccount:my-petclinic:service-binding-operator" cannot get resource "postgresclusters" in API group "postgres-operator.crunchydata.com" in the namespace "my-petclinic"`
Solution 1 : Installez le Service Binding Operator dans le mode d'installation
all namespaces
. Par conséquent, la règle RBAC appropriée à l'échelle du cluster existe maintenant et la liaison réussit.Solution 2 : Si vous ne pouvez pas installer le Service Binding Operator dans le mode d'installation
all namespaces
, installez la liaison de rôle suivante dans l'espace de noms où le Service Binding Operator est installé :Exemple : Liaison de rôles pour l'opérateur Crunchy Postgres
kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: service-binding-crunchy-postgres-viewer subjects: - kind: ServiceAccount name: service-binding-operator roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: service-binding-crunchy-postgres-viewer-role
Actuellement, lorsque vous modifiez les ressources
ClusterWorkloadResourceMapping
, l'opérateur de liaison de service n'applique pas le comportement correct. En guise de solution de contournement, procédez comme suit :-
Supprimer toutes les ressources
ServiceBinding
qui utilisent la ressourceClusterWorkloadResourceMapping
correspondante. -
Modifier la ressource
ClusterWorkloadResourceMapping
. -
Appliquez à nouveau les ressources
ServiceBinding
que vous avez retirées à l'étape 1.
-
Supprimer toutes les ressources
6.1.8. Notes de mise à jour pour Service Binding Operator 1.1
Service Binding Operator est maintenant disponible sur OpenShift Container Platform 4.7, 4.8, 4.9, et 4.10.
6.1.8.1. Nouvelles fonctionnalités
Cette section présente les nouveautés de Service Binding Operator 1.1 :
Options de liaison de service
- Cartographie des ressources de la charge de travail : Définir exactement où les données contraignantes doivent être projetées pour les charges de travail secondaires.
- Lier de nouvelles charges de travail à l'aide d'un sélecteur d'étiquettes.
6.1.8.2. Problèmes corrigés
- Avant cette mise à jour, les liaisons de services qui utilisaient des sélecteurs d'étiquettes pour sélectionner des charges de travail ne projetaient pas les données de liaison de services dans les nouvelles charges de travail qui correspondaient aux sélecteurs d'étiquettes donnés. Par conséquent, l'opérateur de liaison de services ne pouvait pas lier périodiquement ces nouvelles charges de travail. Avec cette mise à jour, les liaisons de service projettent désormais les données de liaison de service dans les nouvelles charges de travail qui correspondent au sélecteur d'étiquette donné. L'opérateur de liaison de services tente désormais périodiquement de trouver et de lier ces nouvelles charges de travail. APPSVC-1083
6.1.8.3. Problèmes connus
Il y a actuellement un problème connu avec l'installation de Service Binding Operator dans un mode d'installation à espace de noms unique. L'absence d'une règle de contrôle d'accès basé sur les rôles (RBAC) adaptée à l'espace de noms empêche la liaison d'une application à quelques services connus soutenus par l'opérateur que le Service Binding Operator peut automatiquement détecter et lier. Dans ce cas, un message d'erreur similaire à l'exemple suivant est généré :
Exemple de message d'erreur
`postgresclusters.postgres-operator.crunchydata.com "hippo" is forbidden: User "system:serviceaccount:my-petclinic:service-binding-operator" cannot get resource "postgresclusters" in API group "postgres-operator.crunchydata.com" in the namespace "my-petclinic"`
Solution 1 : Installez le Service Binding Operator dans le mode d'installation
all namespaces
. Par conséquent, la règle RBAC appropriée à l'échelle du cluster existe maintenant et la liaison réussit.Solution 2 : Si vous ne pouvez pas installer le Service Binding Operator dans le mode d'installation
all namespaces
, installez la liaison de rôle suivante dans l'espace de noms où le Service Binding Operator est installé :Exemple : Liaison de rôles pour l'opérateur Crunchy Postgres
kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: service-binding-crunchy-postgres-viewer subjects: - kind: ServiceAccount name: service-binding-operator roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: service-binding-crunchy-postgres-viewer-role
Actuellement, lorsque vous modifiez les ressources
ClusterWorkloadResourceMapping
, l'opérateur de liaison de service n'applique pas le comportement correct. En guise de solution de contournement, procédez comme suit :-
Supprimer toutes les ressources
ServiceBinding
qui utilisent la ressourceClusterWorkloadResourceMapping
correspondante. -
Modifier la ressource
ClusterWorkloadResourceMapping
. -
Appliquez à nouveau les ressources
ServiceBinding
que vous avez retirées à l'étape 1.
-
Supprimer toutes les ressources
6.1.9. Notes de version pour Service Binding Operator 1.0.1
Service Binding Operator est désormais disponible sur OpenShift Container Platform 4.7, 4.8 et 4.9.
Service Binding Operator 1.0.1 prend en charge OpenShift Container Platform 4.9 et les versions ultérieures :
- IBM Power Systems
- IBM Z et LinuxONE
La définition des ressources personnalisées (CRD) de l'opérateur de liaison de services 1.0.1 prend en charge les API suivantes :
-
Service Binding avec le groupe API
binding.operators.coreos.com
. Service Binding (Spec API Tech Preview) avec le groupe API
servicebinding.io
.ImportantService Binding (Spec API Tech Preview) avec le groupe d'API
servicebinding.io
est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
6.1.9.1. Matrice de soutien
Certaines fonctionnalités de cette version sont actuellement en avant-première technologique. Ces fonctionnalités expérimentales ne sont pas destinées à être utilisées en production.
Aperçu de la technologie Fonctionnalités Support Champ d'application
Dans le tableau ci-dessous, les caractéristiques sont marquées par les statuts suivants :
- TP: Technology Preview
- GA: General Availability
Notez l'étendue de l'assistance suivante sur le portail client de Red Hat pour ces fonctionnalités :
Fonctionnalité | Opérateur de liaison de services 1.0.1 |
---|---|
| GA |
| TP |
6.1.9.2. Problèmes corrigés
-
Avant cette mise à jour, la liaison des valeurs de données à partir d'une ressource personnalisée (CR)
Cluster
de l'APIpostgresql.k8s.enterpriesedb.io/v1
collectait la valeur de liaisonhost
à partir du champ.metadata.name
de la CR. La valeur de liaison collectée est un nom d'hôte incorrect et le nom d'hôte correct est disponible dans le champ.status.writeService
. Avec cette mise à jour, les annotations que l'opérateur de liaison de service utilise pour exposer les valeurs des données de liaison à partir du CR du service d'appui sont maintenant modifiées pour collecter la valeur de liaisonhost
à partir du champ.status.writeService
. L'opérateur de liaison de service utilise ces annotations modifiées pour projeter le nom d'hôte correct dans les liaisonshost
etprovider
. APPSVC-1040 -
Avant cette mise à jour, lorsque vous liez un CR
PostgresCluster
de l'APIpostgres-operator.crunchydata.com/v1beta1
, les valeurs des données de liaison n'incluaient pas les valeurs des certificats de la base de données. Par conséquent, l'application ne parvenait pas à se connecter à la base de données. Avec cette mise à jour, les modifications apportées aux annotations que l'opérateur de liaison de services utilise pour exposer les données de liaison à partir du CR du service de soutien incluent désormais les certificats de la base de données. Le Service Binding Operator utilise ces annotations modifiées pour projeter les fichiers de certificats correctsca.crt
,tls.crt
ettls.key
. APPSVC-1045 -
Avant cette mise à jour, lorsque vous liez une ressource personnalisée (CR)
PerconaXtraDBCluster
de l'APIpxc.percona.com
, les valeurs des données de liaison n'incluaient pas les valeursport
etdatabase
. Ces valeurs de liaison, ainsi que les autres déjà projetées, sont nécessaires pour qu'une application puisse se connecter avec succès au service de base de données. Avec cette mise à jour, les annotations que l'opérateur de liaison de service utilise pour exposer les valeurs de données de liaison du service de soutien CR sont maintenant modifiées pour projeter les valeurs de liaison supplémentairesport
etdatabase
. L'opérateur de liaison de service utilise ces annotations modifiées pour projeter l'ensemble complet des valeurs de liaison que l'application peut utiliser pour se connecter avec succès au service de base de données. APPSVC-1073
6.1.9.3. Problèmes connus
Actuellement, lorsque vous installez l'opérateur de liaison de services dans le mode d'installation à espace de noms unique, l'absence d'une règle de contrôle d'accès basé sur les rôles (RBAC) adaptée à l'espace de noms empêche la liaison réussie d'une application à quelques services connus soutenus par l'opérateur, que l'opérateur de liaison de services peut automatiquement détecter et auxquels il peut se lier. En outre, le message d'erreur suivant est généré :
Exemple de message d'erreur
`postgresclusters.postgres-operator.crunchydata.com "hippo" is forbidden: User "system:serviceaccount:my-petclinic:service-binding-operator" cannot get resource "postgresclusters" in API group "postgres-operator.crunchydata.com" in the namespace "my-petclinic"`
Solution 1 : Installez le Service Binding Operator dans le mode d'installation
all namespaces
. Par conséquent, la règle RBAC appropriée à l'échelle du cluster existe maintenant et la liaison réussit.Solution 2 : Si vous ne pouvez pas installer le Service Binding Operator dans le mode d'installation
all namespaces
, installez la liaison de rôle suivante dans l'espace de noms où le Service Binding Operator est installé :Exemple : Liaison de rôles pour l'opérateur Crunchy Postgres
kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: service-binding-crunchy-postgres-viewer subjects: - kind: ServiceAccount name: service-binding-operator roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: service-binding-crunchy-postgres-viewer-role
6.1.10. Notes de mise à jour pour Service Binding Operator 1.0
Service Binding Operator est désormais disponible sur OpenShift Container Platform 4.7, 4.8 et 4.9.
La définition des ressources personnalisées (CRD) de l'opérateur de liaison de services 1.0 prend en charge les API suivantes :
-
Service Binding avec le groupe API
binding.operators.coreos.com
. Service Binding (Spec API Tech Preview) avec le groupe API
servicebinding.io
.ImportantService Binding (Spec API Tech Preview) avec le groupe d'API
servicebinding.io
est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
6.1.10.1. Matrice de soutien
Certaines fonctionnalités de cette version sont actuellement en avant-première technologique. Ces fonctionnalités expérimentales ne sont pas destinées à être utilisées en production.
Aperçu de la technologie Fonctionnalités Support Champ d'application
Dans le tableau ci-dessous, les caractéristiques sont marquées par les statuts suivants :
- TP: Technology Preview
- GA: General Availability
Notez l'étendue de l'assistance suivante sur le portail client de Red Hat pour ces fonctionnalités :
Fonctionnalité | Opérateur de liaison de services 1.0 |
---|---|
| GA |
| TP |
6.1.10.2. Nouvelles fonctionnalités
Service Binding Operator 1.0 prend en charge OpenShift Container Platform 4.9 et les versions ultérieures :
- IBM Power Systems
- IBM Z et LinuxONE
Cette section présente les nouveautés de Service Binding Operator 1.0 :
Exposition des données contraignantes des services
- Basé sur les annotations présentes dans le CRD, les ressources personnalisées (CR) ou les ressources.
- Basé sur les descripteurs présents dans les descripteurs OLM (Operator Lifecycle Manager).
- Soutien aux services fournis
Projection de la charge de travail
- Projection des données de reliure sous forme de fichiers, avec montage des volumes.
- Projection des données contraignantes sous forme de variables d'environnement.
Options de liaison de service
- Lier les services de soutien dans un espace de noms différent de l'espace de noms de la charge de travail.
- Projeter les données de liaison dans les charges de travail spécifiques des conteneurs.
- Détection automatique des données de liaison à partir des ressources appartenant au service d'appui CR.
- Composer des données de liaison personnalisées à partir des données de liaison exposées.
-
Prise en charge des ressources de charge de travail non conformes à
PodSpec
.
Sécurité
- Prise en charge du contrôle d'accès basé sur les rôles (RBAC).