From c124e9e1efaaf33a3669a0a6101ff8a0f9aa3f5f Mon Sep 17 00:00:00 2001 From: eiximenis Date: Mon, 30 Sep 2019 11:36:51 +0200 Subject: [PATCH] ApiGW added to mesh. Ingress updated for Linkerd --- k8s/helm/apigwmm/templates/deployment.yaml | 4 ++++ k8s/helm/apigwmm/templates/ingress.yaml | 5 +++++ k8s/helm/apigwms/templates/deployment.yaml | 4 ++++ k8s/helm/apigwms/templates/ingress.yaml | 5 +++++ k8s/helm/apigwwm/templates/deployment.yaml | 4 ++++ k8s/helm/apigwwm/templates/ingress.yaml | 7 ++++++- k8s/helm/apigwws/templates/deployment.yaml | 4 ++++ k8s/helm/apigwws/templates/ingress.yaml | 5 +++++ k8s/helm/basket-api/templates/ingress.yaml | 5 +++++ k8s/helm/catalog-api/templates/ingress.yaml | 5 +++++ k8s/helm/deploy-all.ps1 | 9 +++++---- .../templates/ingress-dockerk8s.yaml | 5 +++++ k8s/helm/identity-api/templates/ingress.yaml | 5 +++++ k8s/helm/ingress_values.yaml | 1 + k8s/helm/ingress_values_linkerd.yaml | 16 ++++++++++++++++ k8s/helm/locations-api/templates/ingress.yaml | 5 +++++ k8s/helm/marketing-api/templates/ingress.yaml | 5 +++++ .../mobileshoppingagg/templates/ingress.yaml | 5 +++++ k8s/helm/webhooks-api/templates/ingress.yaml | 5 +++++ k8s/helm/webmvc/templates/ingress-dockerk8s.yaml | 5 +++++ k8s/helm/webmvc/templates/ingress.yaml | 5 +++++ k8s/helm/webshoppingagg/templates/ingress.yaml | 5 +++++ k8s/helm/webspa/templates/ingress.yaml | 5 +++++ k8s/helm/webstatus/templates/ingress.yaml | 5 +++++ 24 files changed, 124 insertions(+), 5 deletions(-) create mode 100644 k8s/helm/ingress_values_linkerd.yaml diff --git a/k8s/helm/apigwmm/templates/deployment.yaml b/k8s/helm/apigwmm/templates/deployment.yaml index 384667243..f93706bb9 100644 --- a/k8s/helm/apigwmm/templates/deployment.yaml +++ b/k8s/helm/apigwmm/templates/deployment.yaml @@ -22,6 +22,10 @@ spec: labels: app: {{ template "apigwmm.name" . }} release: {{ .Release.Name }} + {{ if .Values.inf.mesh.enabled -}} + annotations: + linkerd.io/inject: enabled + {{- end }} spec: {{ if .Values.inf.registry -}} imagePullSecrets: diff --git a/k8s/helm/apigwmm/templates/ingress.yaml b/k8s/helm/apigwmm/templates/ingress.yaml index 290aac0b3..932252400 100644 --- a/k8s/helm/apigwmm/templates/ingress.yaml +++ b/k8s/helm/apigwmm/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/apigwms/templates/deployment.yaml b/k8s/helm/apigwms/templates/deployment.yaml index 5fa27a6ea..2c5703103 100644 --- a/k8s/helm/apigwms/templates/deployment.yaml +++ b/k8s/helm/apigwms/templates/deployment.yaml @@ -22,6 +22,10 @@ spec: labels: app: {{ template "apigwms.name" . }} release: {{ .Release.Name }} + {{ if .Values.inf.mesh.enabled -}} + annotations: + linkerd.io/inject: enabled + {{- end }} spec: {{ if .Values.inf.registry -}} imagePullSecrets: diff --git a/k8s/helm/apigwms/templates/ingress.yaml b/k8s/helm/apigwms/templates/ingress.yaml index e93ddc2c6..5efb36868 100644 --- a/k8s/helm/apigwms/templates/ingress.yaml +++ b/k8s/helm/apigwms/templates/ingress.yaml @@ -15,6 +15,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/apigwwm/templates/deployment.yaml b/k8s/helm/apigwwm/templates/deployment.yaml index 492fc019f..6ceb1fa1b 100644 --- a/k8s/helm/apigwwm/templates/deployment.yaml +++ b/k8s/helm/apigwwm/templates/deployment.yaml @@ -22,6 +22,10 @@ spec: labels: app: {{ template "apigwwm.name" . }} release: {{ .Release.Name }} + {{ if .Values.inf.mesh.enabled -}} + annotations: + linkerd.io/inject: enabled + {{- end }} spec: {{ if .Values.inf.registry -}} imagePullSecrets: diff --git a/k8s/helm/apigwwm/templates/ingress.yaml b/k8s/helm/apigwwm/templates/ingress.yaml index 297fea52b..03b3d9d6a 100644 --- a/k8s/helm/apigwwm/templates/ingress.yaml +++ b/k8s/helm/apigwwm/templates/ingress.yaml @@ -1,4 +1,4 @@ -{{- if .Values.ingress.enabled -}} +รง{{- if .Values.ingress.enabled -}} {{- $ingressPath := include "pathBase" . -}} {{- $serviceName := .Values.app.svc.webmarketingapigw -}} @@ -15,6 +15,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/apigwws/templates/deployment.yaml b/k8s/helm/apigwws/templates/deployment.yaml index c0afcb1d9..3aedde6dd 100644 --- a/k8s/helm/apigwws/templates/deployment.yaml +++ b/k8s/helm/apigwws/templates/deployment.yaml @@ -21,6 +21,10 @@ spec: labels: app: {{ template "apigwws.name" . }} release: {{ .Release.Name }} + {{ if .Values.inf.mesh.enabled -}} + annotations: + linkerd.io/inject: enabled + {{- end }} spec: {{ if .Values.inf.registry -}} imagePullSecrets: diff --git a/k8s/helm/apigwws/templates/ingress.yaml b/k8s/helm/apigwws/templates/ingress.yaml index 8bd2cfc6d..b536f2dc9 100644 --- a/k8s/helm/apigwws/templates/ingress.yaml +++ b/k8s/helm/apigwws/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/basket-api/templates/ingress.yaml b/k8s/helm/basket-api/templates/ingress.yaml index f99bd55a6..83745a1fe 100644 --- a/k8s/helm/basket-api/templates/ingress.yaml +++ b/k8s/helm/basket-api/templates/ingress.yaml @@ -15,6 +15,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/catalog-api/templates/ingress.yaml b/k8s/helm/catalog-api/templates/ingress.yaml index 238d7b07e..234be0826 100644 --- a/k8s/helm/catalog-api/templates/ingress.yaml +++ b/k8s/helm/catalog-api/templates/ingress.yaml @@ -15,6 +15,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/deploy-all.ps1 b/k8s/helm/deploy-all.ps1 index 66f9ac3b3..a30cc10b9 100644 --- a/k8s/helm/deploy-all.ps1 +++ b/k8s/helm/deploy-all.ps1 @@ -13,7 +13,8 @@ Param( [parameter(Mandatory=$false)][bool]$useLocalk8s=$false, [parameter(Mandatory=$false)][bool]$useMesh=$true, [parameter(Mandatory=$false)][string][ValidateSet('Always','IfNotPresent','Never', IgnoreCase=$false)]$imagePullPolicy="Always", - [parameter(Mandatory=$false)][string]$chartsToDeploy="*" + [parameter(Mandatory=$false)][string]$chartsToDeploy="*", + [parameter(Mandatory=$false)][string]$ingressMeshAnnotationsFile="ingress_values_linkerd.yaml" ) $dns = $externalDns @@ -83,11 +84,11 @@ if ($deployCharts) { if ($chartsToDeploy -eq "*" -or $chartsToDeploy.Contains($chart)) { Write-Host "Installing: $chart" -ForegroundColor Green if ($useCustomRegistry) { - helm install --set inf.registry.server=$registry --set inf.registry.login=$dockerUser --set inf.registry.pwd=$dockerPassword --set inf.registry.secretName=eshop-docker-scret --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --set image.tag=$imageTag --set image.pullPolicy=$imagePullPolicy --set inf.mesh.enabled=$useMesh --set inf.k8s.local=$useLocalk8s --name="$appName-$chart" $chart + helm install --set inf.registry.server=$registry --set inf.registry.login=$dockerUser --set inf.registry.pwd=$dockerPassword --set inf.registry.secretName=eshop-docker-scret --values app.yaml --values inf.yaml --values $ingressValuesFile --values $ingressMeshAnnotationsFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --set image.tag=$imageTag --set image.pullPolicy=$imagePullPolicy --set inf.mesh.enabled=$useMesh --set inf.k8s.local=$useLocalk8s --name="$appName-$chart" $chart } else { if ($chart -ne "eshop-common") { # eshop-common is ignored when no secret must be deployed - helm install --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --set image.tag=$imageTag --set image.pullPolicy=$imagePullPolicy --set inf.mesh.enabled=$useMesh --set inf.k8s.local=$useLocalk8s --name="$appName-$chart" $chart + helm install --values app.yaml --values inf.yaml --values $ingressValuesFile --values $ingressMeshAnnotationsFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --set image.tag=$imageTag --set image.pullPolicy=$imagePullPolicy --set inf.mesh.enabled=$useMesh --set inf.k8s.local=$useLocalk8s --name="$appName-$chart" $chart } } } @@ -96,7 +97,7 @@ if ($deployCharts) { foreach ($chart in $gateways) { if ($chartsToDeploy -eq "*" -or $chartsToDeploy.Contains($chart)) { Write-Host "Installing Api Gateway Chart: $chart" -ForegroundColor Green - helm install --values app.yaml --values inf.yaml --values $ingressValuesFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --set image.pullPolicy=$imagePullPolicy --set inf.mesh.enabled=$useMesh --name="$appName-$chart" $chart + helm install --values app.yaml --values inf.yaml --values $ingressValuesFile --values $ingressMeshAnnotationsFile --set app.name=$appName --set inf.k8s.dns=$dns --set "ingress.hosts={$dns}" --set image.pullPolicy=$imagePullPolicy --set inf.mesh.enabled=$useMesh --name="$appName-$chart" $chart } } } diff --git a/k8s/helm/identity-api/templates/ingress-dockerk8s.yaml b/k8s/helm/identity-api/templates/ingress-dockerk8s.yaml index bcc47f1e4..b6a8980f2 100644 --- a/k8s/helm/identity-api/templates/ingress-dockerk8s.yaml +++ b/k8s/helm/identity-api/templates/ingress-dockerk8s.yaml @@ -16,6 +16,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: rules: - http: diff --git a/k8s/helm/identity-api/templates/ingress.yaml b/k8s/helm/identity-api/templates/ingress.yaml index 1d2d3d5d5..56ce5d8bf 100644 --- a/k8s/helm/identity-api/templates/ingress.yaml +++ b/k8s/helm/identity-api/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/ingress_values.yaml b/k8s/helm/ingress_values.yaml index 1f8b379b2..5f4d653c0 100644 --- a/k8s/helm/ingress_values.yaml +++ b/k8s/helm/ingress_values.yaml @@ -5,3 +5,4 @@ ingress: kubernetes.io/ingress.class: addon-http-application-routing ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/ssl-redirect: "false" + diff --git a/k8s/helm/ingress_values_linkerd.yaml b/k8s/helm/ingress_values_linkerd.yaml new file mode 100644 index 000000000..f85a3a57f --- /dev/null +++ b/k8s/helm/ingress_values_linkerd.yaml @@ -0,0 +1,16 @@ +# This file contains extra annotations to make Linkerd work with ingress. +# ingress.mesh.annotations are inserted into ingress.annotations of the resource being generated, if mesh is deployed +# +# It is designed to work with NGINX ingress controller or the Http Application Routing +# +# Check https://linkerd.io/2/tasks/using-ingress/ for more info or other ingress controllers +# +# If using your custom file, use -ingressMeshAnnotationsFile parameter in deploy-all.ps1 + +ingress: + mesh: + annotations: + nginx.ingress.kubernetes.io/configuration-snippet: | + proxy_set_header l5d-dst-override $service_name.$namespace.svc.cluster.local:$service_port; + proxy_hide_header l5d-remote-ip; + proxy_hide_header l5d-server-id; \ No newline at end of file diff --git a/k8s/helm/locations-api/templates/ingress.yaml b/k8s/helm/locations-api/templates/ingress.yaml index 8c846944e..5254ba5c0 100644 --- a/k8s/helm/locations-api/templates/ingress.yaml +++ b/k8s/helm/locations-api/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/marketing-api/templates/ingress.yaml b/k8s/helm/marketing-api/templates/ingress.yaml index 7a5b29b12..94c470f49 100644 --- a/k8s/helm/marketing-api/templates/ingress.yaml +++ b/k8s/helm/marketing-api/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/mobileshoppingagg/templates/ingress.yaml b/k8s/helm/mobileshoppingagg/templates/ingress.yaml index 6c50a574e..c87af986b 100644 --- a/k8s/helm/mobileshoppingagg/templates/ingress.yaml +++ b/k8s/helm/mobileshoppingagg/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/webhooks-api/templates/ingress.yaml b/k8s/helm/webhooks-api/templates/ingress.yaml index debf0f84a..1f46b2eb6 100644 --- a/k8s/helm/webhooks-api/templates/ingress.yaml +++ b/k8s/helm/webhooks-api/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/webmvc/templates/ingress-dockerk8s.yaml b/k8s/helm/webmvc/templates/ingress-dockerk8s.yaml index 385369a7f..72e043039 100644 --- a/k8s/helm/webmvc/templates/ingress-dockerk8s.yaml +++ b/k8s/helm/webmvc/templates/ingress-dockerk8s.yaml @@ -16,6 +16,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: rules: - http: diff --git a/k8s/helm/webmvc/templates/ingress.yaml b/k8s/helm/webmvc/templates/ingress.yaml index 892fa4273..1195bd4a6 100644 --- a/k8s/helm/webmvc/templates/ingress.yaml +++ b/k8s/helm/webmvc/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/webshoppingagg/templates/ingress.yaml b/k8s/helm/webshoppingagg/templates/ingress.yaml index 742db4d30..8993b1b09 100644 --- a/k8s/helm/webshoppingagg/templates/ingress.yaml +++ b/k8s/helm/webshoppingagg/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/webspa/templates/ingress.yaml b/k8s/helm/webspa/templates/ingress.yaml index 85419f8e7..aeb9a4a49 100644 --- a/k8s/helm/webspa/templates/ingress.yaml +++ b/k8s/helm/webspa/templates/ingress.yaml @@ -13,6 +13,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: diff --git a/k8s/helm/webstatus/templates/ingress.yaml b/k8s/helm/webstatus/templates/ingress.yaml index 1ab4e5e22..bad11ae77 100644 --- a/k8s/helm/webstatus/templates/ingress.yaml +++ b/k8s/helm/webstatus/templates/ingress.yaml @@ -14,6 +14,11 @@ metadata: annotations: {{ toYaml . | indent 4 }} {{- end }} +{{- if .Values.inf.mesh.enabled }} +{{- with .Values.ingress.mesh.annotations }} +{{ toYaml . | indent 4 }} +{{- end }} +{{- end }} spec: {{- if .Values.ingress.tls }} tls: