Files
deprecated-helm-charts/stable/ambassador
2019-04-29 13:53:36 -07:00
..
2019-04-23 13:02:00 -07:00
2019-04-29 13:53:36 -07:00
2019-04-29 13:53:36 -07:00
2019-04-29 13:53:36 -07:00

Ambassador

Ambassador is an open source, Kubernetes-native microservices API gateway built on the Envoy Proxy.

TL;DR;

$ helm install stable/ambassador

Introduction

This chart bootstraps an Ambassador deployment on a Kubernetes cluster using the Helm package manager.

Prerequisites

  • Kubernetes 1.7+

Installing the Chart

To install the chart with the release name my-release:

$ helm install --name my-release stable/ambassador

The command deploys Ambassador API gateway on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

$ helm delete --purge my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following tables lists the configurable parameters of the Ambassador chart and their default values.

Parameter Description Default
adminService.create If true, create a service for Ambassador's admin UI true
adminService.nodePort If explicit NodePort for admin service is required true
adminService.type Ambassador's admin service type to be used ClusterIP
ambassadorConfig Config thats mounted to /ambassador/ambassador-config ""
daemonSet If true, Create a daemonSet. By default Deployment controller will be created false
env Any additional environment variables for ambassador pods {}
image.pullPolicy Image pull policy IfNotPresent
image.repository Image quay.io/datawire/ambassador
image.tag Image tag 0.60.2
imagePullSecrets Image pull secrets []
namespace.name Set the AMBASSADOR_NAMESPACE environment variable metadata.namespace
scope.singleNamespace Set the AMBASSADOR_SINGLE_NAMESPACE environment variable false
podAnnotations Additional annotations for ambassador pods {}
prometheusExporter.enabled Prometheus exporter side-car enabled false
prometheusExporter.pullPolicy Image pull policy IfNotPresent
prometheusExporter.repository Prometheus exporter image prom/statsd-exporter
prometheusExporter.tag Prometheus exporter image v0.8.1
rbac.create If true, create and use RBAC resources true
rbac.namespaced If true, permissions are namespace-scoped rather than cluster-scoped false
replicaCount Number of Ambassador replicas 3
resources CPU/memory resource requests/limits {}
securityContext Set security context for pod { "runAsUser": "8888" }
service.annotations Annotations to apply to Ambassador service See "Annotations" below
service.externalTrafficPolicy Sets the external traffic policy for the service ""
service.http.enabled if port 80 should be opened for service true
service.http.nodePort If explicit NodePort is required None
service.http.port if port 443 should be opened for service true
service.http.targetPort Sets the targetPort that maps to the service's cleartext port 8080
service.https.enabled if port 443 should be opened for service true
service.https.nodePort If explicit NodePort is required None
service.https.port if port 443 should be opened for service true
service.https.targetPort Sets the targetPort that maps to the service's TLS port 8443
service.loadBalancerIP IP address to assign (if cloud provider supports it) ""
service.loadBalancerSourceRanges Passed to cloud provider load balancer if created (e.g: AWS ELB) None
service.type Service type to be used LoadBalancer
serviceAccount.create If true, create a new service account true
serviceAccount.name Service account to be used ambassador
volumeMounts Volume mounts for the ambassador service []
volumes Volumes for the ambassador service []

NOTE: Make sure the configured service.http.targetPort and service.https.targetPort ports match your Ambassador Module's service_port and redirect_cleartext_from configurations.

Annotations

The default annotation applied to the Ambassador service is

getambassador.io/config: |
  ---
  apiVersion: ambassador/v1
  kind: Module
  name: ambassador
  config:
    service_port: 8080

If you intend to use service.annotations, remember to include the getambassador.io/config annotation key as above, and remember that you'll have to escape newlines. For example, the annotation above could be defined as

service.annotations: { "getambassador.io/config": "---\napiVersion: ambassador/v1\nkind: Module\nname: ambassador\nconfig:\n  service_port: 8080" }

Specifying Values

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

$ helm upgrade --install --wait my-release \
    --set adminService.type=NodePort \
    stable/ambassador

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

$ helm upgrade --install --wait my-release -f values.yaml stable/ambassador

Upgrading

To 2.0.0

Ambassador ID

ambassador.id has been removed in favor of setting it via an environment variable in env. AMBASSADOR_ID defaults to default if not set in the environment. This is mainly used for running multiple Ambassadors in the same cluster.

Parameter Env variables
ambassador.id AMBASSADOR_ID

Migrating from datawire/ambassador chart (chart version 0.40.0 or 0.50.0)

Chart now runs ambassador as non-root by default, so you might need to update your ambassador module config to match this.

Timings

Timings values have been removed in favor of setting the env variables using `env´

Parameter Env variables
timing.restart AMBASSADOR_RESTART_TIME
timing.drain AMBASSADOR_DRAIN_TIME
timing.shutdown AMBASSADOR_SHUTDOWN_TIME

Single namespace

Parameter Env variables
namespace.single AMBASSADOR_SINGLE_NAMESPACE

Renamed values

Service ports values have changed names and target ports have new defaults.

Previous parameter New parameter New default value
service.enableHttp service.http.enabled
service.httpPort service.http.port
service.httpNodePort service.http.nodePort
service.targetPorts.http service.http.targetPort 8080
service.enableHttps service.https.enabled
service.httpsPort service.https.port
service.httpsNodePort service.https.nodePort
service.targetPorts.https service.https.targetPort 8443

Exporter sidecar

Pre version 0.50.0 ambassador was using socat and required a sidecar to export statsd metrics. In 0.50.0 ambassador no longer uses socat and doesn't need a sidecar anymore to export its statsd metrics. Statsd metrics are disabled by default and can be enabled by setting environment STATSD_ENABLED, this will (in 0.50) send metrics to a service named statsd-sink, if you want to send it to another service or namespace it can be changed by setting STATSD_HOST

If you are using prometheus the chart allows you to enable a sidecar which can export to prometheus see the prometheusExporter values.