#Kubernetes
#Helm
#Packaging
Packager une application pour le déploiement Kubernetes via Helm.
Tu es un ingénieur Kubernetes. Je dois déployer une application API REST stateless sur un cluster. Crée la structure et les fichiers essentiels d'un Chart Helm (Chart.yaml, deployment.yaml, service.yaml, values.yaml) pour cette application. Le template doit permettre de configurer le nombre de répliques, l'image de conteneur, les limites de ressources (CPU/RAM) et le type de Service (ClusterIP ou LoadBalancer) via le fichier values.yaml.
#docker
#optimisation
#sécurité
Transforme un Dockerfile inefficace en une construction multi-stage ultra-optimisée.
Agis en tant qu'expert Docker. Je vais te fournir un Dockerfile classique qui contient des couches inutiles et une image de base lourde. Ta mission est de :
1. Réécrire ce Dockerfile en utilisant le 'Multi-stage build'.
2. Choisir une image 'alpine' ou 'distroless' appropriée pour l'étape finale.
3. Minimiser le nombre de couches (layers) en combinant les commandes RUN.
4. Assurer-toi que l'utilisateur final n'est pas 'root' pour la sécurité.
5. Explique chaque changement majeur apporté.
#terraform
#iac
#refactoring
Diagnostic et correction d'un code Infrastructure as Code (IaC) malade.
Voici un extrait de code Terraform qui provoque des erreurs de planification ('plan errors') et ne respecte pas les meilleures pratiques.
[Insérer ton code Terraform ici]
Ta tâche est de :
1. Identifier la cause racine des erreurs de syntaxe ou de dépendance.
2. Corriger le code pour qu'il soit fonctionnel.
3. Introduire des variables et des outputs pour rendre le module réutilisable.
4. Ajouter des commentaires expliquant la logique des ressources 'data' utilisées.
#github-actions
#gitlab-ci
#pipeline
Créer un fichier de configuration de pipeline complexe à partir d'une description textuelle.
Je veux mettre en place un pipeline d'intégration continue pour un projet [Langage: ex. Node.js/Python]. Le processus doit suivre ces étapes :
1. Linting du code.
2. Exécution des tests unitaires.
3. Construction de l'application (build).
4. Analyse de sécurité (SAST).
5. Déploiement sur l'environnement de staging si la branche est 'develop'.
Génère le fichier de configuration complet (ex: .github/workflows/main.yml ou .gitlab-ci.yml) en incluant des conditions claires et des variables d'environnement sécurisées.
#kubernetes
#debugging
#logs
Analyse de logs et de configurations pour résoudre un CrashLoopBackOff.
Je suis dans une situation d'urgence. Un déploiement Kubernetes est bloqué en statut 'CrashLoopBackOff'. Voici les informations dont je dispose :
- Le YAML du déploiement : [Coller le YAML]
- Les logs du conteneur (kubectl logs) : [Coller les logs]
- Les événements récents du namespace (kubectl get events) : [Coller les événements]
En tant que SRE expert, analyse ces données pour :
1. Identifier la raison précise de l'échec du démarrage.
2. Proposer la modification exacte du YAML (ou la commande kubectl) pour corriger le problème immédiatement.
3. Suggérer une 'Readiness Probe' ou 'Liveness Probe' appropriée pour éviter ce problème à l'avenir.
#bash
#scripting
#linux
Générer un script shell robuste pour la maintenance système automatisée.
J'ai besoin d'un script Bash pour automatiser la maintenance hebdomadaire de mes serveurs Linux Ubuntu. Le script doit effectuer les actions suivantes en toute sécurité :
1. Mettre à jour la liste des paquets.
2. Mettre à jour les paquets installés sans interaction automatique (apt-get -y).
3. Nettoyer les vieux paquets et le cache (autoremove, autoclean).
4. Vérifier l'espace disque et envoyer une alerte si l'utilisation dépasse 80%.
5. Logger toutes les actions dans un fichier '/var/log/maintenance.log'.
Écris le script complet avec des gestionnaires d'erreurs et des commentaires explicatifs.
#cicd
#pipeline
#théorie
Comprendre les bases de l'intégration continue et du déploiement continu.
Agis comme un expert DevOps pédagogue. Explique-moi le concept de CI/CD (Intégration Continue et Déploiement Continu) en termes simples, comme si je n'avais aucune expérience technique. Donne un exemple concret de pipeline et explique pourquoi cela aide les équipes à livrer du code plus rapidement et avec moins d'erreurs.
#docker
#conteneurisation
#python
Apprendre à conteneuriser une application 'Hello World' en Python.
Je débute avec Docker. Écris-moi un Dockerfile simple pour une application Python qui affiche 'Bonjour le Monde'. Explique chaque instruction (FROM, RUN, CMD) du fichier ligne par ligne pour que je comprenne la logique de construction de l'image.
#git
#versioning
#terminal
Guide pas à pas pour démarrer avec le contrôle de version.
Je suis débutant en Git. Guide-moi pas à pas, avec les commandes exactes du terminal, pour effectuer les actions suivantes : 1. Initialiser un nouveau dépôt git, 2. Créer un fichier texte simple, 3. Ajouter ce fichier à l'index (staging), 4. Faire le premier commit avec un message clair.
#linux
#terminal
#bash
Liste des commandes indispensables pour naviguer en ligne de commande.
Je suis nouveau sous Linux et je dois utiliser le terminal. Fais-moi une liste des 10 commandes les plus importantes à connaître pour naviguer dans le système de fichiers, lire des fichiers et vérifier l'utilisation des ressources. Pour chaque commande, donne un exemple d'utilisation concret.
#sécurité
#configuration
#best-practices
Comprendre comment sécuriser les configurations sensibles.
Explique-moi ce qu'est une variable d'environnement dans le contexte du développement et de l'Ops. Pourquoi est-il mauvais de mettre des mots de passe directement dans le code source ? Donne-moi un exemple de la manière de définir une variable d'environnement et de la lire dans un script simple (en Python ou Bash).
#github-actions
#ci-cd
#docker
#nodejs
#automatisation
Créer un workflow de production pour une application Node.js incluant tests, build Docker et déploiement.
Agis en tant qu'Expert DevOps. Je souhaite créer un pipeline CI/CD robuste pour une application Node.js (Express) en utilisant GitHub Actions.
Le workflow doit suivre ces étapes :
1. Déclenchement sur les branches 'main' et 'develop'.
2. Installation des dépendances et cache des modules npm.
3. Exécution des tests unitaires (Jest) et de la couverture de code.
4. Construction de l'image Docker (multi-stage build) pour optimiser la taille.
5. Connexion sécurisée à un registre de conteneurs (par exemple, GHCR ou Docker Hub) en utilisant des secrets.
6. Push de l'image taguée avec le hash du commit et le nom de la branche.
7. Déploiement automatique sur un environnement de staging si la branche est 'develop'.
Fournis le fichier YAML complet du workflow (.github/workflows/ci-cd.yml) avec des commentaires explicatifs pour chaque étape critique. Assure-toi d'inclure les bonnes pratiques de sécurité (ne jamais exposer de secrets en clair).
#docker
#containers
#sécurité
#optimisation
#best-practices
Réécrire un Dockerfile standard en utilisant le multi-stage build pour réduire la taille et renforcer la sécurité.
Agis en tant qu'Architecte Logiciel spécialisé dans les conteneurs.
Voici un Dockerfile basique pour une application Python (Flask) qui est inefficace :
FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Ta tâche est de :
1. Réécrire ce Dockerfile en utilisant une construction 'multi-stage' pour séparer les dépendances de compilation du runtime final.
2. Utiliser une image 'alpine' ou 'slim' pour l'étape finale afin de réduire drastiquement la taille de l'image.
3. Implémenter un utilisateur non-root (non-privileged user) pour des raisons de sécurité.
4. Utiliser le cache des couches (layer caching) intelligemment en copiant d'abord les fichiers requirements.txt avant le reste du code source.
5. Expliquer chaque changement et son impact (taille, sécurité, vitesse de build).
#terraform
#aws
#iac
#vpc
#réseau
#hcl
Définir un module Terraform réutilisable pour provisionner un réseau VPC sécurisé sur AWS.
Agis en tant qu'Ingénieur Infrastructure (IaC). Je souhaite provisionner une infrastructure réseau AWS complète en utilisant Terraform.
Crée un module Terraform modulaire qui définit :
1. Un VPC (Virtual Private Cloud) avec un bloc CIDR configurable.
2. Deux sous-réseaux publics (dans différentes Availability Zones) pour un Load Balancer.
3. Deux sous-réseaux privés (dans différentes Availability Zones) pour la base de données et les serveurs d'application.
4. Une Internet Gateway (IGW) et une NAT Gateway pour permettre aux instances privées de sortir sur Internet (pour les mises à jour OS par exemple) sans être accessibles de l'extérieur.
5. Les tables de routage (Route Tables) appropriées.
6. Les sorties (outputs) pour les IDs des sous-réseaux et l'ID du VPC.
Fournis le code HCL (HashiCorp Configuration Language) structuré, en utilisant des variables (variables.tf) et des sorties (outputs.tf). Assure-toi que le code suit les conventions de nommage AWS et les meilleures pratiques de sécurité.
#kubernetes
#helm
#packaging
#microservices
#yaml
Packager une application microservice dans un Chart Helm avec gestion des secrets et de la configuration.
Agis en tant qu'Expert Kubernetes. Je dois déployer une application API REST sur un cluster Kubernetes via Helm.
Crée la structure d'un Chart Helm complet ('mon-api') comprenant :
1. Le fichier 'Chart.yaml' avec les métadonnées nécessaires.
2. Le fichier 'values.yaml' contenant la configuration par défaut (réplicaCount, image, service, ingress, resources, HPA).
3. Les templates Kubernetes pour :
- Deployment (avec liveness et readiness probes).
- Service (ClusterIP).
- Ingress (pour l'exposition via NGINX, avec TLS activé par défaut).
- ConfigMap (pour les variables d'environnement non sensibles).
- Secret (pour gérer un mot de passe de base de passe, idéalement en le générant ou en le recevant en valeur).
Le code doit être templatisé efficacement en utilisant les fonctions Go Template de Helm. Assure-toi que le déploiement est capable de gérer des mises à jour sans temps d'arrêt (rolling update).