add first version of ui helm chart (#795)
* add first version of ui helm chart * add postgres versions 12 and 9.5
This commit is contained in:
		
							parent
							
								
									8794e4f9ac
								
							
						
					
					
						commit
						1ee99b8194
					
				|  | @ -0,0 +1,22 @@ | ||||||
|  | # Patterns to ignore when building packages. | ||||||
|  | # This supports shell glob matching, relative path matching, and | ||||||
|  | # negation (prefixed with !). Only one pattern per line. | ||||||
|  | .DS_Store | ||||||
|  | # Common VCS dirs | ||||||
|  | .git/ | ||||||
|  | .gitignore | ||||||
|  | .bzr/ | ||||||
|  | .bzrignore | ||||||
|  | .hg/ | ||||||
|  | .hgignore | ||||||
|  | .svn/ | ||||||
|  | # Common backup files | ||||||
|  | *.swp | ||||||
|  | *.bak | ||||||
|  | *.tmp | ||||||
|  | *~ | ||||||
|  | # Various IDEs | ||||||
|  | .project | ||||||
|  | .idea/ | ||||||
|  | *.tmproj | ||||||
|  | .vscode/ | ||||||
|  | @ -0,0 +1,19 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | name: postgres-operator-ui | ||||||
|  | version: 0.1.0 | ||||||
|  | appVersion: 1.2.0 | ||||||
|  | home: https://github.com/zalando/postgres-operator | ||||||
|  | description: Postgres Operator UI provides a graphical interface for a convenient database-as-a-service user experience | ||||||
|  | keywords: | ||||||
|  | - postgres | ||||||
|  | - operator | ||||||
|  | - ui | ||||||
|  | - cloud-native | ||||||
|  | - patroni | ||||||
|  | - spilo | ||||||
|  | maintainers: | ||||||
|  | - name: siku4 | ||||||
|  |   email: sk@sik-net.de | ||||||
|  | sources: | ||||||
|  | - https://github.com/zalando/postgres-operator | ||||||
|  | engine: gotpl | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | To verify that postgres-operator has started, run: | ||||||
|  | 
 | ||||||
|  |   kubectl --namespace={{ .Release.Namespace }} get pods -l "app.kubernetes.io/name={{ template "postgres-operator-ui.name" . }}" | ||||||
|  | @ -0,0 +1,32 @@ | ||||||
|  | {{/* vim: set filetype=mustache: */}} | ||||||
|  | {{/* | ||||||
|  | Expand the name of the chart. | ||||||
|  | */}} | ||||||
|  | {{- define "postgres-operator-ui.name" -}} | ||||||
|  | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} | ||||||
|  | {{- end -}} | ||||||
|  | 
 | ||||||
|  | {{/* | ||||||
|  | Create a default fully qualified app name. | ||||||
|  | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). | ||||||
|  | If release name contains chart name it will be used as a full name. | ||||||
|  | */}} | ||||||
|  | {{- define "postgres-operator-ui.fullname" -}} | ||||||
|  | {{- if .Values.fullnameOverride -}} | ||||||
|  | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} | ||||||
|  | {{- else -}} | ||||||
|  | {{- $name := default .Chart.Name .Values.nameOverride -}} | ||||||
|  | {{- if contains $name .Release.Name -}} | ||||||
|  | {{- .Release.Name | trunc 63 | trimSuffix "-" -}} | ||||||
|  | {{- else -}} | ||||||
|  | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} | ||||||
|  | {{- end -}} | ||||||
|  | {{- end -}} | ||||||
|  | {{- end -}} | ||||||
|  | 
 | ||||||
|  | {{/* | ||||||
|  | Create chart name and version as used by the chart label. | ||||||
|  | */}} | ||||||
|  | {{- define "postgres-operator-ui.chart" -}} | ||||||
|  | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} | ||||||
|  | {{- end -}} | ||||||
|  | @ -0,0 +1,69 @@ | ||||||
|  | apiVersion: "apps/v1" | ||||||
|  | kind: "Deployment" | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |     helm.sh/chart: {{ template "postgres-operator-ui.chart" . }} | ||||||
|  |     app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||||
|  |     app.kubernetes.io/instance: {{ .Release.Name }} | ||||||
|  |   name: {{ template "postgres-operator-ui.fullname" . }} | ||||||
|  | spec: | ||||||
|  |   replicas: 1 | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |       app.kubernetes.io/instance: {{ .Release.Name }} | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |         app.kubernetes.io/instance: {{ .Release.Name }} | ||||||
|  |         team: "acid" # Parameterize? | ||||||
|  |     spec: | ||||||
|  |       serviceAccountName: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |       containers: | ||||||
|  |         - name: "service" | ||||||
|  |           image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" | ||||||
|  |           imagePullPolicy: {{ .Values.image.pullPolicy }} | ||||||
|  |           ports: | ||||||
|  |             - containerPort: 8081 | ||||||
|  |               protocol: "TCP" | ||||||
|  |           readinessProbe: | ||||||
|  |             httpGet: | ||||||
|  |               path: "/health" | ||||||
|  |               port: 8081 | ||||||
|  |             initialDelaySeconds: 5 | ||||||
|  |             timeoutSeconds: 1 | ||||||
|  |           resources: | ||||||
|  |             {{- toYaml .Values.resources | nindent 12 }} | ||||||
|  |           env: | ||||||
|  |             - name: "APP_URL" | ||||||
|  |               value: "http://localhost:8081" | ||||||
|  |             - name: "OPERATOR_API_URL" | ||||||
|  |               value: {{ .Values.envs.operatorApiUrl }} | ||||||
|  |             - name: "TARGET_NAMESPACE" | ||||||
|  |               value: {{ .Values.envs.targetNamespace }} | ||||||
|  |             - name: "TEAMS" | ||||||
|  |               value: |- | ||||||
|  |                 [  | ||||||
|  |                   "acid"  | ||||||
|  |                 ] | ||||||
|  |             - name: "OPERATOR_UI_CONFIG" | ||||||
|  |               value: |- | ||||||
|  |                 { | ||||||
|  |                   "docs_link":"https://postgres-operator.readthedocs.io/en/latest/", | ||||||
|  |                   "dns_format_string": "{1}-{0}.{2}", | ||||||
|  |                   "databases_visible": true, | ||||||
|  |                   "master_load_balancer_visible": true, | ||||||
|  |                   "nat_gateways_visible": false, | ||||||
|  |                   "replica_load_balancer_visible": true, | ||||||
|  |                   "resources_visible": true, | ||||||
|  |                   "users_visible": true, | ||||||
|  |                   "postgresql_versions": [ | ||||||
|  |                     "12", | ||||||
|  |                     "11", | ||||||
|  |                     "10", | ||||||
|  |                     "9.6", | ||||||
|  |                     "9.5" | ||||||
|  |                   ] | ||||||
|  |                 } | ||||||
|  | @ -0,0 +1,44 @@ | ||||||
|  | {{- if .Values.ingress.enabled -}} | ||||||
|  | {{- $fullName := include "postgres-operator-ui.fullname" . -}} | ||||||
|  | {{- $svcPort := .Values.service.port -}} | ||||||
|  | {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} | ||||||
|  | apiVersion: networking.k8s.io/v1beta1 | ||||||
|  | {{- else -}} | ||||||
|  | apiVersion: extensions/v1beta1 | ||||||
|  | {{- end }} | ||||||
|  | kind: Ingress | ||||||
|  | metadata: | ||||||
|  |   name: {{ $fullName }} | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |     helm.sh/chart: {{ template "postgres-operator-ui.chart" . }} | ||||||
|  |     app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||||
|  |     app.kubernetes.io/instance: {{ .Release.Name }} | ||||||
|  |   {{- with .Values.ingress.annotations }} | ||||||
|  |   annotations: | ||||||
|  |     {{- toYaml . | nindent 4 }} | ||||||
|  |   {{- end }} | ||||||
|  | spec: | ||||||
|  | {{- if .Values.ingress.tls }} | ||||||
|  |   tls: | ||||||
|  |   {{- range .Values.ingress.tls }} | ||||||
|  |     - hosts: | ||||||
|  |       {{- range .hosts }} | ||||||
|  |         - {{ . | quote }} | ||||||
|  |       {{- end }} | ||||||
|  |       secretName: {{ .secretName }} | ||||||
|  |   {{- end }} | ||||||
|  | {{- end }} | ||||||
|  |   rules: | ||||||
|  |   {{- range .Values.ingress.hosts }} | ||||||
|  |     - host: {{ .host | quote }} | ||||||
|  |       http: | ||||||
|  |         paths: | ||||||
|  |         {{- range .paths }} | ||||||
|  |           - path: {{ . }} | ||||||
|  |             backend: | ||||||
|  |               serviceName: {{ $fullName }} | ||||||
|  |               servicePort: {{ $svcPort }} | ||||||
|  |         {{- end }} | ||||||
|  |   {{- end }} | ||||||
|  | {{- end }} | ||||||
|  | @ -0,0 +1,20 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |     helm.sh/chart: {{ template "postgres-operator-ui.chart" . }} | ||||||
|  |     app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||||
|  |     app.kubernetes.io/instance: {{ .Release.Name }} | ||||||
|  |   name: {{ template "postgres-operator-ui.fullname" . }} | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |     - port: {{ .Values.service.port }} | ||||||
|  |       targetPort: 8081 | ||||||
|  |       protocol: TCP | ||||||
|  |   selector: | ||||||
|  |     app.kubernetes.io/instance: {{ .Release.Name }} | ||||||
|  |     app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |   type: {{ .Values.service.type }} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,81 @@ | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: ServiceAccount | ||||||
|  | metadata: | ||||||
|  |   name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |     helm.sh/chart: {{ template "postgres-operator-ui.chart" . }} | ||||||
|  |     app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||||
|  |     app.kubernetes.io/instance: {{ .Release.Name }} | ||||||
|  | 
 | ||||||
|  | --- | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1beta1 | ||||||
|  | kind: ClusterRole | ||||||
|  | metadata: | ||||||
|  |   name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |     helm.sh/chart: {{ template "postgres-operator-ui.chart" . }} | ||||||
|  |     app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||||
|  |     app.kubernetes.io/instance: {{ .Release.Name }}   | ||||||
|  | rules: | ||||||
|  | - apiGroups: | ||||||
|  |   - acid.zalan.do | ||||||
|  |   resources: | ||||||
|  |   - postgresqls | ||||||
|  |   verbs: | ||||||
|  |   - create | ||||||
|  |   - delete | ||||||
|  |   - get | ||||||
|  |   - list | ||||||
|  |   - patch | ||||||
|  |   - update | ||||||
|  | - apiGroups: | ||||||
|  |   - "" | ||||||
|  |   resources: | ||||||
|  |   - pods | ||||||
|  |   verbs: | ||||||
|  |   - get | ||||||
|  |   - list | ||||||
|  |   - watch | ||||||
|  | - apiGroups: | ||||||
|  |   - "" | ||||||
|  |   resources: | ||||||
|  |   - services | ||||||
|  |   verbs: | ||||||
|  |   - get | ||||||
|  |   - list | ||||||
|  | - apiGroups: | ||||||
|  |   - apps | ||||||
|  |   resources: | ||||||
|  |   - statefulsets | ||||||
|  |   verbs: | ||||||
|  |   - get | ||||||
|  |   - list | ||||||
|  | - apiGroups: | ||||||
|  |   - "" | ||||||
|  |   resources: | ||||||
|  |   - namespaces | ||||||
|  |   verbs: | ||||||
|  |   - get | ||||||
|  |   - list | ||||||
|  | --- | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|  | kind: ClusterRoleBinding | ||||||
|  | metadata: | ||||||
|  |   name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |     helm.sh/chart: {{ template "postgres-operator-ui.chart" . }} | ||||||
|  |     app.kubernetes.io/managed-by: {{ .Release.Service }} | ||||||
|  |     app.kubernetes.io/instance: {{ .Release.Name }} | ||||||
|  | roleRef: | ||||||
|  |   apiGroup: rbac.authorization.k8s.io | ||||||
|  |   kind: ClusterRole | ||||||
|  |   name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  | subjects: | ||||||
|  | - kind: ServiceAccount | ||||||
|  | # note: the cluster role binding needs to be defined | ||||||
|  | # for every namespace the operator-ui service account lives in. | ||||||
|  |   name: {{ template "postgres-operator-ui.name" . }} | ||||||
|  |   namespace: {{ .Release.Namespace }} | ||||||
|  | @ -0,0 +1,47 @@ | ||||||
|  | # Default values for postgres-operator-ui. | ||||||
|  | # This is a YAML-formatted file. | ||||||
|  | # Declare variables to be passed into your templates. | ||||||
|  | 
 | ||||||
|  | replicaCount: 1 | ||||||
|  | 
 | ||||||
|  | # configure ui image | ||||||
|  | image: | ||||||
|  |   registry: registry.opensource.zalan.do | ||||||
|  |   repository: acid/postgres-operator-ui | ||||||
|  |   tag: v1.2.0 | ||||||
|  |   pullPolicy: "IfNotPresent" | ||||||
|  | 
 | ||||||
|  | # configure UI pod resources | ||||||
|  | resources: | ||||||
|  |   limits: | ||||||
|  |     cpu: 300m | ||||||
|  |     memory: 3000Mi | ||||||
|  |   requests: | ||||||
|  |     cpu: 100m | ||||||
|  |     memory: 100Mi | ||||||
|  | 
 | ||||||
|  | # configure UI ENVs | ||||||
|  | envs: | ||||||
|  |   # IMPORTANT: While operator chart and UI chart are idendependent, this is the interface between  | ||||||
|  |   # UI and operator API. Insert the service name of the operator API here! | ||||||
|  |   operatorApiUrl: "http://postgres-operator:8080" | ||||||
|  |   targetNamespace: "default" | ||||||
|  | 
 | ||||||
|  | # configure UI service | ||||||
|  | service: | ||||||
|  |   type: "ClusterIP" | ||||||
|  |   port: "8080" | ||||||
|  | 
 | ||||||
|  | # configure UI ingress. If needed: "enabled: true" | ||||||
|  | ingress: | ||||||
|  |   enabled: false | ||||||
|  |   annotations: {} | ||||||
|  |     # kubernetes.io/ingress.class: nginx | ||||||
|  |     # kubernetes.io/tls-acme: "true" | ||||||
|  |   hosts: | ||||||
|  |     - host: ui.example.org | ||||||
|  |       paths: [""] | ||||||
|  |   tls: [] | ||||||
|  |   #  - secretName: ui-tls | ||||||
|  |   #    hosts: | ||||||
|  |   #      - ui.exmaple.org | ||||||
		Loading…
	
		Reference in New Issue