in ,

Introducing Arkade – The Kubernetes app installer, Hacker News

Introducing Arkade – The Kubernetes app installer, Hacker News
    

arkade logo

Arkade (ark for short) provides a clean CLI with strongly-typed flags to install charts and apps to your cluster in one command.

It’s written in Golang and supported by Alex Ellis and the OpenFaaS Community .

I added the cert-manager, openfaas-ingress, kubernetes dashboard and docker-registry-ingress apps! Big thanks to Alex and the rest of the community for contribute all the other amazing apps.

What’s it for?

Installing apps on Kubernetes, this is a list of the currently supported apps:

 
 
 ($  arkade  install   You can  install :  - openfaas  - nginx-ingress  - cert-manager  - openfaas-ingress  - inlets-operator  - metrics-server  - chart  - tiller  - linkerd  - cron-connector  - kafka-connector  - minio  - postgresql  - kubernetes-dashboard  - istio  - crosspane  - mongodb  - docker-registry  - docker-registry-ingress Run arkade  install 
 NAME 
  - help  to see configuration options.   
    

Wow! That’s a lot of apps!

Let’s take a look

The arkade cli is the easiest installation method for OpenFaaS on kubernetes . I’m going to show you just how easy it is to get OpenFaaS installed and ready to work using this cli.

I have a Kubernetes cluster on Digital Ocean ready to go, with kubectl configured on my laptop and ready to go.

We could install the basic default configuration like this:

 
 
 ($ ) arkade  install  openfaas  
  

However, I’m going to set an override for the Helm installation, so our functions scale down to 0 when they are idle, saving cluster resources. In the full helm command we would use - set faasIdler.dryRun=false , as you can see from the command below we just pass the same flag in. Easy as that!

 
 
 ($ ) arkade  install  openfaas  - set  faasIdler.dryRun =  false    
  

That should output the below message, showing it worked!

 
 
======================================================================= =OpenFaaS has been installed. =
 =======================================================================   # 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 :  # 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}"  |  (base)    - 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  Thanks  for  using arkade!   
  

That’s a lot of app deployed in 1 small command. We now have OpenFaaS installed in our cluster, ready for us to deploy serverless functions, microservices or containers.

  

Note: You don’t even need to remember all that information. Arkade has a command to print the info for any app again!

  

With 2 more commands from arkade we can setup TLS and ingress from the internet

 
 
 ($ ) arkade  install  cert-manager  - wait   $  arkade  (install  openfaas-ingress         - email  [email protected]         - domain  openfaas.example.com   
      

The wait flag can be used to wait for the helm chart to install and be ready before moving on to the next command.

So now, we have OpenFaaS, cert-manager and some ingress records setup. I just set my DNS records up to point at this cluster, and we will get a LetsEncrypt TLS certificate, so our installation is now secured on the https://openfaas.example.com domain.

Now that is actually it. We have openfaas installed and secured with TLS in 3 commands, but let’s just go through an example function to validate the installation

Let’s grab the OpenFaaS Cli

 
 
 ($) (curl  - sSL 
  https://cli.openfaas.com |  sudo  sh   # We need to login, so let's grab our password and login   $   export   OPENFAAS_URL 
  
=
  "https://openfaas.example.com"   $ PASSWORD  
 (=)  (
  kubectl get secret  - n 

openfaas basic-auth - o jsonpath

=  "{. data.basic-auth-password}"  |  (base)    - decode   ; 
  echo  )   $   echo   $ PASSWORD  | faas-cli login  - username  

- password-stdin

    

Now we can deploy an example function

 
 
 ($  faas-cli store deploy figlet   # And test it out with    $   echo   “IT'S WORKING”  | faas-cli invoke figlet   ___ _____ _ ____ __ _____ ____ _ _____ _ _ ____ | _ _ | _ _  (
 

)
 ___ |     / / _   |  _ 
  | 

| / / _ _ |

 | / ___ |  | | | | | /   _  __    
   

/ / / | | | | _ ) '/ | || | | | _  | | | | ___) | V V / | | _ | | _ Where has it come from?

It was spun out of the k3sup codebase to allow the k3sup cli to be lean and focused on creating k3s clusters.

While the k3sup app install commands work on any kuberentes cluster, there were some people who wouldn't even look at its functionality because they thought it was just for k3s clusters. It’s not! It installs helm charts and applications onto any kubernetes cluster using strongly typed flags and sensible defenders, while still allowing users to set the more obscure helm flags when they need to.

This new direction will allow the arkade cli to be more focused on providing cluster admins with the abstractions to let them move faster with more safety.

Get involved

  

Arkade is on github, so pop over and give it a star to show your support.

You can chat to the developers on the OpenFaaS slack about new features, how you can contribute and more!

  
   Read More     

What do you think?

Leave a Reply

Your email address will not be published. Required fields are marked *

GIPHY App Key not set. Please check settings

Cactus Custody Crypto Management System Launches 2.0 Version With Six Enhancements, Crypto Coins News

Cactus Custody Crypto Management System Launches 2.0 Version With Six Enhancements, Crypto Coins News

UAE Cycling Tour: 167 people quarantined in Abu Dhabi free of coronavirus