Merge branch 'master' into add-cluster-costs-ui
This commit is contained in:
		
						commit
						a30dde9c55
					
				|  | @ -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