6.9. Connecter une application à un service en utilisant la perspective du développeur

Outre le regroupement de plusieurs composants au sein d'une application, vous pouvez également utiliser la vue Topology pour relier les composants entre eux. Vous pouvez utiliser un connecteur contraignant ou visuel pour relier les composants.

Une connexion contraignante entre les composants ne peut être établie que si le nœud cible est un service soutenu par l'opérateur. Ceci est indiqué par l'info-bulle Create a binding connector qui apparaît lorsque vous faites glisser une flèche vers un tel nœud cible. Lorsqu'une application est connectée à un service à l'aide d'un connecteur de liaison, une ressource ServiceBinding est créée. Ensuite, le contrôleur Service Binding Operator projette les données de liaison nécessaires dans le déploiement de l'application. Une fois que la demande a abouti, l'application est redéployée en établissant une interaction entre les composants connectés.

Un connecteur visuel établit uniquement une connexion visuelle entre les composants, décrivant une intention de connexion. Aucune interaction n'est établie entre les composants. Si le nœud cible n'est pas un service soutenu par un opérateur, l'info-bulle Create a visual connector s'affiche lorsque vous faites glisser une flèche vers un nœud cible.

6.9.1. Découverte et identification des services liables soutenus par l'opérateur

En tant qu'utilisateur, si vous souhaitez créer un service liant, vous devez savoir quels sont les services liants. Les services liables sont des services que les applications peuvent consommer facilement parce qu'ils exposent leurs données de liaison telles que les informations d'identification, les détails de connexion, les montages de volume, les secrets et d'autres données de liaison de manière standard. La perspective Developer vous aide à découvrir et à identifier ces services liables.

Procédure

  • Pour découvrir et identifier les services liables soutenus par l'opérateur, il convient d'envisager les approches alternatives suivantes :

    • Cliquez sur AddDeveloper CatalogOperator Backed pour voir les tuiles soutenues par l'opérateur. Les services soutenus par l'opérateur qui prennent en charge les fonctions de liaison de service ont un badge Bindable sur les tuiles.
    • Dans le volet gauche de la page Operator Backed, cochez la case Bindable.

      Astuce

      Cliquez sur l'icône d'aide à côté de Service binding pour obtenir plus d'informations sur les services de reliure.

    • Cliquez sur AddAdd et recherchez les services soutenus par l'opérateur. Lorsque vous cliquez sur le service liant, vous pouvez voir le badge Bindable dans le panneau latéral à droite.

6.9.2. Créer une connexion visuelle entre les composants

Vous pouvez représenter une intention de connecter des composants d'application en utilisant le connecteur visuel.

Cette procédure vous présente un exemple de création d'une connexion visuelle entre un service de base de données PostgreSQL et un exemple d'application Spring PetClinic.

Conditions préalables

  • Vous avez créé et déployé un exemple d'application Spring PetClinic en utilisant la perspective Developer.
  • Vous avez créé et déployé une instance de base de données Crunchy PostgreSQL en utilisant la perspective Developer. Cette instance possède les composants suivants : hippo-backup, hippo-instance, hippo-repo-host, et hippo-pgbouncer.

Procédure

  1. Survolez l'exemple d'application Spring PetClinic pour voir une flèche pendante sur le nœud.

    Figure 6.2. Connecteur visuel

    odc connector
  2. Cliquez et faites glisser la flèche vers le déploiement hippo-pgbouncer pour y connecter l'exemple d'application Spring PetClinic.
  3. Cliquez sur le déploiement spring-petclinic pour afficher le panneau Overview. Sous l'onglet Details, cliquez sur l'icône d'édition dans la section Annotations pour voir les onglets Key = app.openshift.io/connects-to et Value = [{"apiVersion":"apps/v1","kind":"Deployment","name":"hippo-pgbouncer"}] ajoutée au déploiement.
  4. Facultatif : vous pouvez répéter ces étapes pour établir des connexions visuelles entre d'autres applications et composants que vous créez.

    Figure 6.3. Connecter plusieurs applications

    odc connecting multiple applications

6.9.3. Création d'une liaison entre les composants

Vous pouvez créer une connexion de liaison avec des composants soutenus par l'opérateur, comme le montre l'exemple suivant, qui utilise un service de base de données PostgreSQL et un exemple d'application Spring PetClinic. Pour créer une connexion de liaison avec un service soutenu par l'Opérateur de base de données PostgreSQL, vous devez d'abord ajouter l'Opérateur de base de données PostgreSQL fourni par Red Hat à OperatorHub, puis installer l'Opérateur. L'Opérateur de base de données PostgreSQL crée et gère ensuite la ressource Base de données, qui expose les données de liaison dans les secrets, les cartes de configuration, l'état et les attributs de spécification.

Conditions préalables

  • Vous avez créé et déployé un exemple d'application Spring PetClinic dans la perspective Developer.
  • Vous avez installé Service Binding Operator sur le site OperatorHub.
  • Vous avez installé l'Opérateur Crunchy Postgres for Kubernetes à partir du OperatorHub dans le canal v5 Update .
  • Vous avez créé une ressource PostgresCluster dans la perspective Developer, ce qui a donné lieu à une instance de base de données Crunchy PostgreSQL avec les composants suivants : hippo-backup, hippo-instance, hippo-repo-host, et hippo-pgbouncer.

Procédure

  1. Dans la perspective Developer, passez au projet concerné, par exemple my-petclinic.
  2. Dans la vue Topology, survolez l'exemple d'application Spring PetClinic pour voir une flèche pendante sur le nœud.
  3. Faites glisser la flèche sur l'icône de la base de données hippo dans le cluster Postgres pour établir une connexion contraignante avec l'exemple d'application Spring PetClinic.
  4. Dans la boîte de dialogue Create Service Binding, conservez le nom par défaut ou ajoutez un nom différent pour la liaison de service, puis cliquez sur Create.

    Figure 6.4. Boîte de dialogue Service Binding

    odc sbc modal
  5. Facultatif : si vous avez des difficultés à établir une connexion de liaison à l'aide de la vue Topologie, allez à AddYAMLImport YAML.
  6. Facultatif : dans l'éditeur YAML, ajoutez la ressource ServiceBinding:

    apiVersion: binding.operators.coreos.com/v1alpha1
    kind: ServiceBinding
    metadata:
        name: spring-petclinic-pgcluster
        namespace: my-petclinic
    spec:
        services:
        - group: postgres-operator.crunchydata.com
          version: v1beta1
          kind: PostgresCluster
          name: hippo
        application:
          name: spring-petclinic
          group: apps
          version: v1
          resource: deployments

    Une demande de liaison de service est créée et une connexion de liaison est créée par l'intermédiaire d'une ressource ServiceBinding. Lorsque la demande de connexion au service de base de données aboutit, l'application est redéployée et la connexion est établie.

    Figure 6.5. Connecteur de liaison

    odc binding connector
    Astuce

    Vous pouvez également utiliser le menu contextuel en faisant glisser la flèche pendante pour ajouter et créer une connexion contraignante à un service soutenu par l'opérateur.

    Figure 6.6. Menu contextuel pour créer une connexion contraignante

    odc context operator
  7. Dans le menu de navigation, cliquez sur Topology. Le déploiement spring-petclinic dans la vue Topologie comprend un lien Open URL pour afficher sa page web.
  8. Cliquez sur le lien Open URL.

Vous pouvez maintenant visualiser à distance l'exemple d'application Spring PetClinic pour confirmer que l'application est maintenant connectée au service de base de données et que les données ont été projetées avec succès vers l'application à partir du service de base de données Crunchy PostgreSQL.

L'opérateur de liaison de service a réussi à créer une connexion fonctionnelle entre l'application et le service de base de données.

6.9.4. Vérification de l'état de votre liaison de service à partir de la vue Topologie

La perspective Developer vous aide à vérifier l'état de votre liaison de service par le biais de la vue Topology.

Procédure

  1. Si la liaison de service a réussi, cliquez sur le connecteur de liaison. Un panneau latéral apparaît et affiche l'état de Connected sous l'onglet Details.

    En option, vous pouvez consulter l'état de Connected dans les pages suivantes, du point de vue de Developer:

    • La page ServiceBindings.
    • La page ServiceBinding details. En outre, le titre de la page affiche un badge Connected.
  2. Si la liaison de service n'a pas abouti, le connecteur de liaison affiche une pointe de flèche rouge et une croix rouge au milieu de la connexion. Cliquez sur ce connecteur pour afficher l'état de Error dans le panneau latéral sous l'onglet Details. Si vous le souhaitez, cliquez sur l'état Error pour obtenir des informations spécifiques sur le problème sous-jacent.

    Vous pouvez également consulter l'état de Error et une infobulle sur les pages suivantes à partir de la perspective Developer:

    • La page ServiceBindings.
    • La page ServiceBinding details. En outre, le titre de la page affiche un badge Error.
Astuce

Dans la page ServiceBindings, utilisez le menu déroulant Filter pour dresser la liste des liaisons de service en fonction de leur statut.

6.9.5. Ressources complémentaires