DNS Integration
The Emporium DNS integration allows the user to define the hostname for an app, based on pre-configured domains.
Available Variables
The following variables are available to use within the values.emporium.yaml
file.
Variable | Description |
---|---|
.Emporium.Integrations.DNS.Hostname | Hostname for the application, input by the user in the Emporium UI. (eg. myapp.funupupu.io) |
.Emporium.Integrations.DNS.Zone | DNS Zone of the deployment. (eg. funupupu.io) |
.Emporium.Integrations.DNS.Subdomain | Subdomain of the application (eg. myapp) |
Configuration Flow
During the installation of a DNS enabled app, Emporium will:
- Identify all internet-facing endpoints of an app.
- Deploy a glass instance in front of every endpoint.
- Pass the
Hostname
to thevalues.emporium.yaml
file.
Glass
Glass is the secret hero behind the scenes of Emporium. It's a state of the art layer 7 proxy supporting OIDC authentication and authorization. Additionally it injects the Emporium Panel overlay into the all apps, enabling you to effortlessly navigate between them.
Example
Most commonly, the DNS integration is used to configure ingresses as shown in the example below.
Important
Add .Emporium.Annotations
to every ingress deployed by your app, to make sure it's properly protected by Glass.
yaml
ingress:
enabled: true
annotations:
{{- if .Emporium.Annotations }}
{{- toYaml .Emporium.Annotations | nindent 4 }}
{{- end }}
kubernetes.io/tls-acme: "true"
hosts:
- host: {{ .Emporium.Integrations.DNS.Hostname }}
paths:
- path: /
pathType: Prefix
tls:
- secretName: {{ .Emporium.Name }}-tls
hosts:
- {{ .Emporium.Integrations.DNS.Hostname }}