openvk/install/automated/kubernetes/README.md
Artem Vetrov 677e147688
CI for OpenVK, Kubernetes and Docker deployments (#735)
* Kubernetes deployment

* Update kubernetes deployment

* Fix rewrite module load

* Fix mysql-primary bootstrap

* Fix mysql init-db apply order

* Fix init-db.sql permissions

* Fix MySQL missing *.sql import

* Switch from MySQL to MariaDB

* [skip ci] Example deployment update

* Set root app in chandler configmap

* Update missing php extension in base images

* Update missing dependency in apache image

* Remove default site configuration

* [skip ci] Split Kubernetes deployments by type

* Explicitly set persistent volume for openvk storage

* [skip ci] Add README for Kubernetes

* Replace old docker(-compose) files w/ new ones

* Add README for docker usage

* [skip ci] Update README.md and README_RU.md

* [skip ci] Fix eventdb DB name

* [skip ci] Kubernetes configmap: missing namespace

* [skip ci] Fix typo

* [skip ci] Ignore chandler.yml

* [skip ci] Missing /var/log/openvk volume

* [skip ci] Workaround for Docker <=20.10.6

* [skip ci] Handle permissions for apache2

* [skip ci] Initial Kafka support

* [skip ci] Kafka values for Kubernetes
2022-10-30 14:44:14 +03:00

1.6 KiB

Kubernetes deployment

  • Open manifests/001-configmap.yaml in your favorite editor, point websiteUrl to your domain name, then generate unique secret value for chandler.yml section.
  • Open manifests/002-pvc.yaml in your favorite editor and set necessary annotations for your storage class. Depending on your Kubernetes version, you may also need to set storageClassName in spec section.
  • Open manifests/005-ingress.yaml in your favorite editor and set necessary annotations for your ingress controller, then point host to your domain name. Depending on your Kubernetes version, you may also need to set ingressClassName in spec section.
  • (optional) if you don't want to use ingress (e.g. when testing locally w/ minikube), you can open manifests/004-svc.yaml and set type: LoadBalancer for openvk-svc and other services.
  • (optional) if you don't need adminer or phpmyadmin, you can open manifests/003-deployment.yaml and set replicas: 0 for adminer and phpmyadmin deployments.

Apply order

Namespace:

kubectl apply -f manifests/000-ns.yaml

Configmap:

kubectl apply -f manifests/001-configmap.yaml

PVCs:

kubectl apply -f manifests/002-pvc.yaml

Deployments:

kubectl apply -f manifests/003-deployment.yaml

Services:

kubectl apply -f manifests/004-svc.yaml

Ingress:

kubectl apply -f manifests/005-ingress.yaml

Kafka (optional, enable in configmap first):

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install kafka bitnami/kafka -n openvk -f manifests/006-kafka-values.yaml