Aller au contenu principal

Arkade le choco du Devops !

· 4 minutes de lecture
Stéphane ROBERT
Consultant DevOps

Je suis tombé sur un outil bien sympathique, en fait une vraie pépite, qui est un peu le choco du Devops. Il s'agit d'Arkade. Arkade permet de télécharger la plupart des CLI devops mais aussi d'installer des applications dans votre cluster kubernetes de développement de la plupart des outils nécessaires aux pratiques Devops.

Cet outil est développé par @alexellis l'auteur d'OpenFaas. Donc c'est du sérieux.

On y trouve la plupart des cli dont :

  • kubectl
  • kind
  • kubectx
  • helmplus
  • buildx
  • dive
  • docker-compose
  • ...

et les application :

  • loki
  • redis
  • argocd
  • flux
  • mongodb
  • openfaas

Installation d'arkade

Comme la plupart des outils il existe un shell permettant de l'installer rapidement :

# Note: you can also run without `sudo` and move the binary yourself
curl -sLS https://get.arkade.dev | sudo sh

arkade --help
ark --help  # a handy alias

Une fois installé il faut ajouter le chemin suivant dans votre PATH :

export PATH=$HOME/.arkade/bin/:$PATH

Vous l'aurez compris toutes les CLI sont installé dans ce répertoire.

Utilisation d'Arkade

Arkade peut être utilisé pour installer des applications Kubernetes ou pour télécharger des CLI :

Installation de CLI

Il suffit d'utiliser la commande arkade get <nom de la cli> pour télécharger une CLI.

Si vous tapez simplement ark get vous obtiendrez la liste des CLI disponible. Pour installer une version spécifique il suffit d'ajouter la version précédée du caractère @

arkade get kubectl@v1.22.0

Installation d'application

Si vous n'avez pas de cluster installé sur votre machine, faisons le nécessaire avec arkade :

arkade get kind
kind create cluster

Pour installer une application il suffit de taper la commande :

arkade install <nom de l'application>

Si ajoute --help on obtient la description de l'application ainsi que toutes les options qui peuvent être utilisé

Installons openfass:

arkade install openfaas --help                                                                                                    vagrant@devbox 13:00:15
Install openfaas

Usage:
  arkade install openfaas [flags]

Examples:
  arkade install openfaas --load-balancer

Flags:
  -a, --basic-auth                    Enable authentication (default true)
      --basic-auth-password string    Overide the default random basic-auth-password if this is set
      --clusterrole                   Create a ClusterRole for OpenFaaS instead of a limited scope Role
      --direct-functions              Invoke functions directly from the gateway, or load-balance via endpoint IPs when set to false
      --function-pull-policy string   Pull policy for functions (default "Always")
      --gateways int                  Replicas of gateway (default 1)
  -h, --help                          help for openfaas
      --ingress-operator              Get custom domains and Ingress records via the ingress-operator component
      --license-file string           Path to OpenFaaS Pro license file
  -l, --load-balancer                 Add a loadbalancer
      --log-provider-url string       Set a log provider url for OpenFaaS
      --max-inflight int              Max tasks for queue-worker to process in parallel (default 1)
  -n, --namespace string              The namespace for the core services (default "openfaas")
      --operator                      Create OpenFaaS Operator
      --pull-policy string            Pull policy for OpenFaaS core services (default "IfNotPresent")
      --queue-workers int             Replicas of queue-worker for HA (default 1)
      --set stringArray               Use custom flags or override existing flags
                                      (example --set gateway.replicas=2)
      --update-repo                   Update the helm repo (default true)

Global Flags:
      --kubeconfig string   Local path for your kubeconfig file
      --wait                If we should wait for the resource to be ready before returning (helm3 only, default false)

Une fois l'installation d'une application Kubernetes lancée vous pouvez obtenir des infos avec :

arkade info openfaas

Info for app: openfaas
# Get the faas-cli
curl -SLsf https://cli.openfaas.com | sudo sh

# Forward the gateway to your machine
kubectl rollout status -n openfaas deploy/gateway
kubectl port-forward -n openfaas svc/gateway 8080:8080 &

# If basic auth is enabled, you can now log into your gateway:
PASSWORD=$(kubectl get secret -n openfaas basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode; echo)
echo -n $PASSWORD | faas-cli login --username admin --password-stdin

faas-cli store deploy figlet
faas-cli list

# For Raspberry Pi
faas-cli store list \
 --platform armhf

faas-cli store deploy figlet \
 --platform armhf

# Find out more at:
# https://github.com/openfaas/faas

Pour désinstaller une application arkade uninstall openfaas vous fournira les commandes nécessaires à son nettoyage.

Plus d'infos sur le repo d'arkade