Aller au contenu

Arkade le choco du Devops !

logo

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 :

Terminal window
# 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 :

Terminal window
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 @

Terminal window
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 :

Terminal window
arkade get kind
kind create cluster

Pour installer une application il suffit de taper la commande :

Terminal window
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:

Terminal window
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 :

Terminal window
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