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

38 lines
No EOL
1.6 KiB
Markdown

# 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
```