Exécuter et développer une application dans Cloud Code for IntelliJ

Maintenant que vous êtes prêt, vous pouvez opter pour une exécution régulière de votre application ou lancer un cycle d'itération de développement sur votre IDE pour propager à votre application active toute modification apportée à votre source et à vos dépendances. Cette page utilise l'exemple d'application Guestbook pour illustrer l'exécution et le développement sur Kubernetes.

Choisir une action d'exécution

Avant l'exécution

Avant d'exécuter votre application, assurez-vous que vous êtes prêt à la déployer dans le contexte Kubernetes de votre choix. Vous pouvez le spécifier dans votre configuration, dans l'onglet "Exécuter" et dans la section "Préférences de déploiement".

Si vous souhaitez changer de contexte, vous pouvez le faire à l'aide de l'explorateur Kubernetes, accessible depuis son panneau sur la droite, ou en utilisant Outils > Cloud Code > Kubernetes > Afficher l'explorateur de cluster.

Pour optimiser votre boucle de développement en récupérant rapidement les modifications d'un certain type sans avoir à recréer d'image, vous pouvez activer la synchronisation des fichiers et le rechargement à chaud.

Développement continu sur Kubernetes

La cible d'exécution "Développement sur Kubernetes" démarre le cycle de développement de votre cluster Kubernetes. Une fois le cycle de développement lancé, Cloud Code, à l'aide de Skaffold, crée une image pour le projet, lui ajoute un tag, la transmet au dépôt configuré et utilise kubectl pour déployer les manifestes Kubernetes du projet.

  1. Cliquez sur icône d'action d'exécutionDevelop on Kubernetes (Développer sur Kubernetes), puis sur Edit Configurations (Modifier les configurations) pour ouvrir la boîte de dialogue Run/Debug Configurations (Exécuter les versions de débogage et de débogage).
  2. Personnalisez votre déploiement à l'aide des options de configuration disponibles.
  3. Si vous souhaitez que Cloud Code redéploie automatiquement votre application après l'enregistrement de vos modifications, sous Mode de surveillance - recompilation et redéploiement, sélectionnez Lors de l'enregistrement du fichier. L'option À la demande est sélectionnée par défaut pour les nouvelles applications Kubernetes. Pour en savoir plus sur les modes de surveillqnce, consultez la section Modes de surveillance.
  4. Si votre application est configurée pour utiliser des modules Skaffold, vous pouvez choisir de ne créer ou déployer que certains modules.
  5. Une fois que vous êtes satisfait de votre configuration, cliquez sur OK, puis sur icône d'action d'exécution Run.

Démarrer le cycle de développement du cluster Kubernetes

Sélectionner des modules Skaffold

Cette section explique comment diviser votre projet Skaffold en modules afin de pouvoir développer et déboguer indépendamment différentes parties de votre application.

Pour sélectionner des modules Skaffold dans IntelliJ, procédez comme suit :

  1. Installez les derniers builds Insiders.
  2. Accédez à la page Exécuter > Modifier les configurations et ouvrez l'onglet Compilation/Déploiement.
  3. Sélectionnez skaffold.yaml.
  4. Choisissez l'une des options suivantes :
    • Créer et déployer avec toutes les dépendances, ou
    • Compiler et déployer avec et sélectionnez les modules (si des modules sont disponibles).
Onglet "Compilation/Déploiement".

Votre sélection est conservée pour les déploiements ultérieurs. Si vous sélectionnez un sous-ensemble de modules, Cloud Code affiche un avertissement sur le déploiement d'un sous-ensemble de modules plutôt que l'ensemble du système.

Prévisualiser votre application déployée

  1. Cliquez sur le bouton "Exécuter" de l'action d'exécution souhaitée. Vous pouvez ensuite afficher les journaux d'application entrants dans la fenêtre de sortie sous l'onglet Journaux.

    Une fois le déploiement démarré, la liste des ports transférés pour votre application déployée s'affiche.

  2. Une fois le déploiement effectué, vous êtes informé que de nouvelles URL de service sont disponibles. Cliquez sur l'onglet URL des services pour afficher les URL, puis cliquez sur le lien URL pour ouvrir votre navigateur avec votre application en cours d'exécution.

    Afficher les services transférés sur le port dans l'onglet "URL des services"

    Vous pouvez également ouvrir le journal des événements, puis cliquer sur le lien pour ouvrir votre navigateur avec l'application en cours d'exécution.

Afficher les journaux

En plus d'afficher les journaux des pods en cours d'exécution en tant que flux en direct dans la sortie du terminal à mesure que vous développez et exécutez votre application, vous pouvez consulter les journaux d'un pod spécifique en accédant à l'explorateur Kubernetes.

Pour afficher les journaux d'un pod spécifique, procédez comme suit :

  1. Accédez à l'explorateur Kubernetes. Vous pouvez y accéder depuis le panneau latéral de droite ou en suivant le menu Tools > Cloud Code > Kubernetes > View Cluster Explorer (Outils > Cloud Code > Kubernetes > Afficher l'explorateur de cluster).

    Le panneau de l'explorateur Kubernetes s'ouvre à l'aide de l'onglet de la barre des tâches de droite.

  2. Sélectionnez le pod pour lequel vous souhaitez consulter les journaux.

  3. Effectuez un clic droit sur le pod, puis sélectionnez Stream Logs (Diffuser des journaux). Vous pouvez également diffuser les journaux de conteneurs individuels s'exécutant dans des pods.

    La console de l'explorateur Kubernetes affiche les journaux.

    Diffusion des journaux d'un pod à l'aide du menu contextuel pour les afficher dans la console de l'explorateur Kubernetes

Ajouter des fonctionnalités lors du développement sur Kubernetes

Si vous avez démarré un cycle d'itération de développement avec Develop sur Kubernetes et ajouté des fonctionnalités à votre projet, vous verrez comment ces modifications sont déployées sur votre cluster Kubernetes sans arrêter ni supprimer le déploiement, créer manuellement un tag et ajouter des tags à l'image, ou mettre à jour le cluster.

Si vous suivez l'application Guestbook, procédez comme suit :

  1. Ouvrez le fichier "FrontendController.java" à partir de src/main/java/cloudcode/guestbook/frontend et ajoutez ce nouveau point de terminaison à la classe FrontendController :

     @RequestMapping("/greeting")
     @ResponseBody
     public String greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return String.format("Hello from Kubernetes with IntelliJ, %s!", name);
     }
     ```
    
  2. Ajoutez les importations nécessaires pour les nouvelles annotations, RequestMapping et ResponseBody.

  3. Enregistrez les modifications (Ctrl/Cmd+S) ou compilez le projet : utilisez le menu Build (Compiler) > Build Project (Compiler le projet).

    Vous pouvez suivre les journaux de progression et de déploiement dans la fenêtre de la console. Une fois les modifications propagées, confirmez les mises à jour en accédant à la nouvelle URL du point de terminaison : localhost:8080/greeting.

    Afficher le point de terminaison créé dans un navigateur

  4. Pour mettre fin à la session de développement continu, cliquez sur le bouton Arrêter.

    Le plug-in supprime toutes les ressources Kubernetes utilisées pour la session de développement.

Stocker des secrets

Si votre code inclut des données potentiellement sensibles telles que des clés API, des mots de passe et des certificats, nous vous recommandons de les stocker en tant que secrets. Avec Cloud Code, vous pouvez stocker ces secrets en toute sécurité dans Secret Manager et les récupérer de manière automatisée lorsque vous en avez besoin. Pour plus d'informations sur la création et la gestion des secrets avec Cloud Code, consultez le guide de Secret Manager.

Afficher les détails de la ressource

Pour suivre l'état de vos ressources Kubernetes, vous pouvez utiliser l'explorateur Kubernetes, accessible depuis le panneau latéral de droite. Vous pouvez également accéder à l'explorateur Kubernetes via Outils > Cloud Code > Kubernetes > Afficher l'explorateur de cluster.

Panneau de l'explorateur Kubernetes ouvert à l'aide de l'onglet de la barre des tâches de droite

L'explorateur Kubernetes vous permet d'accéder aux informations sur les clusters, les nœuds, les charges de travail, etc. Il permet également de définir un contexte actif, de diffuser et d'afficher les journaux, et de rechercher des descriptions des ressources.

Vous pouvez afficher les détails de vos ressources déployées en effectuant un clic droit sur un libellé de ressource dans l'explorateur Kubernetes, puis en cliquant sur Décrire.

Pour accéder à la description d'une ressource, effectuez un clic droit sur son nom dans le panneau de l'explorateur Kubernetes, puis choisissez "Describe" (Décrire).

Configuration

Lorsque vous utilisez la configuration d'exécution Develop on Kubernetes, vous pouvez personnaliser votre déploiement en configurant les paramètres disponibles. Accédez aux options de configuration en sélectionnant la configuration d'exécution dans le menu déroulant, puis en sélectionnant Modifier les configurations.

Options Skaffold

  • Skaffold configuration (Configuration Skaffold) : sélectionne un fichier de configuration "skaffold.yaml". Détectée automatiquement si votre projet contient un fichier "skaffold.yaml".
  • Deployment profile (Profil de déploiement) : permet de sélectionner un profil parmi les options disponibles configurées dans votre fichier "skaffold.yaml".
  • Environment variables (Variables d'environnement) : vous permettent de configurer des variables d'environnement supplémentaires à transmettre au processus de déploiement de Skaffold. Les options Skaffold peuvent également être configurées en tant que variables d'environnement à utiliser dans ce champ. Reportez-vous à la documentation de référence de la CLI Skaffold pour obtenir la liste complète des variables d'environnement Skaffold disponibles.
  • Verbosité : permet de définir le niveau de verbosité de la sortie sur trace, debug, info, warn, error ou fatal. Le niveau de verbosité par défaut est warn.

Options Kubernetes

  • Le contexte de déploiement représente le contexte Kubernetes dans lequel votre application est déployée. Si le contexte de déploiement n'est pas spécifié, le comportement par défaut est de déployer dans le contexte de votre système actuel, le cas échéant.

    Si vous préférez ne pas effectuer de déploiement dans le contexte actuel, dans la section "Déploiement" des paramètres d'exécution/de débogage, vous pouvez choisir l'une des options suivantes :

    • Déployer localement sur un cluster Minikube : démarre un cluster Minikube géré par Cloud Code pour exécuter votre application et l'arrêter une fois le déploiement terminé. Si un cluster Minikube est déjà en cours d'exécution, Cloud Code utilise le cluster Minikube existant pour le déploiement.
    • Changer de contexte et déployer : modifie le contexte actuel de votre système en fonction du contexte spécifié lors du déploiement.

      Sélectionner le contexte de déploiement Kubernetes dans une configuration d'exécution Cloud Code

  • Delete deployments when finished (Supprimer les déploiements lorsque vous avez terminé) : supprime les déploiements Kubernetes lorsque le processus est terminé. Il s'agit du comportement par défaut. Vous pouvez également activer/désactiver ce paramètre pour empêcher la suppression des déploiements.

Options de stockage d'images de conteneurs

Pour en savoir plus, consultez le guide sur le stockage de votre image de conteneur.

Paramètres de compilation

Cloud Code est compatible avec les types d'artefacts Docker, Jib et Buildpacks. Pour savoir comment définir le compilateur souhaité et les paramètres associés, consultez le guide Configurer les préférences de compilation d'images de conteneurs.

Assistance

Pour envoyer des commentaires ou signaler un problème dans votre IDE IntelliJ, accédez à Outils > Cloud Code > Aide / À propos > Envoyer des commentaires ou signaler un problème pour signaler un problème sur GitHub, ou posez une question sur Stack Overflow.

Vous pouvez également rejoindre le canal #cloud-code, qui fait partie de la communauté Slack Google Cloud.