This commit is contained in:
Sebastian Mark 2021-11-28 23:36:39 +01:00
commit 18126e061b
4 changed files with 1580 additions and 0 deletions

9
README.md Normal file
View file

@ -0,0 +1,9 @@
# Kubernetes Baseline
Install:
* [NGINX Ingress Controller](https://kubernetes.github.io/ingress-nginx/)
* [cert-manager](https://cert-manager.io/)
* [metrics-server](https://github.com/bitnami/charts/tree/master/bitnami/metrics-server)
* [prometheus](https://github.com/bitnami/charts/tree/master/bitnami/kube-prometheus) and
[grafana](https://github.com/bitnami/charts/tree/master/bitnami/grafana) for ingress stats
* [keel](https://keel.sh)

20
baseline.yml Normal file
View file

@ -0,0 +1,20 @@
- hosts: localhost
gather_facts: no
connection: local
tasks:
- name: add chart repos
community.kubernetes.helm_repository:
name: "{{item.repo}}"
repo_url: "{{item.url}}"
loop: "{{helm_repos}}"
- name: install charts
community.kubernetes.helm:
name: "{{item.name}}"
chart_ref: "{{item.chart}}"
values: "{{item.vals|default(omit)}}"
release_namespace: "{{item.namespace | default(item.name)}}"
create_namespace: true
loop: "{{helm_charts}}"
- name: apply post-install manifests
k8s:
src: files/grafana-provisioning.yml

File diff suppressed because it is too large Load diff

65
group_vars/all.yml Normal file
View file

@ -0,0 +1,65 @@
---
helm_repos:
- { repo: bitnami, url: https://charts.bitnami.com/bitnami }
- { repo: ingress-nginx, url: https://kubernetes.github.io/ingress-nginx }
- { repo: jetstack, url: https://charts.jetstack.io }
- { repo: keel, url: https://charts.keel.sh }
helm_charts:
- chart: bitnami/metrics-server
name: metrics-server
namespace: metrics
vals:
apiService:
create: true
extraArgs:
kubelet-insecure-tls: true
kubelet-preferred-address-types: InternalIP
- chart: bitnami/kube-prometheus
name: prometheus
namespace: metrics
vals:
prometheus:
persistence:
enabled: true
- chart: bitnami/grafana
name: grafana
namespace: metrics
vals:
persistence:
enabled: false
dashboardsProvider:
enabled: true
datasources:
secretName: grafana-datasource
dashboardsConfigMaps:
- configMapName: grafana-dashboard
fileName: grafana-dashboard.json
- chart: ingress-nginx/ingress-nginx
name: ingress-nginx
vals:
controller:
image:
pullPolicy: Always
service:
externalTrafficPolicy: Local
metrics:
enabled: true
serviceMonitor:
enabled: true
additionalLabels:
app.kubernetes.io/instance: prometheus
- chart: jetstack/cert-manager
name: cert-manager
vals:
installCRDs: true
- chart: keel/keel
name: keel
vals:
helmProvider:
enabled: false