Installer: configure cert-manager(-webhook-gandi), kubed as part of infrastructure
diff --git a/helmfile/base/helmfile.yaml b/helmfile/base/helmfile.yaml
index d9da8e9..1a053d4 100644
--- a/helmfile/base/helmfile.yaml
+++ b/helmfile/base/helmfile.yaml
@@ -1,37 +1,109 @@
repositories:
+- name: appscode
+ url: https://charts.appscode.com/stable/
- name: ingress-nginx
url: https://kubernetes.github.io/ingress-nginx
+- name: jetstack
+ url: https://charts.jetstack.io
+- name: bwolf
+ url: https://bwolf.github.io/cert-manager-webhook-gandi
helmDefaults:
tillerless: true
+ waitForJobs: false
+ createNamespace: true
releases:
-- name: ingress-public
- chart: ingress-nginx/ingress-nginx
- version: 4.0.3
- namespace: {{ .Values.id }}-ingress-public
- createNamespace: true
+- name: kubed
+ chart: appscode/kubed
+ version: v0.12.0
+ namespace: {{ .Values.name }}-kubed
values:
- - fullnameOverride: {{ .Values.id }}-ingress-public
- - controller:
- service:
- type: LoadBalancer
- ingressClassByName: true
- ingressClassResource:
- name: {{ .Values.id }}-ingress-public
- enabled: true
- default: false
- controllerValue: k8s.io/{{ .Values.id }}-ingress-public
- config:
- proxy-body-size: 100M
- tcp:
- - 25: {{ .Values.id }}-app-maddy/maddy:25
- - 143: {{ .Values.id }}-app-maddy/maddy:143
- - 993: {{ .Values.id }}-app-maddy/maddy:993
- - 587: {{ .Values.id }}-app-maddy/maddy:587
- - 465: {{ .Values.id }}-app-maddy/maddy:465
+ - enableAnalytics: false
+ - fullnameOverride: {{ .Values.name }}-kubed
+ - operator:
+ registry: appscode
+ repository: kubed
+ tag: v0.12.0
+ - criticalAddon: true
+ - config:
+ clusterName: {{ .Values.name }}
+- name: cert-manager
+ chart: jetstack/cert-manager
+ version: v1.6
+ namespace: {{ .Values.name }}-cert-manager
+ values:
+ - installCRDs: true
+ - fullnameOverride: {{ .Values.name}}-cert-manager
+ - image:
+ tag: v1.6.1
+ pullPolicy: IfNotPresent
+ - resources:
+ requests:
+ cpu: "100m"
+ memory: "50M"
+ limits:
+ cpu: "250m"
+ memory: "150M"
+ - tolerations:
+ - key: "pcloud"
+ operator: "Equal"
+ value: "role"
+ effect: "NoSchedule"
+ - cainjector:
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "50M"
+ limits:
+ cpu: "250m"
+ memory: "150M"
+ tolerations:
+ - key: "pcloud"
+ operator: "Equal"
+ value: "role"
+ effect: "NoSchedule"
+ - webhook:
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "50M"
+ limits:
+ cpu: "250m"
+ memory: "150M"
+ tolerations:
+ - key: "pcloud"
+ operator: "Equal"
+ value: "role"
+ effect: "NoSchedule"
+- name: cert-manager-gandi
+ chart: bwolf/cert-manager-webhook-gandi
+ version: v0.2.0
+ namespace: {{ .Values.name }}-cert-manager
+ values:
+ - certManager:
+ namespace: {{ .Values.name }}-cert-manager
+ serviceAccountName: {{ .Values.name }}-cert-manager
+ - fullnameOverride: {{ .Values.name }}-cert-manager-webhook-gandi
+ - image:
+ repository: giolekva/cert-manager-webhook-gandi
+ tag: v0.2.0
+ pullPolicy: IfNotPresent
+ - logLevel: 2
+ - resources:
+ requests:
+ cpu: "100m"
+ memory: "50M"
+ limits:
+ cpu: "250m"
+ memory: "150M"
+ - tolerations:
+ - key: "pcloud"
+ operator: "Equal"
+ value: "role"
+ effect: "NoSchedule"
environments:
- shveli:
+ prod:
values:
- - id: shveli
+ - name: pcloud
diff --git a/helmfile/users/helmfile.yaml b/helmfile/users/helmfile.yaml
index 4902095..aad46b7 100644
--- a/helmfile/users/helmfile.yaml
+++ b/helmfile/users/helmfile.yaml
@@ -7,12 +7,25 @@
helmDefaults:
tillerless: true
waitForJobs: false
+ createNamespace: false
releases:
+- name: namespaces
+ chart: ../../charts/namespaces
+ namespace: {{ .Values.id }}
+ createNamespace: true
+ values:
+ - pcloudInstanceId: {{ .Values.id }}
+ - namespaces:
+ - app-maddy
+ - app-matrix
+ - app-pihole
+ - app-vaultwarden
+ - core-auth
+ - ingress-private
- name: vpn-mesh-config
chart: ../../charts/vpn-mesh-config
namespace: {{ .Values.id }}-ingress-private
- createNamespace: true
values:
- certificateAuthority:
name: {{ .Values.id }}
@@ -25,7 +38,6 @@
chart: ingress-nginx/ingress-nginx
version: 4.0.3
namespace: {{ .Values.id }}-ingress-private
- createNamespace: true
values:
- fullnameOverride: {{ .Values.id }}-nginx-private
- controller:
@@ -81,11 +93,11 @@
- name: certificate-issuer
chart: ../../charts/certificate-issuer
namespace: {{ .Values.id }}-ingress-private
- createNamespace: true
values:
+ - pcloudInstanceId: {{ .Values.id }}
- certManager:
- namespace: cert-manager
- gandiWebhookSecretReader: cert-manager-webhook-gandi
+ namespace: {{ .Values.pcloudEnvName }}-cert-manager
+ gandiWebhookSecretReader: {{ .Values.pcloudEnvName }}-cert-manager-webhook-gandi
- public:
name: {{ .Values.id }}-public
server: https://acme-v02.api.letsencrypt.org/directory
@@ -104,7 +116,6 @@
chart: bitnami/postgresql
version: 10.13.5
namespace: {{ .Values.id }}-core-auth
- createNamespace: true
values:
- fullnameOverride: postgres
- image:
@@ -129,7 +140,6 @@
- name: core-auth
chart: ../../charts/auth
namespace: {{ .Values.id }}-core-auth
- createNamespace: true
values:
- kratos:
fullnameOverride: kratos
@@ -168,14 +178,14 @@
paths:
- path: /
pathType: Prefix
- # annotations:
- # cert-manager.io/cluster-issuer: "{{ .Values.id }}-public"
- # acme.cert-manager.io/http01-edit-in-place: "true"
+ annotations:
+ cert-manager.io/cluster-issuer: "{{ .Values.id }}-public"
+ acme.cert-manager.io/http01-edit-in-place: "true"
tls:
- hosts:
- accounts.{{ .Values.domain }}
- # secretName: cert-accounts.{{ .Values.domain }}
- secretName: cert-wildcard.{{ .Values.domain }}
+ secretName: cert-accounts.{{ .Values.domain }}
+ # secretName: cert-wildcard.{{ .Values.domain }}
secret:
enabled: true
kratos:
@@ -324,14 +334,14 @@
paths:
- path: /
pathType: Prefix
- # annotations:
- # cert-manager.io/cluster-issuer: "{{ .Values.id }}-public"
- # acme.cert-manager.io/http01-edit-in-place: "true"
+ annotations:
+ cert-manager.io/cluster-issuer: "{{ .Values.id }}-public"
+ acme.cert-manager.io/http01-edit-in-place: "true"
tls:
- hosts:
- hydra.{{ .Values.domain }}
- # secretName: cert-hydra.{{ .Values.domain }}
- secretName: cert-wildcard.{{ .Values.domain }}
+ secretName: cert-hydra.{{ .Values.domain }}
+ # secretName: cert-wildcard.{{ .Values.domain }}
secret:
enabled: true
maester:
@@ -419,7 +429,6 @@
- name: vaultwarden
chart: ../../charts/vaultwarden
namespace: {{ .Values.id }}-app-vaultwarden
- createNamespace: true
values:
- image:
repository: vaultwarden/server
@@ -434,7 +443,6 @@
chart: bitnami/postgresql
version: 10.13.5
namespace: {{ .Values.id }}-app-matrix
- createNamespace: true
values:
- fullnameOverride: postgres
- image:
@@ -462,7 +470,6 @@
- name: matrix
chart: ../../charts/matrix
namespace: {{ .Values.id }}-app-matrix
- createNamespace: true
values:
- domain: {{ .Values.domain }}
- oauth2:
@@ -485,7 +492,6 @@
- name: pihole
chart: ../../charts/pihole
namespace: {{ .Values.id }}-app-pihole
- createNamespace: true
values:
- domain: {{ .Values.domain }}
- pihole:
@@ -530,7 +536,6 @@
- name: maddy
chart: ../../charts/maddy
namespace: {{ .Values.id }}-app-maddy
- createNamespace: true
values:
- ingress:
private:
@@ -551,6 +556,7 @@
secrets:
- secrets.shveli.yaml
values:
+ - pcloudEnvName: pcloud
- id: shveli
- domain: shve.li
- contactEmail: giolekva@gmail.com