From df3b21e90db01931c93e4da25ae4e4b21941aa92 Mon Sep 17 00:00:00 2001 From: Werner Buck Date: Fri, 8 Feb 2019 12:49:44 +0100 Subject: [PATCH] Simplify for unifi (#10789) The discovery and stun ports are part of the same service. Unifi depends on them to be on the same hostname. Signed-off-by: Werner Buck --- stable/unifi/Chart.yaml | 2 +- stable/unifi/README.md | 28 ++++-------- stable/unifi/templates/controller-svc.yaml | 14 ++++++ stable/unifi/templates/discovery-svc.yaml | 52 ---------------------- stable/unifi/templates/stun-svc.yaml | 52 ---------------------- stable/unifi/values.yaml | 48 +++----------------- 6 files changed, 29 insertions(+), 167 deletions(-) delete mode 100644 stable/unifi/templates/discovery-svc.yaml delete mode 100644 stable/unifi/templates/stun-svc.yaml diff --git a/stable/unifi/Chart.yaml b/stable/unifi/Chart.yaml index f32a92e2ee12..a7b53925d0ab 100644 --- a/stable/unifi/Chart.yaml +++ b/stable/unifi/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v1 appVersion: 5.9.29 description: Ubiquiti Network's Unifi Controller name: unifi -version: 0.2.8 +version: 0.3.0 keywords: - ubiquiti - unifi diff --git a/stable/unifi/README.md b/stable/unifi/README.md index 097d8386e8ac..961105f6514d 100644 --- a/stable/unifi/README.md +++ b/stable/unifi/README.md @@ -53,20 +53,8 @@ The following tables lists the configurable parameters of the Unifi chart and th | `controllerService.loadBalancerIP` | Loadbalance IP for the Unifi Controller | `{}` | | `controllerService.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | None | | `controllerService.externalTrafficPolicy` | Set the externalTrafficPolicy in the Service to either Cluster or Local | `Cluster` | -| `stunService.type` | Kubernetes service type for the Unifi STUN | `NodePort` | -| `stunService.port` | Kubernetes UDP port where the Unifi STUN is exposed | `3478` | -| `stunService.annotations` | Service annotations for the Unifi STUN | `{}` | -| `stunService.labels` | Custom labels | `{}` | -| `stunService.loadBalancerIP` | Loadbalance IP for the Unifi STUN | `{}` | -| `stunService.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | None | -| `stunService.externalTrafficPolicy` | Set the externalTrafficPolicy in the Service to either Cluster or Local | `Cluster` | -| `discoveryService.type` | Kubernetes service type for AP discovery | `NodePort` | -| `discoveryService.port` | Kubernetes UDP port for AP discovery | `10001` | -| `discoveryService.annotations` | Service annotations for AP discovery | `{}` | -| `discoveryService.labels` | Custom labels | `{}` | -| `discoveryService.loadBalancerIP` | Loadbalance IP for AP discovery | `{}` | -| `discoveryService.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | None | -| `discoveryService.externalTrafficPolicy` | Set the externalTrafficPolicy in the Service to either Cluster or Local | `Cluster` | +| `controllerService.stun.port` | Kubernetes UDP port where the Unifi STUN is exposed | `3478` | +| `controllerService.discovery.port` | Kubernetes UDP port for AP discovery | `10001` | | `ingress.enabled` | Enables Ingress | `false` | | `ingress.annotations` | Ingress annotations | `{}` | | `ingress.labels` | Custom labels | `{}` | @@ -117,12 +105,12 @@ Read through the [values.yaml](values.yaml) file. It has several commented out s devices run. If you run this as a `NodePort` (the default setting), make sure that there is an external load balancer that is directing traffic from port 8080 to the `NodePort` for this service. -- `discoveryService`: This needs to be reachable by the unifi devices on the - network similar to the controller `Service` but only during the discovery - phase. This is a UDP service. -- `stunService`: Also used periodically by the unifi devices to communicate - with the controller using UDP. See [this article][ubnt 3] and [this other - article][ubnt 4] for more information. + + the `controllerService` exposes two additional ports: + - `discovery`: This needs to be reachable by the unifi devices on network but only during the discovery + phase. This is a UDP service. + - `stun`: Also used periodically by the unifi devices to communicate + with the controller using UDP. See [this article][ubnt 3] and [this other article][ubnt 4] for more information. [docker]: https://hub.docker.com/r/jacobalberty/unifi/tags/ [github]: https://github.com/jacobalberty/unifi-docker diff --git a/stable/unifi/templates/controller-svc.yaml b/stable/unifi/templates/controller-svc.yaml index 7cac96a6d5f1..3e6fea913be2 100644 --- a/stable/unifi/templates/controller-svc.yaml +++ b/stable/unifi/templates/controller-svc.yaml @@ -46,6 +46,20 @@ spec: name: controller {{ if (and (eq .Values.controllerService.type "NodePort") (not (empty .Values.controllerService.nodePort))) }} nodePort: {{.Values.controllerService.nodePort}} +{{ end }} + - port: {{ .Values.controllerService.stun.port }} + targetPort: stun + protocol: UDP + name: stun +{{ if (and (eq .Values.controllerService.type "NodePort") (not (empty .Values.controllerService.stun.nodePort))) }} + nodePort: {{.Values.controllerService.stun.nodePort}} +{{ end }} + - port: {{ .Values.controllerService.discovery.port }} + targetPort: discovery + protocol: UDP + name: discovery +{{ if (and (eq .Values.controllerService.type "NodePort") (not (empty .Values.controllerService.discovery.nodePort))) }} + nodePort: {{.Values.controllerService.discovery.nodePort}} {{ end }} selector: app: {{ template "unifi.name" . }} diff --git a/stable/unifi/templates/discovery-svc.yaml b/stable/unifi/templates/discovery-svc.yaml deleted file mode 100644 index b3f7b685d3bf..000000000000 --- a/stable/unifi/templates/discovery-svc.yaml +++ /dev/null @@ -1,52 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "unifi.fullname" . }}-discovery - labels: - app: {{ template "unifi.name" . }} - chart: {{ template "unifi.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -{{- if .Values.discoveryService.labels }} -{{ toYaml .Values.discoveryService.labels | indent 4 }} -{{- end }} -{{- with .Values.discoveryService.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} -spec: -{{- if (or (eq .Values.discoveryService.type "ClusterIP") (empty .Values.discoveryService.type)) }} - type: ClusterIP - {{- if .Values.discoveryService.clusterIP }} - clusterIP: {{ .Values.discoveryService.clusterIP }} - {{end}} -{{- else if eq .Values.discoveryService.type "LoadBalancer" }} - type: {{ .Values.discoveryService.type }} - {{- if .Values.discoveryService.loadBalancerIP }} - loadBalancerIP: {{ .Values.discoveryService.loadBalancerIP }} - {{- end }} - {{- if .Values.discoveryService.loadBalancerSourceRanges }} - loadBalancerSourceRanges: -{{ toYaml .Values.discoveryService.loadBalancerSourceRanges | indent 4 }} - {{- end -}} -{{- else }} - type: {{ .Values.discoveryService.type }} -{{- end }} -{{- if .Values.discoveryService.externalIPs }} - externalIPs: -{{ toYaml .Values.discoveryService.externalIPs | indent 4 }} -{{- end }} - {{- if .Values.discoveryService.externalTrafficPolicy }} - externalTrafficPolicy: {{ .Values.discoveryService.externalTrafficPolicy }} - {{- end }} - ports: - - port: {{ .Values.discoveryService.port }} - targetPort: discovery - protocol: UDP - name: discovery -{{ if (and (eq .Values.discoveryService.type "NodePort") (not (empty .Values.discoveryService.nodePort))) }} - nodePort: {{.Values.discoveryService.nodePort}} -{{ end }} - selector: - app: {{ template "unifi.name" . }} - release: {{ .Release.Name }} diff --git a/stable/unifi/templates/stun-svc.yaml b/stable/unifi/templates/stun-svc.yaml deleted file mode 100644 index 335e0c9b5dc9..000000000000 --- a/stable/unifi/templates/stun-svc.yaml +++ /dev/null @@ -1,52 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "unifi.fullname" . }}-stun - labels: - app: {{ template "unifi.name" . }} - chart: {{ template "unifi.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -{{- if .Values.stunService.labels }} -{{ toYaml .Values.stunService.labels | indent 4 }} -{{- end }} -{{- with .Values.stunService.annotations }} - annotations: -{{ toYaml . | indent 4 }} -{{- end }} -spec: -{{- if (or (eq .Values.stunService.type "ClusterIP") (empty .Values.stunService.type)) }} - type: ClusterIP - {{- if .Values.stunService.clusterIP }} - clusterIP: {{ .Values.stunService.clusterIP }} - {{end}} -{{- else if eq .Values.stunService.type "LoadBalancer" }} - type: {{ .Values.stunService.type }} - {{- if .Values.stunService.loadBalancerIP }} - loadBalancerIP: {{ .Values.stunService.loadBalancerIP }} - {{- end }} - {{- if .Values.stunService.loadBalancerSourceRanges }} - loadBalancerSourceRanges: -{{ toYaml .Values.stunService.loadBalancerSourceRanges | indent 4 }} - {{- end -}} -{{- else }} - type: {{ .Values.stunService.type }} -{{- end }} -{{- if .Values.stunService.externalIPs }} - externalIPs: -{{ toYaml .Values.stunService.externalIPs | indent 4 }} -{{- end }} - {{- if .Values.stunService.externalTrafficPolicy }} - externalTrafficPolicy: {{ .Values.stunService.externalTrafficPolicy }} - {{- end }} - ports: - - port: {{ .Values.stunService.port }} - targetPort: stun - protocol: UDP - name: stun -{{ if (and (eq .Values.stunService.type "NodePort") (not (empty .Values.stunService.nodePort))) }} - nodePort: {{.Values.stunService.nodePort}} -{{ end }} - selector: - app: {{ template "unifi.name" . }} - release: {{ .Release.Name }} \ No newline at end of file diff --git a/stable/unifi/values.yaml b/stable/unifi/values.yaml index 817b99b1424e..b04bb50865b1 100644 --- a/stable/unifi/values.yaml +++ b/stable/unifi/values.yaml @@ -50,48 +50,12 @@ controllerService: # loadBalancerSourceRanges: [] ## Set the externalTrafficPolicy in the Service to either Cluster or Local # externalTrafficPolicy: Cluster - -stunService: - type: NodePort - port: 3478 # udp - ## Specify the nodePort value for the LoadBalancer and NodePort service types. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport - ## - # nodePort: - ## Provide any additional annotations which may be required. This can be used to - ## set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - annotations: {} - labels: {} - ## Use loadBalancerIP to request a specific static IP, - ## otherwise leave blank - ## - loadBalancerIP: - # loadBalancerSourceRanges: [] - ## Set the externalTrafficPolicy in the Service to either Cluster or Local - # externalTrafficPolicy: Cluster - -discoveryService: - type: NodePort - port: 10001 # udp - ## Specify the nodePort value for the LoadBalancer and NodePort service types. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport - ## - # nodePort: - ## Provide any additional annotations which may be required. This can be used to - ## set the LoadBalancer service type to internal only. - ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer - ## - annotations: {} - labels: {} - ## Use loadBalancerIP to request a specific static IP, - ## otherwise leave blank - ## - loadBalancerIP: - # loadBalancerSourceRanges: [] - ## Set the externalTrafficPolicy in the Service to either Cluster or Local - # externalTrafficPolicy: Cluster + stun: + port: 3478 + # nodePort: + discovery: + port: 10001 + # nodePort: ingress: enabled: false