Gestion des déploiements Astro
Cette skill vous aide à gérer les déploiements Astronomer en production en utilisant l'Astro CLI.
Pour le développement local, consultez la skill managing-astro-local-env. Pour le dépannage en production, consultez la skill troubleshooting-astro-deployments.
Authentification
Toutes les opérations de déploiement nécessitent une authentification :
# Se connecter à Astronomer (ouvre le navigateur pour OAuth)
astro login
Les tokens d'authentification sont stockés localement pour les commandes suivantes. Exécutez ceci avant toute opération de déploiement.
Gestion des workspaces
Les déploiements sont organisés en workspaces :
# Lister tous les workspaces accessibles
astro workspace list
# Basculer vers un workspace spécifique
astro workspace switch <WORKSPACE_ID>
Le contexte du workspace est maintenu entre les sessions. La plupart des commandes de déploiement fonctionnent dans le contexte du workspace actuel.
Lister et inspecter les déploiements
# Lister les déploiements du workspace actuel
astro deployment list
# Lister les déploiements de tous les workspaces
astro deployment list --all
# Inspecter un déploiement spécifique (infos détaillées)
astro deployment inspect <DEPLOYMENT_ID>
# Inspecter par nom (alternative à l'ID)
astro deployment inspect --deployment-name data-service-stg
Ce que montre inspect
- État du déploiement (HEALTHY, UNHEALTHY)
- Version du runtime et version d'Airflow
- Type d'executor (CELERY, KUBERNETES, LOCAL)
- Configuration du scheduler (taille, nombre)
- Paramètres des files de workers (min/max workers, concurrence, type de worker)
- Quotas de ressources (CPU, mémoire)
- Variables d'environnement
- Timestamp du dernier déploiement et tag actuel
- URLs du webserver et de l'API
- État de la haute disponibilité
Créer des déploiements
# Créer avec les paramètres par défaut
astro deployment create
# Créer avec un executor spécifique
astro deployment create --label production --executor celery
astro deployment create --label staging --executor kubernetes
# Options d'executor :
# - celery: Meilleur pour la plupart des charges de production
# - kubernetes: Meilleur pour la mise à l'échelle dynamique, les tâches isolées
# - local: Meilleur pour le développement uniquement
Mettre à jour les déploiements
# Activer les déploiements DAG uniquement (itération plus rapide)
astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled
# Mettre à jour d'autres paramètres (utilisez --help pour les options complètes)
astro deployment update <DEPLOYMENT_ID> --help
Supprimer des déploiements
# Supprimer un déploiement (demande une confirmation)
astro deployment delete <DEPLOYMENT_ID>
Destructif : Ceci ne peut pas être annulé. Tous les DAGs, l'historique des tâches et les métadonnées seront perdus.
Déployer le code en production
Déploiement complet
Déployer à la fois les DAGs et l'image Docker (requis quand les dépendances changent) :
astro deploy <DEPLOYMENT_ID>
À utiliser quand :
- Les dépendances ont changé (
requirements.txt,packages.txt,Dockerfile) - Premier déploiement d'un nouveau projet
- Changements d'infrastructure importants
Déploiement DAG uniquement (recommandé pour l'itération)
Déployer uniquement les fichiers DAG, ignorer la reconstruction de l'image Docker :
astro deploy <DEPLOYMENT_ID> --dags
À utiliser quand :
- Seuls les fichiers DAG ont changé (fichiers Python dans le répertoire
dags/) - Itération rapide pendant le développement
- Beaucoup plus rapide qu'un déploiement complet (secondes vs minutes)
Requiert : Flag --dag-deploy-enabled activé sur le déploiement (voir Mettre à jour les déploiements)
Déploiement image uniquement
Déployer uniquement l'image Docker, ignorer la synchronisation des DAGs :
astro deploy <DEPLOYMENT_ID> --image-only
À utiliser quand :
- Seules les dépendances ont changé
- Dockerfile ou requirements mis à jour
- Pas de modifications de DAGs
Forcer le déploiement
Contourner les vérifications de sécurité et déployer :
astro deploy <DEPLOYMENT_ID> --force
Attention : Ignore la validation qui pourrait prévenir des déploiements défaillants.
Tokens API de déploiement
Gérer les tokens API pour l'accès programmatique aux déploiements :
# Lister les tokens d'un déploiement
astro deployment token list --deployment-id <DEPLOYMENT_ID>
# Créer un nouveau token
astro deployment token create \
--deployment-id <DEPLOYMENT_ID> \
--name "CI/CD Pipeline" \
--role DEPLOYMENT_ADMIN
# Créer un token avec expiration
astro deployment token create \
--deployment-id <DEPLOYMENT_ID> \
--name "Temporary Access" \
--role DEPLOYMENT_ADMIN \
--expiry 30 # Jours avant expiration (0 = n'expire jamais)
Rôles :
DEPLOYMENT_ADMIN: Accès complet au déploiement
Note : La valeur du token n'est affichée qu'à la création. Stockez-la en sécurité.
Workflows courants
Premier déploiement en production
# 1. Se connecter
astro login
# 2. Basculer vers le workspace de production
astro workspace list
astro workspace switch <PROD_WORKSPACE_ID>
# 3. Créer un déploiement
astro deployment create --label production --executor celery
# 4. Noter l'ID du déploiement, puis déployer
astro deploy <DEPLOYMENT_ID>
Développement itératif de DAGs
# 1. Activer les déploiements rapides (configuration unique)
astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled
# 2. Faire des modifications de DAG localement
# 3. Déployer rapidement
astro deploy <DEPLOYMENT_ID> --dags
Promouvoir le code de staging vers production
# 1. Déployer d'abord en staging
astro workspace switch <STAGING_WORKSPACE_ID>
astro deploy <STAGING_DEPLOYMENT_ID>
# 2. Tester en staging
# 3. Déployer le même code en production
astro workspace switch <PROD_WORKSPACE_ID>
astro deploy <PROD_DEPLOYMENT_ID>
Gestion de la configuration
# Afficher la configuration de la CLI
astro config get
# Définir une valeur de configuration
astro config set <KEY> <VALUE>
# Vérifier la version de la CLI
astro version
# Mettre à niveau la CLI vers la dernière version
astro upgrade
Conseils
- Utilisez le flag
--dagspour une itération rapide (secondes vs minutes) - Testez toujours dans le workspace de staging avant la production
- Utilisez
deployment inspectpour vérifier l'état du déploiement avant de déployer - Les IDs de déploiement sont permanents, les noms peuvent changer
- La plupart des commandes fonctionnent avec l'ID de déploiement ;
inspectaccepte aussi--deployment-name - Définissez
--dag-deploy-enabledune fois par déploiement pour les déploiements rapides - Gardez le contexte du workspace visible avec
astro workspace list(affiche un astérisque pour le contexte actuel)
Skills associées
- troubleshooting-astro-deployments: Investiguer les problèmes de déploiement, consulter les logs, gérer les variables d'environnement
- managing-astro-local-env: Gérer l'environnement de développement Airflow local
- setting-up-astro-project: Initialiser et configurer les projets Astro