From 132cd16d842cf64533d9e4121e2eb1eef2d82ccd Mon Sep 17 00:00:00 2001 From: Noah Krause Date: Mon, 11 Nov 2019 16:32:06 -0500 Subject: [PATCH] [stable/ambassador] Number of improvements (#18516) * Should leave getambassador.io/config uncommented to avoid confusion Signed-off-by: Noah Krause * Redis is required for Ambassador Pro not just rl Signed-off-by: Noah Krause * move crds to individual files in single dir Signed-off-by: Noah Krause * Make crds.keep: false functional again Signed-off-by: Noah Krause * crds.keep: false now works on pro Signed-off-by: Noah Krause * bump chart version Signed-off-by: Noah Krause * Only the release that creates crds can delete Signed-off-by: Noah Krause * add ci test for crds creation/deletion Signed-off-by: Noah Krause * Add clarification to values.yaml Signed-off-by: Noah Krause * Update readme with notes on the crds flags Signed-off-by: Noah Krause * trailing spaces are dumb Signed-off-by: Noah Krause * fix startup error Signed-off-by: Noah Krause --- stable/ambassador/Chart.yaml | 2 +- stable/ambassador/README.md | 12 + stable/ambassador/ci/crds.yaml | 6 + .../templates/ambassador-pro-crd.yaml | 73 ----- .../templates/ambassador-pro-ratelimit.yaml | 57 +--- .../templates/ambassador-pro-redis.yaml | 54 ++++ stable/ambassador/templates/crd-delete.yaml | 40 +++ .../ambassador/templates/crd/authservice.yaml | 27 ++ .../templates/crd/consulresolver.yaml | 27 ++ stable/ambassador/templates/crd/filter.yaml | 29 ++ .../templates/crd/filterpolicy.yaml | 29 ++ .../crd/kubernetesendpointresolver.yaml | 27 ++ .../crd/kubernetesserviceresolver.yaml | 27 ++ stable/ambassador/templates/crd/mapping.yaml | 27 ++ stable/ambassador/templates/crd/module.yaml | 27 ++ .../ambassador/templates/crd/ratelimit.yaml | 29 ++ .../templates/crd/ratelimitservice.yaml | 27 ++ .../ambassador/templates/crd/tcpmapping.yaml | 27 ++ .../ambassador/templates/crd/tlscontext.yaml | 27 ++ .../templates/crd/tracingservice.yaml | 27 ++ stable/ambassador/templates/crds-rbac.yaml | 7 +- stable/ambassador/templates/crds.yaml | 281 ------------------ stable/ambassador/values.yaml | 12 +- 23 files changed, 486 insertions(+), 415 deletions(-) create mode 100644 stable/ambassador/ci/crds.yaml delete mode 100644 stable/ambassador/templates/ambassador-pro-crd.yaml create mode 100644 stable/ambassador/templates/ambassador-pro-redis.yaml create mode 100644 stable/ambassador/templates/crd-delete.yaml create mode 100644 stable/ambassador/templates/crd/authservice.yaml create mode 100644 stable/ambassador/templates/crd/consulresolver.yaml create mode 100644 stable/ambassador/templates/crd/filter.yaml create mode 100644 stable/ambassador/templates/crd/filterpolicy.yaml create mode 100644 stable/ambassador/templates/crd/kubernetesendpointresolver.yaml create mode 100644 stable/ambassador/templates/crd/kubernetesserviceresolver.yaml create mode 100644 stable/ambassador/templates/crd/mapping.yaml create mode 100644 stable/ambassador/templates/crd/module.yaml create mode 100644 stable/ambassador/templates/crd/ratelimit.yaml create mode 100644 stable/ambassador/templates/crd/ratelimitservice.yaml create mode 100644 stable/ambassador/templates/crd/tcpmapping.yaml create mode 100644 stable/ambassador/templates/crd/tlscontext.yaml create mode 100644 stable/ambassador/templates/crd/tracingservice.yaml delete mode 100644 stable/ambassador/templates/crds.yaml diff --git a/stable/ambassador/Chart.yaml b/stable/ambassador/Chart.yaml index 50b1e0a7f1..39377b410d 100644 --- a/stable/ambassador/Chart.yaml +++ b/stable/ambassador/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: 0.85.0 description: A Helm chart for Datawire Ambassador name: ambassador -version: 4.4.4 +version: 4.4.5 icon: https://www.getambassador.io/images/logo.png home: https://www.getambassador.io/ sources: diff --git a/stable/ambassador/README.md b/stable/ambassador/README.md index acf73acf3c..b57eb151b4 100755 --- a/stable/ambassador/README.md +++ b/stable/ambassador/README.md @@ -121,6 +121,18 @@ The following tables lists the configurable parameters of the Ambassador chart a **NOTE:** Make sure the configured `service.http.targetPort` and `service.https.targetPort` ports match your [Ambassador Module's](https://www.getambassador.io/reference/modules/#the-ambassador-module) `service_port` and `redirect_cleartext_from` configurations. +### CRDs + +This helm chart includes the creation of the core CRDs Ambassador uses for +configuration. + +The `crds` flags let you configure how a release manages crds. +- `crds.create` Can only be set on your first/master Ambassador release. +- `crds.enabled` Should be set on all releases using Ambassador CRDs +- `crds.keep` Configures if the CRDs are deleted when the master release is + purged. This value is only checked for the master release and can be set to + any value on secondary releases. + ### Annotations Ambassador configuration is done through annotations on Kubernetes services or Custom Resource Definitions (CRDs). The `service.annotations` section of the values file contains commented out examples of [Ambassador Module](https://www.getambassador.io/reference/core/ambassador) and a global [TLSContext](https://www.getambassador.io/reference/core/tls) configurations which are typically created in the Ambassador service. diff --git a/stable/ambassador/ci/crds.yaml b/stable/ambassador/ci/crds.yaml new file mode 100644 index 0000000000..5634f38637 --- /dev/null +++ b/stable/ambassador/ci/crds.yaml @@ -0,0 +1,6 @@ +env: + AMBASSADOR_NO_KUBEWATCH: no_kubewatch + +crds: + create: true + keep: false \ No newline at end of file diff --git a/stable/ambassador/templates/ambassador-pro-crd.yaml b/stable/ambassador/templates/ambassador-pro-crd.yaml deleted file mode 100644 index 9718546b34..0000000000 --- a/stable/ambassador/templates/ambassador-pro-crd.yaml +++ /dev/null @@ -1,73 +0,0 @@ -{{- if .Values.pro.enabled -}} -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: filterpolicies.getambassador.io - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1beta2 - versions: - - name: v1beta2 - served: true - storage: true - scope: Namespaced - names: - plural: filterpolicies - singular: filterpolicy - kind: FilterPolicy - shortNames: - - fp ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: filters.getambassador.io - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1beta2 - versions: - - name: v1beta2 - served: true - storage: true - scope: Namespaced - names: - plural: filters - singular: filter - kind: Filter - shortNames: - - fil ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: ratelimits.getambassador.io - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true - scope: Namespaced - names: - plural: ratelimits - singular: ratelimit - kind: RateLimit - shortNames: - - rl -{{- end -}} diff --git a/stable/ambassador/templates/ambassador-pro-ratelimit.yaml b/stable/ambassador/templates/ambassador-pro-ratelimit.yaml index f0678b5b5d..15afded7e4 100644 --- a/stable/ambassador/templates/ambassador-pro-ratelimit.yaml +++ b/stable/ambassador/templates/ambassador-pro-ratelimit.yaml @@ -1,5 +1,4 @@ -{{ if and .Values.pro.enabled .Values.pro.rateLimit.enabled }} -{{- if .Values.crds.enabled }} +{{ if and .Values.pro.enabled .Values.crds.enabled }} --- apiVersion: getambassador.io/v1 kind: RateLimitService @@ -10,58 +9,4 @@ spec: ambassador_id: {{ .Values.env.AMBASSADOR_ID | quote }} {{- end }} service: 127.0.0.1:{{ .Values.pro.ports.ratelimit }} - -{{- end }} ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ include "ambassador.fullname" . }}-pro-redis - labels: - app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - {{- toYaml .Values.pro.rateLimit.redis.annotations.service | nindent 4}} -spec: - type: ClusterIP - ports: - - port: 6379 - targetPort: 6379 - selector: - app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis - app.kubernetes.io/instance: {{ .Release.Name }} ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "ambassador.fullname" . }}-pro-redis - labels: - app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - {{- toYaml .Values.pro.rateLimit.redis.annotations.deployment | nindent 4}} -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis - app.kubernetes.io/instance: {{ .Release.Name }} - template: - metadata: - labels: - app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis - app.kubernetes.io/instance: {{ .Release.Name }} - spec: - containers: - - name: redis - image: redis:5.0.1 - restartPolicy: Always - resources: - {{- toYaml .Values.pro.rateLimit.redis.resources | nindent 8 }} {{ end }} \ No newline at end of file diff --git a/stable/ambassador/templates/ambassador-pro-redis.yaml b/stable/ambassador/templates/ambassador-pro-redis.yaml new file mode 100644 index 0000000000..563c5b8f20 --- /dev/null +++ b/stable/ambassador/templates/ambassador-pro-redis.yaml @@ -0,0 +1,54 @@ +{{ if and .Values.pro.enabled }} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ include "ambassador.fullname" . }}-pro-redis + labels: + app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + {{- toYaml .Values.pro.rateLimit.redis.annotations.service | nindent 4}} +spec: + type: ClusterIP + ports: + - port: 6379 + targetPort: 6379 + selector: + app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis + app.kubernetes.io/instance: {{ .Release.Name }} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "ambassador.fullname" . }}-pro-redis + labels: + app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + {{- toYaml .Values.pro.rateLimit.redis.annotations.deployment | nindent 4}} +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis + app.kubernetes.io/instance: {{ .Release.Name }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "ambassador.fullname" . }}-pro-redis + app.kubernetes.io/instance: {{ .Release.Name }} + spec: + containers: + - name: redis + image: redis:5.0.1 + resources: + {{- toYaml .Values.pro.rateLimit.redis.resources | nindent 10 }} + restartPolicy: Always +{{ end }} \ No newline at end of file diff --git a/stable/ambassador/templates/crd-delete.yaml b/stable/ambassador/templates/crd-delete.yaml new file mode 100644 index 0000000000..ee4e1826db --- /dev/null +++ b/stable/ambassador/templates/crd-delete.yaml @@ -0,0 +1,40 @@ +{{- if and .Values.crds.enabled (not .Values.crds.keep)}} +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "ambassador.fullname" . }}-crd-cleanup + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-weight": "3" + "helm.sh/hook-delete-policy": hook-succeeded + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} +spec: + template: + metadata: + name: {{ include "ambassador.fullname" . }}-crd-cleanup + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + spec: + {{- if .Values.rbac.create }} + serviceAccountName: {{ include "ambassador.serviceAccountName" . }} + {{- end }} + containers: + - name: kubectl + image: "k8s.gcr.io/hyperkube:v1.12.1" + command: + - /bin/sh + - -c + - > + kubectl delete crds -l app.kubernetes.io/part-of={{ .Release.Name }} + restartPolicy: OnFailure +{{- end }} \ No newline at end of file diff --git a/stable/ambassador/templates/crd/authservice.yaml b/stable/ambassador/templates/crd/authservice.yaml new file mode 100644 index 0000000000..d380a5c16e --- /dev/null +++ b/stable/ambassador/templates/crd/authservice.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: authservices.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: authservices + singular: authservice + kind: AuthService +{{- end }} diff --git a/stable/ambassador/templates/crd/consulresolver.yaml b/stable/ambassador/templates/crd/consulresolver.yaml new file mode 100644 index 0000000000..e3f8a0481f --- /dev/null +++ b/stable/ambassador/templates/crd/consulresolver.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: consulresolvers.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: consulresolvers + singular: consulresolver + kind: ConsulResolver +{{- end }} diff --git a/stable/ambassador/templates/crd/filter.yaml b/stable/ambassador/templates/crd/filter.yaml new file mode 100644 index 0000000000..d19bc30487 --- /dev/null +++ b/stable/ambassador/templates/crd/filter.yaml @@ -0,0 +1,29 @@ +{{- if .Values.pro.enabled -}} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: filters.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1beta2 + versions: + - name: v1beta2 + served: true + storage: true + scope: Namespaced + names: + plural: filters + singular: filter + kind: Filter + shortNames: + - fil +{{- end -}} diff --git a/stable/ambassador/templates/crd/filterpolicy.yaml b/stable/ambassador/templates/crd/filterpolicy.yaml new file mode 100644 index 0000000000..ceb95666b4 --- /dev/null +++ b/stable/ambassador/templates/crd/filterpolicy.yaml @@ -0,0 +1,29 @@ +{{- if .Values.pro.enabled -}} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: filterpolicies.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1beta2 + versions: + - name: v1beta2 + served: true + storage: true + scope: Namespaced + names: + plural: filterpolicies + singular: filterpolicy + kind: FilterPolicy + shortNames: + - fp +{{- end -}} diff --git a/stable/ambassador/templates/crd/kubernetesendpointresolver.yaml b/stable/ambassador/templates/crd/kubernetesendpointresolver.yaml new file mode 100644 index 0000000000..8526c6a466 --- /dev/null +++ b/stable/ambassador/templates/crd/kubernetesendpointresolver.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: kubernetesendpointresolvers.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: kubernetesendpointresolvers + singular: kubernetesendpointresolver + kind: KubernetesEndpointResolver +{{- end }} diff --git a/stable/ambassador/templates/crd/kubernetesserviceresolver.yaml b/stable/ambassador/templates/crd/kubernetesserviceresolver.yaml new file mode 100644 index 0000000000..17cd4aab96 --- /dev/null +++ b/stable/ambassador/templates/crd/kubernetesserviceresolver.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: kubernetesserviceresolvers.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: kubernetesserviceresolvers + singular: kubernetesserviceresolver + kind: KubernetesServiceResolver +{{- end }} diff --git a/stable/ambassador/templates/crd/mapping.yaml b/stable/ambassador/templates/crd/mapping.yaml new file mode 100644 index 0000000000..aab7f82b1c --- /dev/null +++ b/stable/ambassador/templates/crd/mapping.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: mappings.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: mappings + singular: mapping + kind: Mapping +{{- end }} diff --git a/stable/ambassador/templates/crd/module.yaml b/stable/ambassador/templates/crd/module.yaml new file mode 100644 index 0000000000..339f4b343f --- /dev/null +++ b/stable/ambassador/templates/crd/module.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: modules.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: modules + singular: module + kind: Module +{{- end }} diff --git a/stable/ambassador/templates/crd/ratelimit.yaml b/stable/ambassador/templates/crd/ratelimit.yaml new file mode 100644 index 0000000000..8863b4a4c9 --- /dev/null +++ b/stable/ambassador/templates/crd/ratelimit.yaml @@ -0,0 +1,29 @@ +{{- if .Values.pro.enabled -}} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ratelimits.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1beta1 + versions: + - name: v1beta1 + served: true + storage: true + scope: Namespaced + names: + plural: ratelimits + singular: ratelimit + kind: RateLimit + shortNames: + - rl +{{- end -}} diff --git a/stable/ambassador/templates/crd/ratelimitservice.yaml b/stable/ambassador/templates/crd/ratelimitservice.yaml new file mode 100644 index 0000000000..ed912d8ebc --- /dev/null +++ b/stable/ambassador/templates/crd/ratelimitservice.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ratelimitservices.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: ratelimitservices + singular: ratelimitservice + kind: RateLimitService +{{- end }} diff --git a/stable/ambassador/templates/crd/tcpmapping.yaml b/stable/ambassador/templates/crd/tcpmapping.yaml new file mode 100644 index 0000000000..03c0f86901 --- /dev/null +++ b/stable/ambassador/templates/crd/tcpmapping.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: tcpmappings.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: tcpmappings + singular: tcpmapping + kind: TCPMapping +{{- end }} diff --git a/stable/ambassador/templates/crd/tlscontext.yaml b/stable/ambassador/templates/crd/tlscontext.yaml new file mode 100644 index 0000000000..ea3e1efaf4 --- /dev/null +++ b/stable/ambassador/templates/crd/tlscontext.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: tlscontexts.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: tlscontexts + singular: tlscontext + kind: TLSContext +{{- end }} diff --git a/stable/ambassador/templates/crd/tracingservice.yaml b/stable/ambassador/templates/crd/tracingservice.yaml new file mode 100644 index 0000000000..b454650d80 --- /dev/null +++ b/stable/ambassador/templates/crd/tracingservice.yaml @@ -0,0 +1,27 @@ +{{- if .Values.crds.create }} +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: tracingservices.getambassador.io + labels: + app.kubernetes.io/name: {{ include "ambassador.name" . }} + app.kubernetes.io/part-of: {{ .Release.Name }} + helm.sh/chart: {{ include "ambassador.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + annotations: + "helm.sh/hook": crd-install +spec: + group: getambassador.io + version: v1 + versions: + - name: v1 + served: true + storage: true + scope: Namespaced + names: + plural: tracingservices + singular: tracingservice + kind: TracingService +{{- end }} diff --git a/stable/ambassador/templates/crds-rbac.yaml b/stable/ambassador/templates/crds-rbac.yaml index 23d1731644..499decfc99 100644 --- a/stable/ambassador/templates/crds-rbac.yaml +++ b/stable/ambassador/templates/crds-rbac.yaml @@ -25,7 +25,12 @@ rules: - kubernetesendpointresolvers.getambassador.io - kubernetesserviceresolvers.getambassador.io - consulresolvers.getambassador.io - verbs: ["get", "list", "watch"] + {{- if .Values.pro.enabled }} + - filters.getambassador.io + - filterpolicies.getambassador.io + - ratelimits.getambassador.io + {{- end }} + verbs: ["get", "list", "watch", "delete"] --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding diff --git a/stable/ambassador/templates/crds.yaml b/stable/ambassador/templates/crds.yaml deleted file mode 100644 index 55796977fb..0000000000 --- a/stable/ambassador/templates/crds.yaml +++ /dev/null @@ -1,281 +0,0 @@ -{{- if .Values.crds.create }} ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: authservices.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: authservices - singular: authservice - kind: AuthService ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: consulresolvers.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: consulresolvers - singular: consulresolver - kind: ConsulResolver ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: kubernetesendpointresolvers.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: kubernetesendpointresolvers - singular: kubernetesendpointresolver - kind: KubernetesEndpointResolver ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: kubernetesserviceresolvers.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: kubernetesserviceresolvers - singular: kubernetesserviceresolver - kind: KubernetesServiceResolver ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: mappings.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: mappings - singular: mapping - kind: Mapping ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: modules.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: modules - singular: module - kind: Module ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: ratelimitservices.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: ratelimitservices - singular: ratelimitservice - kind: RateLimitService ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: tcpmappings.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: tcpmappings - singular: tcpmapping - kind: TCPMapping ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: tlscontexts.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - app.kubernetes.io/part-of: {{ .Release.Name }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: tlscontexts - singular: tlscontext - kind: TLSContext ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: tracingservices.getambassador.io - labels: - app.kubernetes.io/name: {{ include "ambassador.name" . }} - helm.sh/chart: {{ include "ambassador.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - annotations: - "helm.sh/hook": crd-install - {{ if .Values.crds.keep }} - "helm.sh/resource-policy": keep - {{ end }} -spec: - group: getambassador.io - version: v1 - versions: - - name: v1 - served: true - storage: true - scope: Namespaced - names: - plural: tracingservices - singular: tracingservice - kind: TracingService -{{- end }} diff --git a/stable/ambassador/values.yaml b/stable/ambassador/values.yaml index 6818fa8fcb..3d397b5e85 100644 --- a/stable/ambassador/values.yaml +++ b/stable/ambassador/values.yaml @@ -80,9 +80,15 @@ service: # nodePort: 30222 annotations: - # Uncomment out fields you want to use. - # See https://www.getambassador.io/reference/core/ambassador and - # https://www.getambassador.io/reference/core/tls for more info + ############################################################################# + ## Ambassador should be configured using CRD definition. If you want + ## to use annotations, the following is an example of annotating the + ## Ambassador service with global configuration manifest. + ## + ## See https://www.getambassador.io/reference/core/ambassador and + ## https://www.getambassador.io/reference/core/tls for more info + ############################################################################# + # # getambassador.io/config: | # --- # apiVersion: ambassador/v1