ClusterManager: Implements support of remote clusters.
After this change users will be able to:
* Create cluster and add/remove servers to it
* Install apps on remote cluster
* Move already installed apps between clusters
* Apps running on server being removed will auto-migrate
to another server from that same cluster
This is achieved by:
* Installing and running minimal version of dodo on remote cluster
* Ingress-nginx is installed automatically on new clusters
* Next to nginx we run VPN client in the same pod, so that
default cluster can establish secure communication with it
* Multiple reverse proxies are configured to get to the
remote cluster service from ingress installed on default cluster.
Next steps:
* Support remote clusters in dodo apps (prototype ready)
* Clean up old cluster when moving app to the new one. Currently
old cluster keeps running app pods even though no ingress can
reach it anymore.
Change-Id: Iffc908c93416d4126a8e1c2832eae7b659cb8044
diff --git a/charts/ingress/templates/install.yaml b/charts/ingress/templates/install.yaml
index c50a741..edae330 100644
--- a/charts/ingress/templates/install.yaml
+++ b/charts/ingress/templates/install.yaml
@@ -3,8 +3,10 @@
metadata:
name: ingress-{{ .Values.domain }}
namespace: {{ .Release.Namespace }}
- {{- if or .Values.certificateIssuer .Values.appRoot }}
annotations:
+ {{- if .Values.annotations }}
+ {{ toYaml .Values.annotations | nindent 4 }}
+ {{- end }}
{{- if .Values.certificateIssuer }}
acme.cert-manager.io/http01-edit-in-place: "true"
cert-manager.io/cluster-issuer: {{ .Values.certificateIssuer }}
@@ -13,7 +15,6 @@
{{- if .Values.appRoot }}
nginx.ingress.kubernetes.io/app-root: {{ .Values.appRoot }}
{{- end }}
- {{- end }}
spec:
ingressClassName: {{ .Values.ingressClassName }}
{{- if .Values.certificateIssuer }}
diff --git a/charts/ingress/values.yaml b/charts/ingress/values.yaml
index 0640557..20c1eb8 100644
--- a/charts/ingress/values.yaml
+++ b/charts/ingress/values.yaml
@@ -7,3 +7,4 @@
port:
number: 80
name: ""
+annotations: {}