Aller au contenu principal

Commandes publiques

Vous trouverez ici comment utiliser cwc afin d'effectuer en ligne de commande les actions que vous feriez habituellement avec la console web. Cela vous facilitera l'automatisation de vos scripts et pipelines IaC1 (par exemples avec des shells scripts, rôles ansible, terraform, etc).

Remarques :

Obtenir de l'aide

cwc help # or -h or --help for getting help
cwc version # or -v or --version for getting the current version

Authentification

Login

cwc login -a <access_key> -s <secret_key>

Pour créer un couple access_key et secret_key, voir ce tutoriel.

Configuration par défaut

Lire la configuration courante

cwc configure get endpoint
cwc configure get provider
cwc configure get region
cwc configure get format

cwc configure ls

Cette commande listera les fichiers de configuration disponibles dans le dossier .cwc de votre machine.

Configurer

Pour configurer l'url de l'API (default endpoint), la région, le format de sortie ou l'hébergeur (provider) :

cwc configure

Tapez sur ENTER si vous voulez conserver la valeur actuelle pour chacun des paramètres :

cwc configure
Default endpoint [https://api.cwcloud.tech]:
Default provider [ovh]:
Default region [UK1]:
Default format [json]:

Note : Après avoir configuré votre client, un fichier de configuration sera créé automatiquement dans le dossier .cwc du répertoire home.

Vous pouvez lister les providers ou régions disponibles avec ces commandes :

cwc provider ls
cwc region ls # vous devez avoir setté le paramètre "provider" au préalable

Vous pouvez enfin configurer les paramètres individuellement comme ceci :

cwc configure set endpoint https://api.cwcloud.tech
cwc configure set provider ovh
cwc configure set region UK1
cwc configure set format json

Vous pouvez également créer un fichier de configuration à utiliser avec la configuration que vous avez faite :

cwc configure switch <nom_du_fichier_de_configuration>

Ceci prendra le fichier de configuration existant dans le dossier cwc que vous avez choisi et mettra en place la configuration.

Si vous voulez importer un fichier de configuration existant dans un autre répertoire, vous pouvez utiliser la commande suivante :

cwc configure import <chemin_du_fichier_de_configuration>

Format des sorties

Les formats de sorties interprétés sont:

  • plain: sortie en colonnes facilement parsable via des shell scripts
  • json: sortie au format JSON, facilement parsable par des langages de programmation plus haut niveau
  • pretty: mise en forme plus lisible à la lecture mais plus difficilement parsable par des scripts ou programmes. Ce format peut-être aussi ponctuellement demandé sans être persisté en ajoutant l'option -p ou --pretty à votre commande

Bootstrap

Installer CWCloud sur Kubernetes

Installation de base

cwc bootstrap

Installation avec configuration personnalisée

cwc bootstrap -r <nom_release> -n <namespace>
cwc bootstrap --release <nom_release> --namespace <namespace>

Flags disponibles :

  • -r ou --release : Nom du release pour le déploiement (par défaut : release-0.1.0)
  • -n ou --namespace : Namespace à utiliser pour le déploiement (par défaut : cwcloud)
  • -k ou --keep-dir : Conserver le répertoire helm local
  • -d ou --recreate-ns : Recréer le namespace
  • -o ou --openshift : Utiliser openshift cli au lieu de kubectl
  • -p ou --value : Valeurs pour surcharger les configurations (peut être répété)

Exemple :

cwc bootstrap -r mon-release -n production --value key=value --value key2=value2

Configurer un dépôt personnalisé

Configuration interactive

cwc bootstrap configure

Configuration directe avec flags

cwc bootstrap configure -u <url_depot> -b <branche>
cwc bootstrap configure --repo-url <url_depot> --branch <branche>

Flags disponibles :

  • -u ou --repo-url : URL du dépôt temporaire
  • -b ou --branch : Nom de la branche temporaire
  • -U ou --username : Nom d'utilisateur pour l'authentification du dépôt
  • -P ou --password : Mot de passe pour l'authentification du dépôt
  • -r ou --release : Nom du release pour le déploiement (par défaut : release-0.1.0)
  • -n ou --namespace : Namespace à utiliser pour le déploiement (par défaut : cwcloud)
  • -k ou --keep-dir : Conserver le répertoire helm local
  • -p ou --value : Valeurs pour surcharger les configurations

Exemple :

cwc bootstrap configure --repo-url https://gitlab.alternative.io/helm.git --branch feature-123

Désinstaller

cwc bootstrap uninstall

Redirection de port

cwc bootstrap pfw

Projets

Lister

cwc project ls

Note : Vous pouvez ajouter le flag -t (ou --type) pour filtrer les projets par type (vm ou k8s).

Rechercher

Rechercher par ID

cwc project ls -p <project_id>
cwc project ls --id <project_id>

Rechercher par nom

cwc project ls -n <project_name>
cwc project ls --name <project_name>

Rechercher par URL

cwc project ls -u <project_url>
cwc project ls --url <project_url>

Créer

cwc project create -n <project_name>

Remarques :

  • Si vous souhaitez changer d'instance gitlab ou de group ou de compte utilisateur, il faudra utiliser ces options :
    • -h ou --host: Instance de gitlab
    • -t ou --token: Access token de gitlab
    • -g ou --git: Votre nom d'utilisateur git
    • -n ou --namespace: le namespace ou group id ou le projet git sera stocké
    • -p ou --type: le type de projet (vm ou k8s)

Supprimer

Supprimer par ID

cwc project delete -p <project_id>
cwc project delete --id <project_id>

Supprimer par nom

cwc project delete -n <project_name>
cwc project delete --name <project_name>

Supprimer par URL

cwc project delete -u <project_url>
cwc project delete --url <project_url>

Zones DNS

Lister

cwc dnszones ls

Environnements

Lister

cwc environment ls

Rechercher par ID

cwc environment ls -e <environment_id>
cwc environment ls --environment <environment_id>

Instances

Lister les types d'instances disponibles

cwc instance type ls

Lister les instances

cwc instance ls

Rechercher par ID

cwc instance ls -i <instance_id>
cwc instance ls --instance <instance_id>

Créer

cwc instance create -n <instance_name> -e <environement> -t <instance_type> -p <project_name> -z <zone>
cwc instance create -n <instance_name> -e <environement> -t <instance_type> -i <project_id> -z <zone>
cwc instance create -n <instance_name> -e <environement> -t <instance_type> -u <project_url> -z <zone>

Remarques :

  • utiliser la zone nova pour ovh ou 1 ou 2 pour scaleway
  • instance_type correspond à la taille de l'instance (ex: DEV1-M for Scaleway)
  • utiliser --dns_zone ou -d pour choisir la zone dns dans laquelle l'instance sera créee (vous pouvez voir les zones disponibles avec cwc dnszones ls)

Attacher

cwc instance attach -n <playbook_name> -t <instance_type> -p <project_name> -z <zone>

Remarques :

  • utiliser la zone nova pour ovh ou 1 ou 2 pour scaleway
  • instance_type correspond à la taille de l'instance (ex: DEV1-M for Scaleway)

Mettre à jour le status

cwc instance update -i <instance_id> -s <action>

Remarques :

  • Le statut doit être poweroff, poweron or reboot

Supprimer

cwc instance delete -i <instance_id>
cwc instance delete --instance <instance_id>

Buckets / object storage

Lister

cwc bucket ls

Rechercher par ID

cwc bucket ls -b <bucket_id>
cwc bucket ls --bucket <bucket_id>

Renouveler les identifiants de connexion

cwc bucket renew -b <bucket_id>
cwc bucket renew --bucket <bucket_id>

Supprimer

cwc bucket delete -b <bucket_id>
cwc bucket delete --bucket <bucket_id>

Registres OCI / Docker

Lister

cwc registry ls

Rechercher par ID

cwc registry ls -r <registry_id>
cwc registry ls --registry <registry_id>

Renouveler les identifiants de connexion

cwc registry renouveler -r <registry_id>
cwc registry renouveler --registry <registry_id>

Supprimer

cwc registry delete -r <registry_id>
cwc registry delete --registry <registry_id>

FaaS / Serverless

Démo

demo_cli_faas

Langages

Lister

cwc faas languages ls

Fonctions serverless

Lister

cwc faas function ls

Rechercher par Id

cwc faas function ls -f <function_id>
cwc faas function ls --function <function_id>

Créer

cwc faas function create -n <function_name> -l <language_name>
cwc faas function create --name <function_name> --language <language_name>
  • Par défaut, la fonction créée est privée. Si vous ajoutez le flag -p ou --public, la fonction devient publique.

  • Il existe d'autres options facultatives pour la création immédiate :

-l # ou --language : pour le langage de programmation de la fonction
-r # ou --regexp : expression régulière pour sécuriser les arguments
-u # ou --callback-url : url de callback
-a # ou --callback-authorization-header : header d'authentification pour la callback
-g # ou --args : pour donner la valeur des arguments (option répétable pour chaque arguments)
-c # ou --code : code de la fonction
  • Au lieu d'entrer les flags optionnels l'un derrière l'autre, vous pouvez entrer vos données avec le mode interactif en ajoutant -i ou --interactive.

Mettre à jour

cwc faas function update -f <function_id>
cwc faas function update --function <function_id>

Vous pouvez mettre à jour la fonction en passant par le mode interactif en ajoutant l'option -i ou --interactive avec laquelle vous pourrez passer vos données directement avec ces options facultatives :

-l # ou --language : pour le langage de programmation de la fonction
-r # ou --regexp : expression régulière pour sécuriser les arguments
-u # ou --callback-url : url de callback
-a # ou --callback-authorization-header : header d'authentification pour la callback
-g # ou --args : pour donner la valeur des arguments (option répétable pour chaque arguments)
-c # ou --code : code de la fonction

Supprimer

cwc faas function delete -f <function_id>
cwc faas function delete --function <function_id>

Invocations

Lister

cwc faas invocation ls

Rechercher par Id

cwc faas invocation ls -i <invocation_id>
cwc faas invocation ls --invocation <invocation_id>

Créer

cwc faas invocation create -f <function_id>
cwc faas invocation create --function <function_id>
  • Il existe une autre option facultative pour la création immédiate :
-a # ou --args : pour donner la valeur des arguments (option répétable pour chaque arguments)
-s # ou --synchronous : pour activer le mode synchrone
  • Au lieu d'utiliser les options ci-dessus, vous pouvez aussi entrer vos données en mode interactif en ajoutant avec l'option -i ou --interactive.

Supprimer

cwc faas invocation delete -i <invocation_id>
cwc faas invocation delete --invocation <invocation_id>

Vider toutes les invocations

cwc faas invocation truncate

Déclencheurs (triggers)

Lister

cwc faas trigger ls

Rechercher par Id

cwc faas trigger ls -t  <trigger_id>
cwc faas trigger ls --trigger <trigger_id>

Lister les types

cwc faas trigger kinds

Créer

cwc faas trigger create -f <function_id>
cwc faas trigger create --function <function_id>
  • Il existe un autre option facultative pour la création immédiate :
-n # ou --name : pour le nom du trigger
-k # ou --kind : pour le type du trigger
-c # ou --cron_expr : pour l'expression cron
-a # ou --args pour : donner la valeur des arguments (option répétable pour chaque arguments)
  • Au lieu d'utiliser les options ci-dessus, vous pouvez entrer vos données en mode interactif en utilisant l'option -i ou --interactive à la place.

Supprimer

cwc faas trigger delete -t  <trigger_id>
cwc faas trigger delete --trigger <trigger_id>

Vider tous les triggers

cwc faas trigger truncate

IoT

Types d'Objets

Lister les Types d'Objets

cwc iot objectType ls

Note : Vous pouvez ajouter le flag -p (ou --pretty) pour afficher la sortie dans un format de tableau formaté

Rechercher un Type d'Objet par ID

cwc iot objectType ls -i <id_type_objet>
cwc iot objectType ls --id <id_type_objet>

Créer un Type d'Objet

cwc iot objectType create -n <nom> -d <fonction_decodage>

Options :

  • -n ou --name : Nom du type d'objet
  • -d ou --decoding_function : Fonction de décodage du type d'objet (requis)
  • --public : Définir le type d'objet comme public (optionnel)
  • -t ou --triggers : Déclencheurs du type d'objet (peut être utilisé plusieurs fois)
  • -i ou --interactive : Mode interactif pour une création guidée

Mode Interactif

cwc iot objectType create -i
cwc iot objectType create --interactive

Mettre à Jour un Type d'Objet

cwc iot objectType update -o <id_type_objet>

Options :

  • -o ou --id : L'ID du type d'objet (requis)
  • -n ou --name : Nouveau nom du type d'objet
  • -d ou --decoding_function : Nouvelle fonction de décodage
  • --public : Mettre à jour le statut public
  • -t ou --triggers : Nouveaux déclencheurs (peut être utilisé plusieurs fois)
  • -i ou --interactive : Mode interactif pour une mise à jour guidée

Supprimer un Type d'Objet

cwc iot objectType delete -o <id_type_objet>
cwc iot objectType delete --objectType <id_type_objet>

Appareils

Lister les Appareils

cwc iot device ls

Note : Vous pouvez ajouter le flag -p (ou --pretty) pour afficher la sortie dans un format de tableau formaté

Rechercher un Appareil par ID

cwc iot device ls -i <id_appareil>
cwc iot device ls --id <id_appareil>

Créer un Appareil

cwc iot device create -u <nom_utilisateur> -o <id_type_objet>

Options :

  • -u ou --username : Nom d'utilisateur de l'appareil (email) (requis)
  • -o ou --object_type_id : ID du type d'objet de l'appareil (requis)

Supprimer un Appareil

cwc iot device delete -d <id_appareil>
cwc iot device delete --deviceId <id_appareil>

Données

Créer des Données

cwc iot data create -d <id_appareil> -c <contenu>

Options :

  • -d ou --device_id : ID de l'appareil des données (requis)
  • -c ou --content : Contenu des données (requis)

Stockage

Clé-Valeur

Liste

cwc storage kv ls

Créer

cwc storage kv create -k <clé> -p <charge utile>
cwc storage kv create --key <clé> --payload <charge utile>

Remarques:

  • La charge utile doit être une chaîne JSON valide (ex: '{"key":"value"}')
  • Vous pouvez spécifier une durée de vie optionnelle en heures avec -t ou --ttl

Mettre à jour

cwc storage kv update -k <clé> -p <charge utile>
cwc storage kv update --key <clé> --payload <charge utile>

Remarques:

  • La charge utile doit être une chaîne JSON valide (ex: '{"key":"value"}')
  • Vous pouvez spécifier une durée de vie optionnelle en heures avec -t ou --ttl

Supprimer

cwc storage kv delete -k <clé>
cwc storage kv delete --key <clé>

Kubernetes

Déploiements

Liste des déploiements

cwc kubernetes deployment ls

Lister les déploiements par ID

cwc kubernetes deployment ls -d <id_de_deploiement>
## ou
cwc kubernetes deployment ls --id <id_de_deploiement>

Créer un déploiement

cwc kubernetes deployment create -n <nom_de_deploiement> -d <description_de_deploiement> -c <id_de_cluster> -i <id_de_projet> -e <id_de_environnement>
## ou
cwc kubernetes deployment create --name <nom_de_deploiement> --description <description_de_deploiement> --cluster <id_de_cluster> --project <id_de_projet> --environment <id_de_environnement>

Supprimer déploiement par ID

cwc kubernetes deployment delete -d <id_de_deploiement>
## ou
cwc kubernetes deployment delete --id <id_de_deploiement>

Email

Envoyer un email

Vous pouvez envoyer un email avec la commande suivante :

cwc email -t <recepient_email> -s <subject> -c <content>

Notes :

  • Il existe d'autres options que vous pouvez ajouter :
    • -f pour ajouter une adresse email personnalisée de l'expéditeur
    • -b pour ajouter une adresse email bcc

Moniteurs

Lister

cwc monitor ls

Obtenir par ID

cwc monitor ls -m <monitor_id>
cwc monitor ls --monitor <monitor_id>

Note : Vous pouvez ajouter le flag -p ou --pretty pour obtenir une sortie plus lisible

Créer

cwc monitor create -n <monitor_name> -u <monitor_url>

Flags optionnels :

  • -y ou --type : Type du monitor (http ou tcp) - par défaut "http"
  • -f ou --family : Famille du monitor
  • -m ou --method : Méthode HTTP (GET, POST, PUT) - par défaut "GET"
  • -e ou --expected_http_code : Code de réponse HTTP attendu (200, 201, 401...) - par défaut "20*"
  • -b ou --body : Corps de la requête - par défaut "hello"
  • -c ou --expected_contain : Contenu attendu dans la réponse
  • -t ou --timeout : Délai d'expiration en secondes - par défaut 30
  • -s ou --username : Nom d'utilisateur pour l'authentification basique
  • -p ou --password : Mot de passe pour l'authentification basique
  • -H ou --headers : En-têtes personnalisés au format "clé1:valeur1,clé2:valeur2"
  • -l ou --level : Niveau de log du moniteur (info, debug) - par défaut "info"
  • -k ou --check_tls : Activer/Désactiver la vérification du certificat TLS - Activé par défaut
  • -C ou --callbacks : Callbacks au format type:http,endpoint:https://exemple.com,token:123;type:mqtt,endpoint:mqtt://broker.com,topic:test

Mettre à jour

cwc monitor update -i <monitor_id>
  • -y ou --type : Type du monitor (http ou tcp)
  • -n ou --name : Nom du monitor
  • -f ou --family : Famille du monitor
  • -u ou --url : URL à surveiller
  • -m ou --method : Méthode HTTP (GET, POST, PUT)
  • -e ou --expected_http_code : Code de réponse HTTP attendu
  • -b ou --body : Corps de la requête
  • -c ou --expected_contain : Contenu attendu dans la réponse
  • -t ou --timeout : Délai d'expiration en secondes
  • -s ou --username : Nom d'utilisateur pour l'authentification basique
  • -p ou --password : Mot de passe pour l'authentification basique
  • -H ou --headers : En-têtes personnalisés au format "clé1:valeur1,clé2:valeur2"
  • -l ou --level : Niveau de log du moniteur (info, debug) - par défaut "info"
  • -k ou --check_tls : Activer/Désactiver la vérification du certificat TLS - Activé par défaut
  • -C ou --callbacks : Callbacks au format type:http,endpoint:https://exemple.com,token:123;type:mqtt,endpoint:mqtt://broker.com,topic:test

Supprimer

cwc monitor delete -m <monitor_id>
cwc monitor delete --monitor <monitor_id>

Prompt IA

Envoyer un Prompt

cwc ai prompt -a <adaptateur> -m "<message>"

Options :

  • -a ou --adapter : L'adaptateur IA choisi (requis)
  • -m ou --message : Le message d'entrée à envoyer à l'IA (requis)
  • -l ou --list : ID de liste optionnel pour continuer une conversation existante
  • -p ou --pretty : Affichage formaté de la sortie (optionnel)

Continuer une Conversation

cwc ai prompt -a <adaptateur> -m "<message>" -l <id_liste>

Obtenir l'Historique des Prompts

cwc ai prompt history

Options :

  • -s ou --start : Index de départ pour la pagination (par défaut : 0)
  • -m ou --max : Nombre maximum de résultats à retourner (par défaut : 7)
  • -p ou --pretty : Affichage formaté de la sortie (optionnel)

Obtenir l'Historique des Prompts avec Pagination

cwc ai prompt history -s <index_debut> -m <max_resultats>
cwc ai prompt history --start <index_debut> --max <max_resultats>

Obtenir les Détails d'un Prompt

cwc ai prompt details -l <id_liste>
cwc ai prompt details --list <id_liste>

Options :

  • -l ou --list : ID de liste pour obtenir les détails (requis)
  • -p ou --pretty : Affichage formaté de la sortie (optionnel)

Adaptateurs IA

Lister tous les adaptateurs

cwc ai adapter ls

Lister uniquement les adaptateurs externes

cwc ai adapter ls -e
cwc ai adapter ls --external

Obtenir un adaptateur spécifique par ID

cwc ai adapter ls -a <adapter_id>
cwc ai adapter ls --adapter-id <adapter_id>

Note: Vous pouvez ajouter le flag --pretty pour obtenir un affichage plus lisible

Créer

cwc ai adapter create -n <nom_adaptateur> -u <url_adaptateur>

Flags optionnels :

  • -s ou --username: Nom d'utilisateur pour l'authentification
  • -w ou --password: Mot de passe pour l'authentification
  • -t ou --timeout: Délai d'expiration en secondes - par défaut 30
  • -k ou --check-tls: Vérifier le certificat TLS - activé par défaut
  • -p ou --public: Rendre l'adaptateur public - par défaut false

Exemple :

cwc ai adapter create -n "mon-adaptateur" -u "https://api.openai.com/v1/chat/completions" -s "monuser" -w "monpass" -t 60 -k=false -p=true

Mettre à jour

cwc ai adapter update -a <adapter_id>

Flags optionnels :

  • -n ou --name: Nom de l'adaptateur IA
  • -u ou --url: URL de l'adaptateur IA
  • -s ou --username: Nom d'utilisateur pour l'authentification
  • -w ou --password: Mot de passe pour l'authentification
  • -t ou --timeout: Délai d'expiration en secondes
  • -k ou --check-tls: Vérifier le certificat TLS
  • -p ou --public: Rendre l'adaptateur public

Exemple :

cwc ai adapter update -a 2080dc4f-2485-42fe-a0ba-613bbc9fd2e5 -n "nom-mis-a-jour" -u "https://nouvelle-api.com" -s "nouveauuser" -w "nouveaupass" -t 90 -p=true

Supprimer

cwc ai adapter delete -a <adapter_id>
cwc ai adapter delete --adapter-id <adapter_id>

Footnotes

  1. infrastructure as code