[stable/pomerium] Setting Ingress Hosts from policy (#18726)

* [stable/pomerium] Setting Ingress Hosts from policy

The kubernetes-sigs/external-dns create DNS records based on the Hostnames in Ingress objects.
Setting the hostnames explicitly in the Ingress object and not using a wildcard can help to take advantage of this functionality

https://github.com/pomerium/pomerium-helm/pull/32

Signed-off-by: Mohsen <mohsen0@users.noreply.github.com>

* Making .policy mutually exclusive with the ingress.hosts

Signed-off-by: Mohsen <mohsen0@users.noreply.github.com>
This commit is contained in:
Mohsen
2019-11-11 05:47:42 -08:00
committed by Kubernetes Prow Robot
parent e89b87212e
commit 20cc1a3d69
5 changed files with 34 additions and 11 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
apiVersion: v1
name: pomerium
version: 4.0.4
version: 4.1.0
appVersion: 0.4.2
home: http://www.pomerium.io/
icon: https://www.pomerium.io/logo.svg
+2 -2
View File
@@ -120,7 +120,7 @@ A full listing of Pomerium's configuration variables can be found on the [config
| `authorize.existingTLSSecret` | Name of existing TLS Secret for authorize service | |
| `images.server.repository` | Pomerium image | `pomerium/pomerium` |
| `images.server.tag` | Pomerium image tag | `v0.4.2` |
| `images.server.pullPolicy` | Pomerium image pull policy | `IfNotPresent` |
| `images.server.pullPolicy` | Pomerium image pull policy | `IfNotPresent` |
| `service.annotations` | Service annotations | `{}` |
| `service.externalPort` | Pomerium's port | `443` |
| `service.type` | Service type (ClusterIP, NodePort or LoadBalancer) | `ClusterIP` |
@@ -135,7 +135,7 @@ A full listing of Pomerium's configuration variables can be found on the [config
| `tracing.jaeger.agent_endpoint` | The jaeger agent endpoint | Required |
| `ingress.enabled` | Enables Ingress for pomerium | `false` |
| `ingress.annotations` | Ingress annotations | `{}` |
| `ingress.hosts` | Ingress accepted hostnames | `nil` |
| `ingress.hosts` | Ingress accepted hostnames | `[]` |
| `ingress.tls` | Ingress TLS configuration | `[]` |
| `metrics.enabled` | Enable prometheus metrics endpoint | `false` |
| `metrics.port` | Prometheus metrics endpoint port | `9090` |
+2 -2
View File
@@ -1,8 +1,8 @@
{{- if eq (include "pomerium.providerOK" .) "true" }}
{{- if .Values.ingress.enabled }}
From outside the cluster, the server URL(s) are:
{{- range .Values.ingress.hosts }}
{{ $.Values.server.protocol }}://{{ . }}
{{- range .Values.config.policy }}
{{ .from | quote}}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
+28 -6
View File
@@ -16,16 +16,38 @@ spec:
tls:
- secretName: {{ default .Values.ingress.secretName .Values.ingress.secret.name}}
hosts:
- {{ printf "*.%s" .Values.config.rootDomain | quote }}
- {{ printf "authorize.%s" .Values.config.rootDomain | quote }}
- {{ printf "authenticate.%s" .Values.config.rootDomain | quote }}
{{- if not .Values.ingress.hosts }}
{{- range .Values.config.policy }}
- {{ .from | trimPrefix "https://" | trimPrefix "http://" | quote }}
{{- end }}
{{- end }}
{{- range .Values.ingress.hosts }}
- {{ . | quote }}
{{- end }}
rules:
- host: {{ printf "*.%s" .Values.config.rootDomain| quote }}
{{- range .Values.ingress.hosts }}
- host: {{ . | quote }}
http:
paths:
- paths:
backend:
serviceName: {{ template "pomerium.proxy.fullname" . }}
serviceName: {{ template "pomerium.proxy.fullname" $ }}
servicePort: https
{{- if not .Values.service.authorize.headless }}
{{- end }}
{{- if not .Values.ingress.hosts }}
{{- range .Values.config.policy }}
- host: {{ .from | trimPrefix "https://" | trimPrefix "http://" | quote }}
http:
paths:
- paths:
backend:
serviceName: {{ template "pomerium.proxy.fullname" $ }}
servicePort: https
{{- end }}
{{- end }}
{{- if not .Values.service.authorize.headless }}
- host: {{ printf "authorize.%s" .Values.config.rootDomain }}
http:
paths:
@@ -33,7 +55,7 @@ spec:
backend:
serviceName: {{ template "pomerium.authorize.fullname" . }}
servicePort: https
{{- end }}
{{- end }}
- host: {{ printf "authenticate.%s" .Values.config.rootDomain }}
http:
paths:
@@ -41,4 +63,4 @@ spec:
backend:
serviceName: {{ template "pomerium.authenticate.fullname" . }}
servicePort: https
{{- end }}
{{- end }}
+1
View File
@@ -82,6 +82,7 @@ ingress:
cert: ""
key: ""
enabled: true
hosts: []
annotations:
{}
# === nginx tweaks