pgadmin-values.yaml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. ## Global image configuration
  2. global:
  3. ## Overrides the Docker registry globally for all images
  4. imageRegistry: ""
  5. ## Add additional image pull secrets globally
  6. ## Support both full format (- name: secret) and short format (- secret)
  7. ## These will be merged with any chart-specific pull secrets
  8. imagePullSecrets: []
  9. ## Workload type - Deployment or StatefulSet
  10. ## StatefulSet is useful for stable storage and network identity
  11. ## When using StatefulSet, PVCs are managed via volumeClaimTemplates
  12. workload:
  13. ## Kind can be either "Deployment" or "StatefulSet"
  14. kind: Deployment
  15. ## Number of pgAdmin4 replicas
  16. replicaCount: 1
  17. ## pgAdmin4 container image
  18. image:
  19. registry: docker.io
  20. repository: dpage/pgadmin4
  21. ## Overrides the image tag whose default is the chart appVersion
  22. tag: ""
  23. pullPolicy: IfNotPresent
  24. ## Optionally specify an array of imagePullSecrets
  25. ## Secrets must be manually created in the namespace
  26. ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  27. imagePullSecrets: []
  28. # - RegistryKeySecret
  29. ## Deployment annotations
  30. annotations: {}
  31. ## The number of old history to retain to allow rollback
  32. revisionHistoryLimit: 10
  33. ## Add labels to all the deployed resources
  34. commonLabels: {}
  35. ## Priority class name for pod scheduling
  36. priorityClassName: ""
  37. ## Deployment entrypoint override
  38. ## Useful when there's a requirement to modify container's default
  39. ## Ref: https://www.vaultproject.io/docs/platform/k8s/injector/examples#environment-variable-example
  40. ## Ref: https://github.com/postgres/pgadmin4/blob/master/Dockerfile#L206
  41. # command: "['/bin/sh', '-c', 'source /vault/secrets/config && <entrypoint script>']"
  42. ## Service configuration
  43. service:
  44. type: ClusterIP
  45. clusterIP: ""
  46. loadBalancerIP: ""
  47. port: 80
  48. targetPort: 80
  49. # targetPort: 4181 # To be used with a proxy extraContainer
  50. portName: http
  51. ## Special annotations at the service level, e.g.
  52. ## this will set vnet internal IPs rather than public IPs
  53. ## service.beta.kubernetes.io/azure-load-balancer-internal: "true"
  54. annotations: {}
  55. ## Specify the nodePort value for the service types
  56. ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  57. # nodePort:
  58. ## Pod Service Account
  59. ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  60. serviceAccount:
  61. ## Specifies whether a service account should be created
  62. create: false
  63. ## Annotations to add to the service account
  64. annotations: {}
  65. ## The name of the service account to use
  66. ## If not set and create is true, a name is generated using the fullname template
  67. name: ""
  68. ## Opt out of API credential automounting
  69. ## If you don't want the kubelet to automatically mount a ServiceAccount's API credentials,
  70. ## you can opt out of the default behavior
  71. automountServiceAccountToken: false
  72. ## Pod HostAliases
  73. ## Ref: https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/
  74. hostAliases: []
  75. # - ip: "127.0.0.1"
  76. # hostnames:
  77. # - "pgadmin4.local"
  78. ## Strategy used to replace old Pods by new ones
  79. ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  80. strategy: {}
  81. # type: RollingUpdate
  82. # rollingUpdate:
  83. # maxSurge: 0
  84. # maxUnavailable: 1
  85. ## Pre-load pgAdmin4 with servers at first start-up
  86. ## Servers are imported only the first time the config DB is created
  87. ## Ref: https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html
  88. serverDefinitions:
  89. ## Enable/disable server import
  90. enabled: false
  91. ## Storage for the server JSON:
  92. ## ConfigMap - plain text (good for non-secret data)
  93. ## Secret - base-64 (better for credentials)
  94. resourceType: ConfigMap
  95. ## Use this only when `resourceType` = ConfigMap - point to an existing ConfigMap
  96. ## that already holds your `servers.json`
  97. existingConfigmap: ""
  98. ## Use this only when `resourceType` = Secret - point to an existing Secret
  99. ## that already holds your `servers.json`
  100. existingSecret: ""
  101. ## Set to true to put raw JSON under `stringData` (handy for dry-runs/debug)
  102. ## Leave false to keep the default base-64 in `data`
  103. useStringData: false
  104. ## Inline server definitions (ignore if you point to an existing resource)
  105. ## You can use Helm templates here, e.g. Host: "{{ .Values.example.host }}"
  106. servers:
  107. # firstServer:
  108. # Name: "Minimally Defined Server"
  109. # Group: "Servers"
  110. # Username: "postgres"
  111. # Host: "{{ .Values.example.host }}"
  112. # Port: "{{ .Values.example.port }}"
  113. # SSLMode: "prefer"
  114. # MaintenanceDB: "postgres"
  115. ## Pre-load pgAdmin4 with user preferences
  116. ## This mounts a preferences.json file to override default UI settings such as themes,
  117. ## display options, or query tool behavior
  118. ## Ref: https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html
  119. preferences:
  120. ## Enable/disable preferences
  121. enabled: false
  122. ## If using an existing ConfigMap, it must contain a key named `preferences.json`
  123. existingConfigMap: ""
  124. data: {}
  125. # misc:user_interface:theme: dark
  126. ## Network policy configuration
  127. networkPolicy:
  128. enabled: true
  129. ## HTTP route configuration
  130. httpRoute:
  131. enabled: false
  132. annotations: {}
  133. hostnames: []
  134. parentRefs: {}
  135. matches: []
  136. ## Ingress configuration
  137. ## Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
  138. ingress:
  139. enabled: false
  140. ## For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
  141. ## Ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
  142. # ingressClassName: nginx
  143. annotations: {}
  144. # kubernetes.io/ingress.class: nginx
  145. # kubernetes.io/tls-acme: "true"
  146. labels: {}
  147. hosts:
  148. - host: chart-example.local
  149. paths:
  150. - path: /
  151. pathType: Prefix
  152. tls: []
  153. # - secretName: chart-example-tls
  154. # hosts:
  155. # - chart-example.local
  156. ## Istio ingress configuration
  157. ## Use Istio Gateway and VirtualService instead of Ingress
  158. istioIngress:
  159. enabled: false
  160. ## The label selector for your existing Istio Ingress Gateway pods
  161. ## This tells the Gateway resource which gateway deployment to attach to
  162. ## Example: "ingressgateway" is a common default label
  163. selector: ""
  164. ## A list of hostnames this Gateway will manage
  165. endpoints:
  166. - "test.example.com"
  167. ## TLS configuration for Istio Gateway
  168. tls:
  169. enabled: false
  170. ## The name of the K8s Secret containing the cert
  171. ## Istio's Gateway resource will reference this name in its credentialName field
  172. ## Should be in istio-ingress namespace where istio ingress gateway is installed
  173. secretCertName: "my-istio-tls-secret"
  174. ## Defines the ports on the Istio Ingress Gateway
  175. gateway:
  176. enabled: false
  177. ports:
  178. http:
  179. number: 80
  180. protocol: HTTP
  181. ## If true, the template generates a rule to redirect HTTP->HTTPS
  182. isTlsRedirect: true
  183. isTlsTermination: false
  184. https:
  185. number: 443
  186. protocol: HTTPS
  187. isTlsRedirect: false
  188. ## If true, the gateway terminates TLS (handles HTTPS)
  189. isTlsTermination: true
  190. ## SIMPLE: Standard TLS, MUTUAL: mTLS, PASSTHROUGH: Send TLS to pod
  191. tlsMode: SIMPLE
  192. ## Istio VirtualService configuration
  193. ## The VirtualService defines how traffic is routed after it enters the Gateway
  194. virtualService:
  195. enabled: false
  196. gateway: ""
  197. config:
  198. ## http is a list of ordered routing rules. First match wins
  199. http:
  200. - name: "pgadmin-route"
  201. match:
  202. - uri:
  203. prefix: "/"
  204. route:
  205. - destination:
  206. host: "pgadmin"
  207. portNumber: 80
  208. weight: 100
  209. rewrite:
  210. uri: "/"
  211. corsPolicy:
  212. allowOrigins:
  213. - exact: "*"
  214. allowHeaders:
  215. - "*"
  216. allowMethods:
  217. - "*"
  218. exposeHeaders:
  219. - "*"
  220. maxAge: "24h"
  221. ## Additional config maps to be mounted inside a container
  222. ## Can be used to map config maps for sidecar as well
  223. extraConfigmapMounts: []
  224. # - name: certs-configmap
  225. # mountPath: /etc/ssl/certs
  226. # subPath: ""
  227. # configMap: certs-configmap
  228. # readOnly: true
  229. ## Additional secret mounts to be mounted inside a container
  230. extraSecretMounts: []
  231. # - name: pgpassfile
  232. # secret: pgpassfile
  233. # subPath: pgpassfile
  234. # mountPath: "/var/lib/pgadmin/storage/pgadmin/file.pgpass"
  235. # readOnly: true
  236. ## Additional volumes to be mounted inside a container
  237. extraVolumeMounts: []
  238. ## Specify additional containers in extraContainers
  239. ## For example, to add an authentication proxy to a pgadmin4 pod
  240. extraContainers: |
  241. # - name: proxy
  242. # image: quay.io/gambol99/keycloak-proxy:latest
  243. # args:
  244. # - -provider=github
  245. # - -client-id=
  246. # - -client-secret=
  247. # - -github-org=<ORG_NAME>
  248. # - -email-domain=*
  249. # - -cookie-secret=
  250. # - -http-address=http://0.0.0.0:4181
  251. # - -upstream-url=http://127.0.0.1:3000
  252. # ports:
  253. # - name: proxy-web
  254. # containerPort: 4181
  255. ## Name of existing secret to use for default pgadmin credentials
  256. ## env.password will be ignored and picked up from this secret
  257. existingSecret: ""
  258. ## Name of key in existing secret to use for default pgadmin credentials
  259. ## Only used when existingSecret is set
  260. secretKeys:
  261. pgadminPasswordKey: password
  262. ## pgAdmin4 startup configuration
  263. ## Values in here get injected as environment variables
  264. ## Chart reinstall needed to apply changes
  265. env:
  266. ## Can be email or nickname
  267. email: creylopez@yahoo.es
  268. password: Rey-1176
  269. # pgpassfile: /var/lib/pgadmin/storage/pgadmin/file.pgpass
  270. ## Set context path for application (e.g. /pgadmin4/*)
  271. # contextPath: /pgadmin4
  272. ## If True, allows pgAdmin4 to create session cookies based on IP address
  273. ## Ref: https://www.pgadmin.org/docs/pgadmin4/latest/config_py.html
  274. enhanced_cookie_protection: "False"
  275. ## Add custom environment variables that will be injected to deployment
  276. ## Ref: https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
  277. variables: []
  278. # - name: PGADMIN_LISTEN_ADDRESS
  279. # value: "0.0.0.0"
  280. # - name: PGADMIN_LISTEN_PORT
  281. # value: "8080"
  282. ## Additional environment variables from ConfigMaps
  283. envVarsFromConfigMaps: []
  284. # - array-of
  285. # - config-map-names
  286. ## Additional environment variables from Secrets
  287. envVarsFromSecrets: []
  288. # - array-of
  289. # - secret-names
  290. ## Additional environment variables
  291. envVarsExtra: []
  292. # - name: POSTGRES_USERNAME
  293. # valueFrom:
  294. # secretKeyRef:
  295. # name: pgadmin.pgadmin-db.credentials.postgresql.acid.zalan.do
  296. # key: username
  297. # - name: POSTGRES_PASSWORD
  298. # valueFrom:
  299. # secretKeyRef:
  300. # name: pgadmin.pgadmin-db.credentials.postgresql.acid.zalan.do
  301. # key: password
  302. ## Persistent volume configuration
  303. persistentVolume:
  304. ## If true, pgAdmin4 will create/use a Persistent Volume Claim
  305. ## If false, use emptyDir
  306. enabled: true
  307. ## pgAdmin4 Persistent Volume Claim annotations
  308. annotations: {}
  309. ## pgAdmin4 Persistent Volume access modes
  310. ## Must match those of existing PV or dynamic provisioner
  311. ## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
  312. accessModes:
  313. - ReadWriteOnce
  314. ## pgAdmin4 Persistent Volume Size
  315. size: 100Mi
  316. ## pgAdmin4 Persistent Volume Storage Class
  317. ## If defined, storageClassName: <storageClass>
  318. ## If set to "-", storageClassName: "", which disables dynamic provisioning
  319. ## If undefined (the default) or set to null, no storageClassName spec is
  320. ## set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS & OpenStack)
  321. # storageClass: "-"
  322. # existingClaim: ""
  323. ## Subdirectory of pgAdmin4 Persistent Volume to mount
  324. ## Useful if the volume's root directory is not empty
  325. subPath: ""
  326. ## Additional volumes to be added to the deployment
  327. extraVolumes: []
  328. ## Security context to be added to pgAdmin4 pods
  329. securityContext:
  330. runAsUser: 5050
  331. runAsGroup: 5050
  332. fsGroup: 5050
  333. ## Container security context
  334. containerSecurityContext:
  335. enabled: false
  336. allowPrivilegeEscalation: false
  337. ## pgAdmin4 health check probe configuration
  338. ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
  339. livenessProbe:
  340. periodSeconds: 20
  341. timeoutSeconds: 5
  342. failureThreshold: 3
  343. readinessProbe:
  344. periodSeconds: 10
  345. timeoutSeconds: 3
  346. failureThreshold: 3
  347. startupProbe:
  348. failureThreshold: 18
  349. periodSeconds: 10
  350. ## Required to be enabled pre pgAdmin4 4.16 release, to set the ACL on /var/lib/pgadmin
  351. ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
  352. VolumePermissions:
  353. ## If true, enables an InitContainer to set permissions on /var/lib/pgadmin
  354. enabled: false
  355. ## List of extra manifests to deploy
  356. extraDeploy: []
  357. ## Additional InitContainers to initialize the pod
  358. extraInitContainers: |
  359. # - name: add-folder-for-pgpass
  360. # image: "dpage/pgadmin4:latest"
  361. # command: ["/bin/mkdir", "-p", "/var/lib/pgadmin/storage/pgadmin"]
  362. # volumeMounts:
  363. # - name: pgadmin-data
  364. # mountPath: /var/lib/pgadmin
  365. # securityContext:
  366. # runAsUser: 5050
  367. ## Container port configuration
  368. containerPorts:
  369. http: 80
  370. ## Resource limits and requests
  371. ## We usually recommend not to specify default resources and to leave this as a conscious
  372. ## choice for the user. This also increases chances charts run on environments with little
  373. ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  374. ## lines, adjust them as necessary, and remove the curly braces after 'resources:'
  375. ## You might also want to increase failure threshold value in startup probe configuration to
  376. ## allow the container to start successfully on CPU limited environments
  377. resources: {}
  378. # limits:
  379. # cpu: 100m
  380. # memory: 128Mi
  381. # requests:
  382. # cpu: 100m
  383. # memory: 128Mi
  384. ## Horizontal Pod Autoscaling
  385. ## Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
  386. autoscaling:
  387. enabled: false
  388. minReplicas: 1
  389. maxReplicas: 100
  390. targetCPUUtilizationPercentage: 80
  391. # targetMemoryUtilizationPercentage: 80
  392. ## Node labels for pgAdmin4 pod assignment
  393. ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  394. nodeSelector: {}
  395. ## Node tolerations for server scheduling to nodes with taints
  396. ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
  397. tolerations: []
  398. ## Pod affinity
  399. affinity: {}
  400. ## Topology Spread Constraints to control how Pods are spread across your cluster
  401. ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
  402. topologySpreadConstraints: []
  403. ## Pod DNS Policy
  404. ## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
  405. dnsPolicy: ""
  406. ## Update pod DNS Config
  407. ## Ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config
  408. dnsConfig: {}
  409. # nameservers:
  410. # - 192.0.2.1
  411. # searches:
  412. # - ns1.svc.cluster-domain.example
  413. # - my.dns.search.suffix
  414. # options:
  415. # - name: ndots
  416. # value: "2"
  417. # - name: edns0
  418. ## Pod annotations
  419. podAnnotations: {}
  420. ## Templated pod annotations
  421. templatedPodAnnotations: |-
  422. # checksum/configmap-oauth2: {{ include "<parent-chart-name>/templates/configmap-oauth2.yaml" $ | sha256sum }}
  423. # checksum/secret-oauth2: "{{ include "<parent-chart-name>/templates/secret-oauth2.yaml" $ | sha256sum }}"
  424. # checksum/secret-pgpass: "{{ include "<parent-chart-name>/templates/secret-pgpass.yaml" $ | sha256sum }}"
  425. ## Pod labels
  426. podLabels: {}
  427. # key1: value1
  428. # key2: value2
  429. ## The name of the Namespace to deploy
  430. ## If not set, .Release.Namespace is used
  431. namespace: null
  432. ## Init container configuration
  433. init:
  434. ## Init container resources
  435. resources: {}
  436. ## Chart test configuration
  437. test:
  438. enabled: true
  439. ## Container image for test-connection.yaml
  440. image:
  441. registry: docker.io
  442. repository: busybox
  443. tag: latest
  444. ## Resources request/limit for test-connection Pod
  445. resources: {}
  446. # limits:
  447. # cpu: 50m
  448. # memory: 32Mi
  449. # requests:
  450. # cpu: 25m
  451. # memory: 16Mi
  452. ## Security context for test-connection Pod
  453. securityContext:
  454. runAsUser: 5051
  455. runAsGroup: 5051
  456. fsGroup: 5051
  457. ## Container Security context for test-connection Pod
  458. containerSecurityContext:
  459. readOnlyRootFilesystem: true