Skip to content

Commit 029921d

Browse files
committed
add: kubedash-4.0.0
1 parent 12e7d53 commit 029921d

27 files changed

Lines changed: 3553 additions & 247 deletions

charts/kubedash/Chart.lock

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
dependencies:
2-
- name: postgresql-ha
3-
repository: https://charts.bitnami.com/bitnami
4-
version: 13.4.5
2+
- name: redis
3+
repository: oci://docker.io/cloudpirates
4+
version: 0.26.8
5+
- name: postgres
6+
repository: oci://docker.io/cloudpirates
7+
version: 0.18.3
58
- name: metrics-server
69
repository: https://kubernetes-sigs.github.io/metrics-server/
710
version: 3.8.4
8-
digest: sha256:8b742b0b83b5f6ec8469884285f97fcc2d253b421211d144cf1f617cff963203
9-
generated: "2024-03-05T11:12:34.381423+01:00"
11+
digest: sha256:d9ffedaa043774c33563fd3d4bf6c8327f48170e40962e4cffa865ff24097a3d
12+
generated: "2026-03-31T12:27:53.99992+02:00"

charts/kubedash/Chart.yaml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ apiVersion: v2
33
name: kubedash
44
description: "KubeDash is a general purpose, web-based UI for Kubernetes clusters."
55
type: application
6-
version: 3.1.0
7-
appVersion: "3.1.0"
6+
version: 4.0.0
7+
appVersion: "4.0.0"
88
kubeVersion: ">=1.19.x-0"
99
keywords:
1010
- kubedash
@@ -18,10 +18,15 @@ sources:
1818
deprecated: false
1919

2020
dependencies:
21-
- name: postgresql-ha
22-
version: ">=11.9.4"
23-
repository: "https://charts.bitnami.com/bitnami"
24-
condition: postgresqlHa.enabled
21+
- name: redis
22+
version: ">=0.21.3"
23+
repository: "oci://docker.io/cloudpirates"
24+
condition: redis.enabled
25+
- name: postgres
26+
version: ">=0.14.6"
27+
repository: "oci://docker.io/cloudpirates"
28+
alias: postgresql
29+
condition: postgresql.enabled
2530
- name: metrics-server
2631
version: "3.8.4"
2732
repository: "https://kubernetes-sigs.github.io/metrics-server/"

charts/kubedash/README.md

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
### KubeDash
22

3-
![Version: 3.1.0](https://img.shields.io/badge/Version-3.1.0-informational?style=for-the-badge)
3+
![Version: 4.0.0](https://img.shields.io/badge/Version-4.0.0-informational?style=for-the-badge)
44
![Type: application](https://img.shields.io/badge/Type-application-informational?style=for-the-badge)
5-
![AppVersion: 3.1.0](https://img.shields.io/badge/AppVersion-3.1.0-informational?style=for-the-badge)
5+
![AppVersion: 4.0.0](https://img.shields.io/badge/AppVersion-4.0.0-informational?style=for-the-badge)
66

77
![Alpine Linux 3.15.0](https://img.shields.io/badge/alpine_linux_3.15.0-0D597F?style=for-the-badge&logo=alpine-linux&logoColor=white)
88
![Helm](https://img.shields.io/badge/helm-0F1689?style=for-the-badge&logo=helm&logoColor=white)
@@ -29,13 +29,27 @@ The following tables lists configurable parameters of the KubeDash chart and the
2929
| cluster.apiUrl | string | `"https://kubernetes.mydomain.intra:6443"` | k8s api url |
3030
| cluster.name | string | `"k8s-cluster"` | k8s api url |
3131
| containerSecurityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["all"]}}` | list of the container's SecurityContexts |
32-
| externalDatabase | object | `{"database":"kubedash","enabled":false,"host":"","password":"kubedash-pass","port":5432,"secret":{"name":"kubedash-postgresql","useExistingSecret":false},"username":"kubedash-user"}` | enable external postgresql support |
32+
| createClusterRole | bool | `true` | Enable ClusterRole creation. Disable if the role already exists. |
33+
| dbui | object | `{"image":{"plugins":"tables-filter,adminer-auto-login","pullPolicy":"IfNotPresent","repository":"sosedoff/pgweb","tag":"latest"}}` | deploy ui for db |
34+
| dbui.image.plugins | string | `"tables-filter,adminer-auto-login"` | adminer plugins |
35+
| dbui.image.pullPolicy | string | `"IfNotPresent"` | adminer image pull policy |
36+
| dbui.image.repository | string | `"sosedoff/pgweb"` | adminer image |
37+
| dbui.image.tag | string | `"latest"` | adminer image tag |
38+
| externalDatabase | object | `{"database":"kubedash","enabled":false,"host":"","password":"kubedash","port":5432,"secret":{"name":"kubedash-postgresql","useExistingSecret":false},"username":"kubedash"}` | enable external postgresql support |
39+
| externalDatabase.database | string | `"kubedash"` | External postgresql database |
40+
| externalDatabase.enabled | bool | `false` | Enable external postgresql |
41+
| externalDatabase.host | string | `""` | External postgresql host |
42+
| externalDatabase.password | string | `"kubedash"` | External postgresql password |
43+
| externalDatabase.port | int | `5432` | External postgresql port |
3344
| externalDatabase.secret.name | string | `"kubedash-postgresql"` | Name of the secret storing EXTERNAL_DATABASE_PASSWORD. |
3445
| externalDatabase.secret.useExistingSecret | bool | `false` | Secret must provide the following variables: EXTERNAL_DATABASE_PASSWORD. |
46+
| externalDatabase.username | string | `"kubedash"` | External postgresql username |
3547
| flaskConfig | string | `"production"` | flask environment: production or development |
3648
| image.pullPolicy | string | `"Always"` | The docker image pull policy |
3749
| image.repository | string | `"devopstales/kubedash"` | The docker image repository to use |
38-
| image.tag | string | `"2.0.0"` | The docker image tag to use |
50+
| image.statsdExporter.repository | string | `"prom/statsd-exporter"` | The docker image repository to use |
51+
| image.statsdExporter.tag | string | `"v0.22.4"` | The docker image tag to use |
52+
| image.tag | string | `"3.1.0"` | The docker image tag to use |
3953
| imagePullSecrets | list | `[]` | pullsecrets |
4054
| ingress.annotations | object | `{"nginx.ingress.kubernetes.io/proxy-body-size":"10m","nginx.ingress.kubernetes.io/proxy-read-timeout":"3600","nginx.ingress.kubernetes.io/proxy-send-timeout":"3600","nginx.ingress.kubernetes.io/server-snippets":"location / {\n proxy_set_header Upgrade $http_upgrade;\n proxy_http_version 1.1;\n proxy_set_header X-Forwarded-Host $http_host;\n proxy_set_header X-Forwarded-Proto $scheme;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_set_header Host $host;\n proxy_set_header Connection \"upgrade\";\n proxy_cache_bypass $http_upgrade;\n}\n"}` | Extra annotation to the Ingress object |
4155
| ingress.className | string | `"nginx"` | Ingress class name |
@@ -48,6 +62,20 @@ The following tables lists configurable parameters of the KubeDash chart and the
4862
| ingress.whitelist.enabled | bool | `false` | Enable ip blocking on ingress |
4963
| ingress.whitelist.ips | list | `[]` | List of ips to allow communication |
5064
| logLevel | string | `"INFO"` | Log level |
65+
| metrics.enabled | bool | `true` | Enable metrics |
66+
| metrics.grafana.annotations.grafana_folder | string | `"KubeDash"` | |
67+
| metrics.grafana.enabled | bool | `true` | Enable grafana dashboard deploy |
68+
| metrics.grafana.labels.grafana_dashboard | string | `"1"` | |
69+
| metrics.grafana.namespace | string | `"monitoring-system"` | Grafana dashboard namespace |
70+
| metrics.serviceMonitor.annotations | object | `{}` | Prometheus service monitor annotations |
71+
| metrics.serviceMonitor.enabled | bool | `false` | Enable prometheus service monitor |
72+
| metrics.serviceMonitor.honorLabels | object | `{}` | |
73+
| metrics.serviceMonitor.interval | string | `"30s"` | Prometheus service monitor interval |
74+
| metrics.serviceMonitor.jobLabel | object | `{}` | Prometheus service monitor job labels |
75+
| metrics.serviceMonitor.labels | object | `{"release":"kube-prometheus-stack"}` | Prometheus service monitor labels |
76+
| metrics.serviceMonitor.metricRelabelings | list | `[]` | |
77+
| metrics.serviceMonitor.relabelings | list | `[]` | |
78+
| metrics.serviceMonitor.scrapeTimeout | string | `"10s"` | Prometheus service monitor scrape timeout |
5179
| metricsServer | object | `{"args":["--kubelet-preferred-address-types=InternalIP","--kubelet-insecure-tls"],"enabled":false}` | enable metrics-server |
5280
| nodeSelector | object | `{}` | Set nodeSelector for the pod |
5381
| oidc | object | `{"enabled":false,"provider":{"oidcClientId":"","oidcScopes":"openid email","oidcSecret":"","oidcUrl":"https://sso.mydomain.intra/auth/realms/k8s"},"secret":{"name":"kubedash-oidc","useExistingSecret":false}}` | oidc connection information |
@@ -58,18 +86,40 @@ The following tables lists configurable parameters of the KubeDash chart and the
5886
| oidc.provider.oidcUrl | string | `"https://sso.mydomain.intra/auth/realms/k8s"` | oidc issuer url |
5987
| oidc.secret.name | string | `"kubedash-oidc"` | Name of the secret storing OIDC_CLIENT_ID and OIDC_SECRET. |
6088
| oidc.secret.useExistingSecret | bool | `false` | Secret must provide the following variables: OIDC_CLIENT_ID and OIDC_SECRET. |
61-
| persistence | object | `{"accessMode":"ReadWriteOnce","annotations":{},"enabled":true,"size":"1Gi"}` | enable persistence |
89+
| persistence | object | `{"accessMode":"ReadWriteOnce","annotations":{},"enabled":true,"size":"1Gi","storageClass":"-"}` | enable persistence |
6290
| persistence.accessMode | string | `"ReadWriteOnce"` | Volumes mode |
6391
| persistence.annotations | object | `{}` | Volumes annotations |
6492
| persistence.enabled | bool | `true` | Volumes for the pod |
6593
| persistence.size | string | `"1Gi"` | Volumes size |
66-
| plugins | object | `{"certManager":{"enabled":false},"externalLoadbalancer":{"enabled":false},"helmDashboard":{"enabled":true},"registryUi":{"enabled":false}}` | enable plugins |
67-
| plugins.certManager.enabled | bool | `false` | Enable helm dashboard plugin |
68-
| plugins.externalLoadbalancer.enabled | bool | `false` | Enable external loadbalancer plugin |
94+
| plugins | object | `{"certManager":{"enabled":true},"externalLoadbalancer":{"enabled":true},"flux":{"enabled":true},"helmDashboard":{"enabled":true},"registryUi":{"enabled":true}}` | enable plugins |
95+
| plugins.certManager.enabled | bool | `true` | Enable helm dashboard plugin |
96+
| plugins.externalLoadbalancer.enabled | bool | `true` | Enable external loadbalancer plugin |
97+
| plugins.flux.enabled | bool | `true` | Enable flux plugin |
6998
| plugins.helmDashboard.enabled | bool | `true` | Enable helm dashboard plugin |
70-
| plugins.registryUi.enabled | bool | `false` | Enable registry UI plugin |
99+
| plugins.registryUi.enabled | bool | `true` | Enable registry UI plugin |
71100
| podSecurityContext | object | `{"fsGroup":10001,"fsGroupChangePolicy":"OnRootMismatch","runAsNonRoot":true,"runAsUser":10001}` | list of the pos's SecurityContexts |
72-
| postgresqlHa | object | `{"enabled":false,"metrics":{"enabled":true,"serviceMonitor":{"enabled":false}},"persistence":{"enabled":true},"pgpool":{"adminPassword":"change-me","replicaCount":2},"postgresql":{"database":"kubedash","password":"kubedash-pass","postgresPassword":"change-me","repmgrPassword":"change-me","username":"kubedash-user"},"rbac":{"create":true}}` | deploy HA postgresql |
101+
| postgresql | object | `{"auth":{"database":"kubedash","password":"kubedash","postgresPassword":"change-me","replicationPassword":"change-me","username":"kubedash"},"enabled":true,"metrics":{"enabled":true,"serviceMonitor":{"enabled":false,"honorLabels":{},"jobLabel":{},"labels":{"release":"kube-prometheus-stack"}}},"primary":{"persistence":{"size":"10Gi"}},"rbac":{"create":true},"readReplicas":{"replicaCount":0},"securityContext":{"enabled":false},"shmVolume":{"chmod":{"enabled":false}},"volumePermissions":{"enabled":false,"securityContext":{"runAsUser":"auto"}}}` | deploy postgresql |
102+
| postgresql.auth.database | string | `"kubedash"` | Postgresql database |
103+
| postgresql.auth.password | string | `"kubedash"` | Postgresql password |
104+
| postgresql.auth.postgresPassword | string | `"change-me"` | Postgresql postgres user password |
105+
| postgresql.auth.replicationPassword | string | `"change-me"` | Postgresql replication password |
106+
| postgresql.auth.username | string | `"kubedash"` | Postgresql username |
107+
| postgresql.enabled | bool | `true` | Enable postgresql |
108+
| postgresql.metrics.enabled | bool | `true` | Enable postgresql metrics |
109+
| postgresql.metrics.serviceMonitor.enabled | bool | `false` | Enable prometheus service monitor |
110+
| postgresql.metrics.serviceMonitor.jobLabel | object | `{}` | Set serviceMonitor labels |
111+
| postgresql.metrics.serviceMonitor.labels | object | `{"release":"kube-prometheus-stack"}` | Prometheus service monitor labels |
112+
| postgresql.readReplicas.replicaCount | int | `0` | Number of read replicas to create |
113+
| postgresql.securityContext.enabled | bool | `false` | Enable postgresql security context |
114+
| postgresql.shmVolume.chmod | object | `{"enabled":false}` | Enable postgresql shared memory volume |
115+
| postgresql.volumePermissions.enabled | bool | `false` | Enable init container to set permissions on data volume |
116+
| redis | object | `{"architecture":"standalone","enabled":true,"metrics":{"enabled":true,"serviceMonitor":{"additionalLabels":{"release":"kube-prometheus-stack"},"enabled":false}}}` | enable redis for caching |
117+
| redis.architecture | string | `"standalone"` | Redis cluster architecture |
118+
| redis.enabled | bool | `true` | Enable redis |
119+
| redis.metrics.enabled | bool | `true` | Enable redis metrics |
120+
| redis.metrics.serviceMonitor.additionalLabels | object | `{"release":"kube-prometheus-stack"}` | Prometheus service monitor namespace namespace: "monitoring" |
121+
| redis.metrics.serviceMonitor.enabled | bool | `false` | Enable prometheus service monitor |
122+
| redisui | object | `{"image":{"pullPolicy":"Always","repository":"patrikx3/p3x-redis-ui","tag":"latest"},"resources":{}}` | redis ui |
73123
| replicas | int | `1` | replica number - for multiple replicas you need to enable externalDatabase support |
74124
| route.annotations | object | `{}` | Extra annotation to the OpenShift Route object |
75125
| route.enabled | bool | `false` | Enable OpenShift Route object creation |
42.4 KB
Binary file not shown.
-81.5 KB
Binary file not shown.
57.7 KB
Binary file not shown.
Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
---
2+
hide:
3+
- toc
4+
---
5+
6+
# Configuration
7+
8+
Create a values file for your helm deploy:
9+
10+
```yaml
11+
# -- Time Zone in container
12+
TimeZone: "CET"
13+
# -- Log level
14+
logLevel: "INFO"
15+
# -- flask environment: production or development
16+
flaskConfig: "production"
17+
18+
serviceAccount:
19+
# -- Enable automatic serviceAccount creation
20+
create: true
21+
# -- Configure the name of the serviceAccount
22+
name: "kubedash-admin"
23+
24+
image:
25+
# -- The docker image repository to use
26+
repository: devopstales/kubedash
27+
# -- Configure the pull policy
28+
pullPolicy: Always
29+
# -- The docker image tag to use
30+
tag: 3.1.0
31+
32+
# -- pullsecrets
33+
imagePullSecrets: []
34+
35+
# -- replica number - for multiple replicas you need to enable externalDatabase support
36+
replicas: 1
37+
38+
# -- enable external postgresql support
39+
externalDatabase:
40+
enabled: false
41+
host: ""
42+
port: 5432
43+
database: "kubedash"
44+
username: "kubedash-user"
45+
password: "kubedash-pass"
46+
secret:
47+
# -- Name of the secret storing EXTERNAL_DATABASE_PASSWORD.
48+
name: "kubedash-postgresql"
49+
# -- Secret must provide the following variables: EXTERNAL_DATABASE_PASSWORD.
50+
useExistingSecret: false
51+
52+
# -- deploy HA postgresql
53+
postgresqlHa:
54+
enabled: false
55+
rbac:
56+
create: true
57+
persistence:
58+
enabled: true
59+
# storageClass: default
60+
postgresql:
61+
database: "kubedash"
62+
username: "kubedash-user"
63+
password: "kubedash-pass"
64+
repmgrPassword: "change-me"
65+
postgresPassword: "change-me"
66+
pgpool:
67+
replicaCount: 2
68+
adminPassword: "change-me"
69+
metrics:
70+
enabled: true
71+
serviceMonitor:
72+
enabled: false
73+
# https://artifacthub.io/packages/helm/bitnami/postgresql-ha
74+
75+
# -- enable metrics-server
76+
metricsServer:
77+
enabled: false
78+
args:
79+
- --kubelet-preferred-address-types=InternalIP
80+
- --kubelet-insecure-tls
81+
82+
# -- k8s connection information.
83+
cluster:
84+
# -- k8s api url
85+
name: "k8s-cluster"
86+
# -- k8s api url
87+
apiUrl: "https://kubernetes.mydomain.intra:6443"
88+
# `apiServer` is the url for kubectl
89+
# This is typically https://api.fqdn
90+
# -- k8s ca cert
91+
caCert: |-
92+
-----BEGIN CERTIFICATE-----
93+
cert data here
94+
-----END CERTIFICATE-----
95+
# `caCrt` is the public / CA cert for the cluster
96+
# cat /etc/kubernetes/pki/ca.crt
97+
98+
# -- oidc connection information
99+
oidc:
100+
# -- Enable oidc authentication
101+
enabled: false
102+
provider:
103+
# -- oidc issuer url
104+
oidcUrl: "https://sso.mydomain.intra/auth/realms/k8s"
105+
# -- oidc scope
106+
oidcScopes: "openid email"
107+
# -- oidc client id
108+
oidcClientId: ""
109+
# -- oidc client secret
110+
oidcSecret: ""
111+
secret:
112+
# -- Name of the secret storing OIDC_CLIENT_ID and OIDC_SECRET.
113+
name: "kubedash-oidc"
114+
# -- Secret must provide the following variables: OIDC_CLIENT_ID and OIDC_SECRET.
115+
useExistingSecret: false
116+
117+
# -- enable plugins
118+
plugins:
119+
registryUi:
120+
# -- Enable registry UI plugin with set PLUGIN_REGISTRY_ENABLED
121+
enabled: false
122+
helmDashboard:
123+
# -- Enable helm dashboard plugin with set PLUGIN_HELM_ENABLED
124+
enabled: true
125+
126+
persistence:
127+
# -- Volumes for the pod
128+
enabled: true
129+
# -- Volumes mode
130+
accessMode: "ReadWriteOnce"
131+
# -- Volumes size
132+
size: "1Gi"
133+
# -- Volumes annotations
134+
annotations: {}
135+
## database data Persistent Volume Storage Class
136+
## If defined, storageClassName: <storageClass>
137+
## If set to "-", storageClassName: "", which disables dynamic provisioning
138+
## If undefined (the default) or set to null, no storageClassName spec is
139+
## set, choosing the default provisioner. (gp2 on AWS, standard on
140+
## GKE, AWS & OpenStack)
141+
##
142+
# storageClass: "-"
143+
144+
ingress:
145+
# -- Enable Ingress object creation
146+
enabled: true
147+
# -- Ingress class name
148+
className: "nginx"
149+
# -- URL of the Ingress object
150+
url: "kubedash.mydomain.intra"
151+
# -- Extra annotation to the Ingress object
152+
annotations:
153+
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
154+
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
155+
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
156+
nginx.ingress.kubernetes.io/server-snippets: |
157+
location / {
158+
proxy_set_header Upgrade $http_upgrade;
159+
proxy_http_version 1.1;
160+
proxy_set_header X-Forwarded-Host $http_host;
161+
proxy_set_header X-Forwarded-Proto $scheme;
162+
proxy_set_header X-Forwarded-For $remote_addr;
163+
proxy_set_header Host $host;
164+
proxy_set_header Connection "upgrade";
165+
proxy_cache_bypass $http_upgrade;
166+
}
167+
tls:
168+
# -- Enable tls on Ingress object
169+
enabled: true
170+
# -- Name of the secret storing tls cert
171+
tlsSecret: ""
172+
certManager:
173+
# -- Enable certManager
174+
enabled: false
175+
# -- Name of the certManager cluster issuer to use
176+
clusterIssuer: "letsencrypt"
177+
whitelist:
178+
# -- Enable ip blocking on ingress
179+
enabled: false
180+
# -- List of ips to allow communication
181+
ips: []
182+
183+
route:
184+
# -- Enable OpenShift Route object creation
185+
enabled: false
186+
# -- URL of the OpenShift Route object
187+
url: "kubedash.mydomain.intra"
188+
# -- Extra annotation to the OpenShift Route object
189+
annotations: {}
190+
191+
# -- list of the pos's SecurityContexts
192+
podSecurityContext:
193+
runAsNonRoot: true
194+
runAsUser: 10001
195+
fsGroup: 10001
196+
fsGroupChangePolicy: "OnRootMismatch"
197+
198+
# -- list of the container's SecurityContexts
199+
containerSecurityContext:
200+
allowPrivilegeEscalation: false
201+
capabilities:
202+
drop: ["all"]
203+
204+
## Define which Nodes the Pods are scheduled on.
205+
## ref: https://kubernetes.io/docs/user-guide/node-selection/
206+
# -- Set nodeSelector for the pod
207+
nodeSelector: {}
208+
209+
## Tolerations for use with node taints
210+
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
211+
# -- Set tolerations for the pod
212+
tolerations: []
213+
# - key: "key"
214+
# operator: "Equal"
215+
# value: "value"
216+
# effect: "NoSchedule"
217+
218+
## Assign custom affinity rules to the trivy operator
219+
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
220+
##
221+
222+
## Assign custom affinity rules to the deployment
223+
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
224+
# -- Set the affinity for the pod.
225+
affinity: {}
226+
# nodeAffinity:
227+
# requiredDuringSchedulingIgnoredDuringExecution:
228+
# nodeSelectorTerms:
229+
# - matchExpressions:
230+
# - key: kubernetes.io/e2e-az-name
231+
# operator: In
232+
# values:
233+
# - e2e-az1
234+
# - e2e-az2
235+
```
236+
237+
## Operator Configuration
238+
239+
The following tables lists configurable parameters of the trivy-operator chart and their default values.
240+
241+
{{ template "chart.valuesSection" . }}

0 commit comments

Comments
 (0)