Quickstart demo stack on Kubernetes
With this step-by-step guide kubriX with its default demo stack gets deployed on your preferred Kubernetes cluster.
Prerequisites
- check Prerequisites
- DNS-Provider which is supported by external-dns (see https://kubernetes-sigs.github.io/external-dns/latest/#new-providers )
- Kubernetes cluster with at least 4 CPU cores and 20 GB RAM
Installation steps
-
create new empty customer repo on your Git-Server (GitLab, GitHub, Gitea, ...). We fully tested this with GitHub, but others should also work.
IMPORTANT: the repo needs to be empty (also no initial README!!!)
-
create an access token for this new repo with write access
Instead of a newly created access token you can also use your personal access tokens, but this is not recommended since your personal access token has probably more permissions than needed.
-
set the repo url and token in this variables like this:
export KUBRIX_CUSTOMER_REPO="https://github.com/kubriX-demo/kubriX-demo-customerXY"
export KUBRIX_CUSTOMER_REPO_TOKEN="blabla" -
optional: set the DNS provider, which external-dns should connect to.
default: ionos
supported: ionos, route53, stackit, cloudflareexport KUBRIX_CUSTOMER_DNS_PROVIDER="ionos"
-
optional: set the domain, under which kubriX should be available.
This domain will be used by external-dns. Your provider in step 4 needs to be able to manage this domain with the credentials set in step 8.
export KUBRIX_CUSTOMER_DOMAIN="demo-johnny.kubrix.cloud"
if this variable is not set, a subdomain of "kubrix.cloud" is randomly created (for example "demo-2faf23d.kubrix.cloud")
-
optional: set the kubrix target type which should be used
export KUBRIX_CUSTOMER_TARGET_TYPE="DEMO-STACK"
if this variable is not set, "DEMO-STACK" is used.
-
create a new Kubernetes cluster and be sure that kubectl is connected to it. check with
kubectl cluster-info
-
provide external-dns secrets depending on your DNS provider
ionos
create a secret with your DNS api-key like this:
kubectl create ns external-dns
kubectl create secret generic ionos-credentials -n external-dns --from-literal=api-key='your-api-key'aws
create a
credentials
file like this:[default]
aws_access_key_id = your-key-id
aws_secret_access_key = your-access-keyand then create the secret on the K8s cluster based on this
credentials
file:kubectl create ns external-dns
kubectl create secret generic -n external-dns sx-external-dns --from-file credentialsstackit
kubectl create ns external-dns
kubectl create secret generic external-dns-webhook -n external-dns --from-literal=AUTH_TOKEN='your-auth-token'
--from-literal=PROJECT_ID='your-project-id'cloudflare
kubectl create ns external-dns
kubectl create secret generic cloudflare-api-key --from-literal=apiKey='YOUR_API_TOKEN' -
If you need to prepare something else on your cluster before kubriX gets installed, do this now.
-
Then run this command in your home directory in your linux bash:
curl -H 'Cache-Control: no-cache, no-store' https://raw.githubusercontent.com/suxess-it/kubriX/refs/heads/main/bootstrap/bootstrap.sh | bash -s
It will create a new kubriX repo based on your parameters and installs kubriX based on your created kubriX repo on your connected K8s cluster.