Installer et gérer Spinnaker sur Google Cloud Platform

Cette solution est-elle pour moi ?

Spinnaker on Google Cloud Platform est un outil permettant d'installer facilement une instance Spinnaker prête pour la production, et de la gérer au fil du temps.

Cette solution s'adresse…

  • à toute personne souhaitant installer facilement la plate-forme Spinnaker Open Source sur Google Cloud Platform, dans une configuration prête pour la production ;

  • à toute personne souhaitant tester Spinnaker, pour déterminer si cette solution de livraison en continu répond à ses besoins ;

  • aux administrateurs qui gèrent une ou plusieurs instances Spinnaker de longue durée, ce qui implique l'ajout d'administrateurs supplémentaires, l'ajout de comptes, les mises à jour, etc.

Cette solution vous offre…

  • les recommandations et les bonnes pratiques de Google pour installer et exécuter Spinnaker sur GCP ;

  • une pré-intégration avec de nombreux autres services avec lesquels Spinnaker est couramment utilisé ;

  • des exemples d'applications et autres assistants pour une expérience utilisateur plus fluide.

En quoi consiste cette solution ?

Spinnaker for Google Cloud Platform est une solution d'installation et de gestion de Spinnaker sur GCP. Elle se compose d'une console d'installation et de gestion, de Spinnaker et de ses microservices, ainsi que d'exemples d'applications.

Qu'est-ce que Spinnaker ?

Spinnaker est une plate-forme multicloud de livraison continue Open Source qui permet de publier des modifications logicielles rapidement et avec une grande fiabilité.

Si vous souhaitez en savoir plus sur Spinnaker, consultez le site Web de Spinnaker.

Qu'est-ce que Deck ?

Deck est l'interface utilisateur de Spinnaker. Vous accédez à Deck de deux manières :

  • Via le transfert de ports

    La console de gestion fournit une commande pour le port de transfert 8080, ainsi qu'un bouton permettant d'accéder à Deck via ce port.

  • Via Internet, sur un domaine accessible au public

    Ce domaine est sécurisé par Identity-Aware Proxy.

Console de gestion

La console de gestion facilite l'exécution des opérations suivantes :

  • Installer Spinnaker

    Spinnaker for Google Cloud Platform simplifie l'utilisation d'une version de Spinnaker Open Source fonctionnant sur Google Kubernetes Engine. Une fois installé, vous pouvez le mettre à la disposition de vos utilisateurs. Le processus d'installation commence dans la console de gestion après que vous avez lancé la solution.

  • Gérer Spinnaker

    Utilisez cette même console de gestion pour gérer votre installation de Spinnaker, y compris l'ajout d'administrateurs et la création de comptes pour le déploiement sur des clusters GKE supplémentaires ou d'autres fournisseurs.

    Le processus de gestion commence une fois l'installation de Spinnaker terminée. Vous pouvez également l'ouvrir directement via un lien depuis la page "Applications GKE" dans Google Cloud Console.

La console de gestion utilise Cloud Shell, et affiche des instructions dans un guide situé à droite de la fenêtre. Le guide affiche les commandes qui seront exécutées. Vous pouvez cliquer dessus pour les copier et les exécuter dans Cloud Shell.

Qu'est-ce que Cloud Shell ?

Cloud Shell est un outil de Google Cloud Platform qui fournit un accès en ligne de commande à GCP.

Comment rechercher et restaurer les instructions ?

  • Si les instructions affichées dans le volet de droite disparaissent, saisissez simplement la commande suivante dans Cloud Shell :

    cloudshell launch-tutorial ~/spinnaker-for-gcp/scripts/install/provision-spinnaker.md
    
  • Si vous devez revenir à la console de gestion, suivez les instructions de la section Installer Spinnaker sur Google Cloud Platform pour la relancer.

  • Si vous êtes perdu, reportez-vous à ce document.

Ce service est-il facturé ?

Les ressources Google Cloud Platform installées dans le cadre de Spinnaker for Google Cloud Platform vous sont facturées :

ainsi que d'autres ressources le cas échéant, en fonction des options que vous sélectionnez lors de l'installation et de la configuration de Spinnaker. Utilisez le simulateur de coût GCP pour estimer les coûts de cette solution.

Consultez les tarifs de Google Cloud et bénéficiez d'un essai gratuit.

Installer et utiliser Spinnaker for Google Cloud Platform

Pour accéder à cette solution, cliquez sur le bouton Accéder à Spinnaker for Google Cloud Platform sur la page Spinnaker for GCP de Marketplace.

Après avoir installé Spinnaker for Google Cloud Platform, vous pouvez accéder à Spinnaker et à la console de gestion à partir de Google Cloud Console.

Installer Spinnaker sur Google Cloud Platform

  1. Lancez la solution à partir de la page Spinnaker for GCP de Marketplace en cliquant sur le bouton Accéder à Spinnaker for Google Cloud Platform.

  2. À l'invite "Ouvrir dans Cloud Shell", cliquez sur Continuer.

    Cloud Shell s'ouvre, ainsi qu'une arborescence affichant les fichiers du dépôt Spinnaker et des instructions.

    Console de gestion

    Le dépôt "spinnaker-for-gcp" est cloné dans votre environnement Cloud Shell.

  3. Suivez les instructions affichées à l'écran.

Le flux de la console de gestion vous guide tout au long du processus d'installation en présentant des commandes que vous pouvez copier dans l'invite Cloud Shell et exécuter en appuyant sur Entrée. Les commandes exécutent des scripts qui automatisent le processus d'installation de Spinnaker sur GKE.

Si le volet d'instructions disparaît, vous pouvez le restaurer à tout moment à l'aide de la commande ci-dessous, à partir de Cloud Shell :

cloudshell launch-tutorial ~/spinnaker-for-gcp/scripts/install/provision-spinnaker.md

Accéder à Spinnaker

Après avoir installé Spinnaker, vous pouvez exécuter une commande de transfert de ports, qui vous permet d'accéder à l'interface utilisateur Deck et de commencer à utiliser Spinnaker. Il est possible de partager la commande de transfert de ports avec vos utilisateurs. S'ils ont accès au cluster GKE, ils peuvent accéder à Deck (l'interface utilisateur de Spinnaker) sur le port 8080.

Vous pouvez également exposer Spinnaker sur l'internet public, après l'avoir sécurisé à l'aide d'Identity-Aware Proxy.

Les deux alternatives sont décrites ci-dessous.

Accéder à Spinnaker à l'aide du transfert de ports

Dans la console de gestion, une commande Cloud Shell vous permet de transférer des ports afin d'accéder à Spinnaker à partir du port localhost:8080.

  1. Cliquez pour copier la commande connect_unsecured.sh dans la console de gestion et appuyez sur Entrée.

    Le port local 8080 est transféré vers le port 9000 (celui utilisé par Deck) sur le pod exécutant Deck.

  2. Cliquez sur le lien "Connect to Spinnaker" (Se connecter à Spinnaker). Le bouton "Aperçu" s'affiche.

  3. Cliquez sur le bouton d'aperçu en surbrillance, puis sélectionnez Preview on port 8080 (Prévisualiser sur le port 8080).

    Cliquez pour afficher l'aperçu sur le port 8080

Deck, l'interface utilisateur de Spinnaker, s'ouvre dans votre navigateur. Le site de documentation de Spinnaker contient des instructions sur son utilisation.

De retour dans la console de gestion, vous pouvez effectuer les opérations suivantes :

  • Mettre Spinnaker à la disposition de vos équipes en toute sécurité, sans avoir à transférer les ports
  • Afficher le journal d'audit de Spinnaker
  • Afficher les journaux des microservices Spinnaker
  • Cliquer sur Suivant pour passer à la partie gestion de Spinnaker dans la solution.
  • Partager la commande de transfert de ports avec vos utilisateurs. S'ils ont accès au cluster GKE, ils peuvent accéder à Deck (l'interface utilisateur de Spinnaker) sur le port 8080.

Permettre à vos utilisateurs d'accéder à Spinnaker via Internet

La console inclut une commande permettant de créer un point de terminaison sécurisé à partir duquel vous pouvez exposer Spinnaker sur Internet à vos utilisateurs, en toute sécurité.

  1. Accédez à l'étape 2 du flux d'installation dans la console de gestion ("Se connecter à Spinnaker").

  2. Sous "Exposer Spinnaker en mode public", cliquez sur le bouton pour copier la commande dans la ligne de commande, puis appuyez sur Entrée.

    Le script crée un point de terminaison à partir duquel diffuser votre instance Spinnaker. Une fois le script terminé, les consignes de la console changent pour afficher des instructions permettant de configurer OAuth pour l'accès de vos utilisateurs.

  3. Suivez ces instructions à l'écran.

    Lors de la création de vos identifiants OAuth, assurez-vous de copier l'ID client et le secret générés. Vous devrez les fournir lorsque vous y serez invité par le script.

Vous disposez désormais d'un point de terminaison Spinnaker que vous pouvez partager avec vos utilisateurs, qui s'authentifient via OAuth2. Un lien vers Spinnaker s'affiche dans la console de gestion. Il existe également un lien sur la page Applications GKE pour cette instance Spinnaker.

Gérer Spinnaker

Utilisez la console de gestion pour gérer votre instance Spinnaker, y compris :

  • Ajouter des administrateurs
  • Ajouter des comptes de fournisseurs cloud

    Un fournisseur est l'environnement cloud (par exemple, Google Compute Engine) dans lequel vous déployez vos applications.

  • Mettre à jour Spinnaker

  • Appeler des commandes Halyard pour configurer Spinnaker

  • Appeler des commandes spin pour gérer les ressources Spinnaker, telles que les applications et les pipelines

  1. Accédez à la partie gestion de cette console.

    Utilisez l'une des options suivantes :

    Si la console est déjà ouverte :

    1. À la fin du processus d'installation, cliquez sur Suivant.

    2. Copiez la commande sur la page Étapes suivantes, puis appuyez sur Entrée.

      Le panneau d'instructions change pour lancer le processus de gestion.

      Commencer à gérer Spinnaker depuis la console

    Si la console n'est pas encore ouverte :

    1. Accédez à la page des applications Google Kubernetes Engine.

    2. Ouvrez l'application Spinnaker.

      La description de l'application inclut un lien : "Open Management Environment in Cloud Shell" (Ouvrir l'environnement de gestion dans Cloud Shell).

    3. Cliquez sur ce lien pour ouvrir la console de gestion, qui commence par la fonctionnalité de gestion/administration.

      Commencer à gérer Spinnaker à partir de la page

    4. Sélectionnez votre projet GCP, puis cliquez sur Démarrer.

Ajouter des administrateurs à votre instance Spinnaker

Vous pouvez accorder l'accès à d'autres opérateurs, qui peuvent ensuite utiliser la console de gestion.

  1. Sur la page autorisations IAM, accordez à la personne le rôle Owner dans le projet GCP sur lequel vous avez installé Spinnaker.

  2. Si vous diffusez Spinnaker sur un point de terminaison sécurisé IAP et que la personne à laquelle vous accordez des droits d'opérateur n'a pas encore d'accès utilisateur, exécutez la commande suivante (disponible également dans l'étape 5 de la console) :

    ~/spinnaker-for-gcp/scripts/manage/grant_iap_access.sh
    

    et suivez les instructions de la ligne de commande Cloud Shell.

Ajouter des comptes de fournisseurs cloud

Vous pouvez utiliser la console de gestion pour ajouter des comptes pour autant de fournisseurs cloud que Spinnaker le permet. Vous aurez besoin d'un compte pour chaque cloud sur lequel vos utilisateurs ont l'intention de déployer des applications. Par exemple, s'ils déploient des applications sur Google Compute Engine et AWS, vous devez ajouter un compte de fournisseur pour chacun d'entre eux.

La console de gestion inclut la commande suivante, laquelle permet d'ajouter un compte GKE :

~/spinnaker-for-gcp/scripts/manage/add_gke_account.sh

et celle-ci pour Google Compute Engine :

~/spinnaker-for-gcp/scripts/manage/add_gce_account.sh

enfin celle-là pour Google App Engine :

~/spinnaker-for-gcp/scripts/manage/add_gae_account.sh

Vous pouvez exécuter ces commandes à partir de la console de gestion ou les saisir dans Cloud Shell pour une instance Spinnaker existante.

Exécuter des commandes Halyard

Vous pouvez appeler n'importe quelle commande hal pour configurer et administrer votre installation Spinnaker.

Pour ce faire, il vous suffit d'appeler la commande depuis Cloud Shell dans la console de gestion, après avoir installé Spinnaker.

Mettre à jour Spinnaker

  1. Recherchez la version vers laquelle vous souhaitez effectuer la mise à jour.

    Sur Spinnaker.io, la page Versions répertorie les versions stables disponibles.

  2. Dans la console, accédez au flux de gestion :

    ~/spinnaker-for-gcp/scripts/manage/update_console.sh

  3. Cliquez plusieurs fois sur Suivant jusqu'à ce que l'écran intitulé "Scripts for Common Commands" (Scripts pour les commandes courantes) s'affiche.

  4. Sous "Mettre à jour Spinnaker", copiez la première commande dans l'interface système, puis appuyez sur Entrée.

    Cette commande est la suivante :

    cloudshell edit \
     ~/spinnaker-for-gcp/scripts/install/properties
    
  5. Modifiez la version de Spinnaker dans le fichier properties qui s'affiche.

    export SPINNAKER_VERSION=1.19.3
    

    La page des versions de Spinnaker indique les dernières versions disponibles.

  6. Utilisez la commande ci-dessous pour appeler Halyard afin d'appliquer les modifications :

    ~/spinnaker-for-gcp/scripts/manage/update_spinnaker_version.sh
    

Redémarrer la console de gestion

Si vous devez redémarrer la console pour une raison ou une autre (si vous avez fermé l'onglet ou la fenêtre, par exemple), vous pouvez la redémarrer de la même manière que vous l'avez lancée. Si vous avez déjà installé Spinnaker for Google Cloud Platform, vous pouvez également la lancer depuis la page Applications GKE dans la console Google Cloud.

Lorsque vous redémarrez la console, vous êtes invité à reprendre là où vous en étiez, si vous le souhaitez.

Mettre à jour la console de gestion

  1. Dans la console de gestion, accédez à l'étape 3, "Scripts for Common Commands", puis faites défiler jusqu'au bas de l'écran.

  2. Exécutez la commande affichée sous "Upgrade Management Environment" (Mettre à jour l'environnement de gestion).

La console de gestion est mise à jour pour inclure les dernières modifications.

Supprimer Spinnaker for Google Cloud Platform

Si vous souhaitez supprimer Spinnaker pour une raison ou une autre, procédez comme suit :

  1. Ouvrez la console de gestion, puis cliquez sur Suivant jusqu'à atteindre la page "Supprimer Spinnaker".

  2. Copiez la commande dans le terminal Cloud Shell, puis appuyez sur Entrée.

Toutes les ressources qui ont été créées pour cette instance Spinnaker sont supprimées, tout comme les ressources existantes éventuellement déployées.

Exemples d'application

La solution Spinnaker for Google Cloud Platform est fournie avec des exemples d'applications pour vous aider à démarrer avec Spinnaker.

Pour les installer, procédez comme suit :

  1. Dans la console de gestion, cliquez sur Suivant jusqu'à l'étape intitulée "Utiliser Spinnaker".

  2. Sous Installer des exemples d'applications et de pipelines, cliquez sur le bouton pour coller la commande, puis appuyez sur Entrée.

    Cloud Shell renvoie une liste d'exemples d'applications disponibles, numérotés.

  3. Appuyez sur le numéro correspondant à l'application de votre choix, ou sur le numéro correspondant à "Quitter" pour quitter sans installer.

  4. Appuyez sur Entrée.

    Le panneau du tutoriel affiche maintenant des conseils portant sur l'exemple d'application.

  5. Pour quitter l'exemple d'application et revenir à la console de gestion, cliquez sur Démarrer, puis sur Suivant. Faites défiler jusqu'au bas de l'écran "Démarrer un nouveau build", puis exécutez la commande sous "Revenir à la console Spinnaker".

Autres points à noter

Spinnaker pour l'architecture GCP

Spinnaker et ses microservices sont installés sur GKE selon l'architecture suivante :

Architecture de Spinnaker sur GCP

Installer Spinnaker sur un cluster existant

Vous pouvez installer votre ou vos instances Spinnaker sur une infrastructure préexistante, plutôt que de laisser cette solution la créer.

Le cluster doit comporter les éléments suivants :

  • Adresses IP d'alias activées, car une instance Redis hébergée est utilisée

  • Champ d'application complet pour les nœuds sur Cloud Platform si vous utilisez le compte de service par défaut du projet

Avant d'exécuter le script d'installation, procédez comme suit :

  1. Copiez et exécutez la commande suivante, également disponible à l'étape 1 du processus d'installation :

    cloudshell edit \
        ~/spinnaker-for-gcp/scripts/install/properties
    

    Le fichier properties est ouvert dans l'éditeur de fichiers.

  2. Modifiez cette section du fichier properties pour identifier le cluster Kubernetes sur lequel vous souhaitez installer Spinnaker :

    # If cluster does not exist, it will be created.
    export GKE_CLUSTER=$DEPLOYMENT_NAME
    export ZONE=us-west1-b
    export REGION=us-west1
    
  3. De même, modifiez d'autres propriétés pour identifier les autres comptes et infrastructures existants que vous souhaitez utiliser, le cas échéant.

    Par exemple, une instance Cloud Memorystore Redis existante, un bucket ou un compte de service. Dans chaque cas, le script d'installation crée l'infrastructure si celle-ci n'existe pas.

Gérer plusieurs installations Spinnaker

Si vous exécutez plusieurs instances Spinnaker, elles doivent se trouver sur des clusters distincts, donc dans des contextes Kubernetes différents.

Pour gérer l'une de ces installations, procédez comme suit :

  1. Obtenez vos identifiants.

    gcloud container get-credentials
    
  2. Passez au contexte Kubernetes approprié.

    kubectl config use-context <CONTEXT_NAME>
    
  3. Transférez la configuration stockée sur ce cluster.

    ~/spinnaker-for-gcp/scripts/manage/pull_config.sh.
    

La configuration dans ~/spinnaker-for-gcp/scripts/install/properties est maintenant celle de l'instance Spinnaker. Effectuez les tâches de gestion habituelles, y compris l'exécution des commandes hal. Spinnaker applique ces commandes à l'instance Spinnaker dans le contexte choisi.