/waldur-helm

Packaging of Waldur as Helm application

Primary LanguageShell

Waldur

Waldur is a platform for creating hybrid cloud solutions. It allows building enterprise-grade systems and providing self-service environment for the end-users.

Introduction

This chart bootstraps a Waldur deployment on a Kubernetes cluster using the Helm package manager.

Installing prerequisites

  1. Install Kubernetes server, for example, using minikube
  2. Install Kubernetes client, ie kubetcl
  3. Install Helm

TLS configuration

Instructions for TLS configuration: doc

SAML2 configuration

You can configure SAML2 for Waldur release: instructions

Installing the Chart

  1. Add the stable repository
  helm repo add stable https://kubernetes-charts.storage.googleapis.com
  1. Install Chart dependencies:
  helm dep update waldur
  1. Setup postgresql database:

    3.1 Setup simple postgresql db: instructions, or

    3.2 Setup postgres-ha db: instructions

    NB Only one of these two options could be run. Otherwise, db will be unavailable.

  2. Install minio (for media): instructions

  3. Install RabbitMQ for task queue: instructions

  4. Install Helm package:

  # in 'waldur-helm-poc/'
  helm install waldur waldur

NB After this command, Waldur release will run in default namespace. Please, pay attention in which namespace which release is running.

For instance, you can install Waldur release in test namespace in the following way:

  1. Create test namespace:
  kubectl create namespace test
  1. Install release:
  helm install waldur waldur --namespace test

Adding admin user

Open waldur-mastermind-worker shell and execute the following command:

  1. Get waldur-mastermind-worker pod name
  # Example:
  kubectl get pods -A | grep waldur-mastermind-worker # -->
  # default       waldur-mastermind-worker-6d98cd98bd-wps8n   1/1     Running     0          9m9s
  1. Connect to pod via shell
  # Example:
  kubectl exec -it waldur-mastermind-worker-6d98cd98bd-wps8n -- /bin/bash
  1. Execute command to add admin user
  waldur createstaffuser -u user -p password -e admin@example.com

PostgreSQL backups management

Instructions for PostgreSQL backups management: doc

White-labeling

Instructions for while-labeling: doc

Custom mastermind templates

Instructions for template configuration: doc

HPA (horizontal pod autoscaler)

Instructions for HPA configuration: doc

EFL (Elasticsearch Fluentd Kibana) for log management configuration

Instructions for EFL configuration: doc

Boostrapping

Instructions for bootstrap: doc

Stress testing

Instructions for stress testing configuration using Locust: doc

Waldur Helm chart release upgrading

Delete initdb job (if exitsts):

  kubectl delete job waldur-mastermind-initdb-job || true

Upgrade Waldur dependencies and release:

  helm dep update waldur/
  helm upgrade waldur waldur/

Restart deployments to apply configmaps changes:

  kubectl rollout restart deployment waldur-mastermind-beat
  kubectl rollout restart deployment waldur-mastermind-api
  kubectl rollout restart deployment waldur-mastermind-worker
  kubectl rollout restart deployment waldur-homeport