Add last moment improvements

This commit is contained in:
Ildar Iskhakov 2022-06-14 18:03:17 +03:00
parent b6bbea2915
commit 84d1123b84
5 changed files with 27 additions and 59 deletions

View file

@ -1,50 +0,0 @@
Quick Start
Cluster requirements:
* ensure you can run x86-64/amd64 workloads. arm64 architecture is currently not supported
NOTE:
Default chart places the stateful services into the current installation into the cluster.
This services are provided for the convenience and are not intended for production.
They need to be properly managed, maintained and backed up.
We recommend to run stateful applications, such as MySql and RabbitMQ separately or use managed solutions
as grafana does in Grafana Cloud.
https://gitlab.com/gitlab-org/charts/gitlab/-/blob/master/doc/installation/index.md
Prerequisites:
Tools:
* kubectl v1.22
* helm v3
Infrastructure:
* kubernetes cluster. Recomended resources: X vcpu and Y Gb of RAM
Stateful services are recommended outside of the cluster using managed solutions or compute nodes
1. MySQL 5.7 database
We recommend using
2. Rabbitmq
1. Prepare the chart values
2. Install the chart
3. Finish the configuration
3.1. Get the external ip address
3.2. Set up the DNS
The external IP that is allocated to the ingress-controller is the IP to which all incoming traffic should be routed. To enable this, add it to a DNS zone you control, for example as www.example.com.
This quick-start assumes you know how to assign a DNS entry to an IP address and will do so.
3.3. Open Grafana and connect Grafana OnCall plugin to Grafana OnCall Backend
Troubleshooting:
Error: failed post-install: warning: Hook post-install oncall/templates/cert-issuer.yaml failed: Internal error occurred: failed calling webhook "webhook.cert-manager.io": failed to call webhook: Post "https://oncall-ildar-cert-manager-webhook.default.svc:443/mutate?timeout=30s": no endpoints available for service "oncall-ildar-cert-manager-webhook"
Upgrade the release
Error: failed post-install: warning: Hook post-install oncall/templates/cert-issuer.yaml failed: Internal error occurred: failed calling webhook "webhook.cert-manager.io": failed to call webhook: Post "https://oncall-ildar-cert-manager-webhook.default.svc:443/mutate?timeout=30s": no endpoints available for service "oncall-ildar-cert-manager-webhook"

View file

@ -10,6 +10,10 @@ Architecture diagram can be found [here](https://raw.githubusercontent.com/grafa
> which is not recommended for production usage. It is recommended to run stateful services such as MySQL and RabbitMQ
> separately from this release or use managed PaaS solutions. It will significantly reduce the overhead of managing them
Cluster requirements:
* ensure you can run x86-64/amd64 workloads. arm64 architecture is currently not supported
## Install
### Installing the helm chart
```bash
@ -19,7 +23,7 @@ helm install \
--wait \
--set base_url=example.com \
--set grafana."grafana\.ini".server.domain=example.com \
grafana-oncall \
oncall \
grafana/oncall
```
@ -34,7 +38,7 @@ helm upgrade \
--wait \
--set base_url=example.com \
--set grafana."grafana\.ini".server.domain=example.com \
grafana-oncall \
oncall \
grafana/oncall
```
@ -102,17 +106,17 @@ externalRabbitmq:
## Uninstall
### Uninstalling the helm chart
```bash
helm delete grafana-oncall
helm delete oncall
```
### Clean up PVC's
```bash
kubectl delete pvc data-grafana-oncall-mariadb-0 data-grafana-oncall-rabbitmq-0 \
redis-data-grafana-oncall-redis-master-0 redis-data-grafana-oncall-redis-replicas-0 \
redis-data-grafana-oncall-redis-replicas-1 redis-data-grafana-oncall-redis-replicas-2
kubectl delete pvc data-oncall-mariadb-0 data-oncall-rabbitmq-0 \
redis-data-oncall-redis-master-0 redis-data-oncall-redis-replicas-0 \
redis-data-oncall-redis-replicas-1 redis-data-oncall-redis-replicas-2
```
### Clean up secrets
```bash
kubectl delete secrets certificate-tls grafana-oncall-cert-manager-webhook-ca grafana-oncall-ingress-nginx-admission
kubectl delete secrets certificate-tls oncall-cert-manager-webhook-ca oncall-ingress-nginx-admission
```

View file

@ -16,7 +16,7 @@ TODO: Add disclaimer about stateful services, ingress controller, certificates
❗ Set up a DNS record for your domain (use A Record and "@" to point a root domain to the IP address)
Get the external IP address by running the following commands and point {{ .Values.base_url }} to it:
kubectl get ingress {{ include "oncall.engine.fullname" . }} -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
kubectl get ingress {{ include "oncall.fullname" . }} -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
Wait until the dns record got propagated.
NOTE: Check with the following command: nslookup {{ .Values.base_url }}

View file

@ -1,4 +1,4 @@
{{- if .Values.ildar.enabled }}
{{- if (index .Values "cert-manager") }}
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:

View file

@ -85,6 +85,20 @@ cert-manager:
# Set mariadb.enabled = false and configure externalMysql
mariadb:
enabled: true
auth:
database: oncall
primary:
extraEnvVars:
- name: MARIADB_COLLATE
value: utf8mb4_unicode_ci
- name: MARIADB_CHARACTER_SET
value: utf8mb4
secondary:
extraEnvVars:
- name: MARIADB_COLLATE
value: utf8mb4_unicode_ci
- name: MARIADB_CHARACTER_SET
value: utf8mb4
# Make sure to create the database with the following parameters:
# CREATE DATABASE oncall CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;