0.9.1 • Published 6 months ago

@sctg/okteto-auto-token v0.9.1

Weekly downloads
-
License
AGPL-3.0-or-later
Repository
-
Last release
6 months ago

Okteto auto tokens library

Why

If you are working with multiple Okteto workpaces and you interact on them with kubectl it might be difficult to maintain a correct kube.config.

Idea

The main idea is to maintain only a json file describing your workspaces.
The json files is populated with some long life (180 days) personal access token. One for each Okteto context.

Start

Create a config/clusters.json according to the sample config/sample_clusters.json.

Demo tools

kubeconfig.ts

This simple typescript for generating a kube.config automatically with 1 day short life access tokens.
create a .env file:

PORT="8080"
CLUSTERS_FILE="./config/clusters.json"

index.ts

This is a sample Express server provinding 3 paths:

  • /kube.config returning a YAML formatted kube.config
  • /kube.json returning a JSON formatted kube.config
  • /token.sh returning a bash script with the long life access tokens as shell variable Simply start it with:
npm i
npm run build
npm run start

Don't repeat yourself

For using clusters.json in your bash script it is easy to generate the token variables with:
Example with yq tool:

eval `cat clusters.json | yq -r '.[] | { (.bash_token): .token} | to_entries | .[] | .key +"=" + (.value | @sh)'`

or with jq tool:

eval `cat clusters.json | jq -r '.[] | { (.bash_token): .token} | to_entries | .[] | .key + "=" + (.value | @sh)'`
0.9.1

6 months ago