Back to Charts

⚠️ Repo Archive Notice

stable/dex/README.md

latest8.3 KB
Original Source

⚠️ Repo Archive Notice

As of Nov 13, 2020, charts in this repo will no longer be updated. For more information, see the Helm Charts Deprecation and Archive Notice, and Update.

dex

Dex is an identity service that uses OpenID Connect to drive authentication for other apps.

DEPRECATION NOTICE

This chart is deprecated and no longer supported. The official chart is located at dexidp/helm-charts.

Introduction

Dex acts as a portal to other identity providers through "connectors". This lets dex defer authentication to LDAP servers, SAML providers, or established identity providers like GitHub, Google, and Active Directory. Clients write their authentication logic once to talk to dex, then dex handles the protocols for a given backend.

Kubernetes authentication note

If you plan to use dex as a Kubernetes OpenID Connect token authenticator plugin you'll need to additionally deploy some helper app which will provide authentication UI for users and talk to dex.

Several helper apps are listed below:

Installing the Chart

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

sh
$ helm install --name my-release stable/dex

It'll install the chart with the default parameters. However most probably it won't work for you as-is, thus before installing the chart you need to consult the values.yaml notes as well as dex documentation.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

sh
$ helm delete --purge my-release

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

Upgrading an existing release to a new major version

A major chart version change (like v1.5.1 -> v2.0.0) indicates that there is an incompatible breaking change which requires manual actions.

Upgrade to v2.0.0

Breaking changes which should be considered and require manual actions during release upgrade:

  • ability to switch grpc and https on and off via dedicated chart parameters
  • port definition for Pod, Service and dex config re-written from scratch
  • dex config is not taken from .Values.config as-is anymore, pay attention!

See the Configuration section for the details on the parameters introduced in version 2.0.0.

Moreover, this release updates all the labels to the new recommended labels, most of them being immutable.

In order to upgrade, please update your values file and uninstall/reinstall the chart.

Configuration

Parameters introduced starting from v2

ParameterDescriptionDefault
certs.grpc.pod.annotationsAnnotations for the pod created by the grpc-certs job{}
certs.grpc.pod.affinityAffinity for the pod created by the grpc-certs job{}
certs.grpc.pod.nodeSelectornodeSelector for the pod created by the grpc-certs job{}
certs.grpc.pod.tolerationsTolerations for the pod created by the grpc-certs job[]
certs.web.pod.annotationsAnnotations for the pod created by the web-certs job{}
certs.web.pod.affinityAffinity for the pod created by the web-certs job{}
certs.web.pod.nodeSelectornodeSelector for the pod created by the web-certs job{}
certs.web.pod.tolerationsTolerations for the pod created by the web-certs job[]
config.connectorsMaps to the dex config connectors dict param{}
config.enablePasswordDBMaps to the dex config enablePasswordDB paramtrue
config.frontendMaps to the dex config frontend dict param""
config.grpc.addressdex grpc listen address127.0.0.1
config.grpc.tlsCertMaps to the dex config grpc.tlsCert param/etc/dex/tls/grpc/server/tls.crt
config.grpc.tlsClientCAMaps to the dex config grpc.tlsClientCA param/etc/dex/tls/grpc/ca/tls.crt
config.grpc.tlsKeyMaps to the dex config grpc.tlsKey param/etc/dex/tls/grpc/server/tls.key
config.issuerMaps to the dex config issuer paramhttp://dex.io:8080
config.loggerMaps to the dex config logger dict param{"level": "debug"}
config.oauth2.alwaysShowLoginScreenMaps to the dex config oauth2.alwaysShowLoginScreen paramfalse
config.oauth2.skipApprovalScreenMaps to the dex config oauth2.skipApprovalScreen paramtrue
config.staticClientsMaps to the dex config staticClients list param""
config.staticPasswordsMaps to the dex config staticPasswords list param""
config.storageMaps to the dex config storage dict param{"type": "kubernetes", "config": {"inCluster": true}}
config.web.addressdex http/https listen address0.0.0.0
config.web.tlsCertMaps to the dex config web.tlsCert param/etc/dex/tls/https/server/tls.crt
config.web.tlsKeyMaps to the dex config web.tlsKey param/etc/dex/tls/https/server/tls.key
config.web.allowedOriginsMaps to the dex config web.allowedOrigins param[]
config.expiry.signingKeysMaps to the dex config expiry.signingKeys param6h
config.expiry.idTokensMaps to the dex config expiry.idTokens param24h
crd.presentWhether dex's CRDs are already present (if not cluster role and cluster role binding will be created to enable dex to create them). Depends on rbac.createfalse
grpcEnable dex grpc endpointtrue
httpsEnable TLS termination for the dex http endpointfalse
podLabelsCustom pod labels{}
ports.grpc.containerPortgrpc port listened by the dex5000
ports.grpc.nodePortK8S Service node port for the dex grpc listener35000
ports.grpc.servicePortK8S Service port for the dex grpc listener35000
ports.web.containerPorthttp/https port listened by the dex5556
ports.web.nodePortK8S Service node port for the dex http/https listener32000
ports.web.servicePortK8S Service port for the dex http/https listener32000
rbac.createIf true, create & use RBAC resourcestrue
securityContextAllow setting the securityContext of the main dex deployment``
service.loadBalancerIPIP override for K8S LoadBalancer Service""
livenessProbe.enabledk8s liveness probe enabled (cannot be enabled when https = true)false
livenessProbe.pathk8s liveness probe http path"/healthz"
livenessProbe.initialDelaySecondsNumber of seconds after the container has started before liveness probe is initiated.1
livenessProbe.periodSecondsHow often (in seconds) to perform the probe10
livenessProbe.timeoutSecondsNumber of seconds after which the probe times out1
livenessProbe.failureThresholdTimes to perform probe before restarting the container3
readinessProbe.enabledk8s readiness probe enabled (cannot be enabled when https = true)false
readinessProbe.pathk8s readiness probe http path"/healthz"
readinessProbe.initialDelaySecondsNumber of seconds after the container has started before readiness probe is initiated.1
readinessProbe.periodSecondsHow often (in seconds) to perform the probe10
readinessProbe.timeoutSecondsNumber of seconds after which the probe times out1
readinessProbe.failureThresholdTimes to perform probe before marking the container Unready3
imagePullSecretsAllows to run containers based on images in private registries.{}

Check values.yaml notes together with dex documentation and config examples for all the possible configuration options.