Configuration
Create a values file for your helm deploy:
# -- Time Zone in container
TimeZone: "CET"
# -- Log level
logLevel: "INFO"
# -- flask environment: production or development
flaskConfig: "production"
serviceAccount:
# -- Enable automatic serviceAccount creation
create: true
# -- Configure the name of the serviceAccount
name: "kubedash-admin"
image:
# -- The docker image repository to use
repository: devopstales/kubedash
# -- Configure the pull policy
pullPolicy: Always
# -- The docker image tag to use
tag: 3.1.0
# -- pullsecrets
imagePullSecrets: []
# -- replica number - for multiple replicas you need to enable externalDatabase support
replicas: 1
# -- enable external postgresql support
externalDatabase:
enabled: false
host: ""
port: 5432
database: "kubedash"
username: "kubedash-user"
password: "kubedash-pass"
secret:
# -- Name of the secret storing EXTERNAL_DATABASE_PASSWORD.
name: "kubedash-postgresql"
# -- Secret must provide the following variables: EXTERNAL_DATABASE_PASSWORD.
useExistingSecret: false
# -- deploy HA postgresql
postgresqlHa:
enabled: false
rbac:
create: true
persistence:
enabled: true
# storageClass: default
postgresql:
database: "kubedash"
username: "kubedash-user"
password: "kubedash-pass"
repmgrPassword: "change-me"
postgresPassword: "change-me"
pgpool:
replicaCount: 2
adminPassword: "change-me"
metrics:
enabled: true
serviceMonitor:
enabled: false
# https://artifacthub.io/packages/helm/bitnami/postgresql-ha
# -- enable metrics-server
metricsServer:
enabled: false
args:
- --kubelet-preferred-address-types=InternalIP
- --kubelet-insecure-tls
# -- k8s connection information.
cluster:
# -- k8s api url
name: "k8s-cluster"
# -- k8s api url
apiUrl: "https://kubernetes.mydomain.intra:6443"
# `apiServer` is the url for kubectl
# This is typically https://api.fqdn
# -- k8s ca cert
caCert: |-
-----BEGIN CERTIFICATE-----
cert data here
-----END CERTIFICATE-----
# `caCrt` is the public / CA cert for the cluster
# cat /etc/kubernetes/pki/ca.crt
# -- oidc connection information
oidc:
# -- Enable oidc authentication
enabled: false
provider:
# -- oidc issuer url
oidcUrl: "https://sso.mydomain.intra/auth/realms/k8s"
# -- oidc scope
oidcScopes: "openid email"
# -- oidc client id
oidcClientId: ""
# -- oidc client secret
oidcSecret: ""
secret:
# -- Name of the secret storing OIDC_CLIENT_ID and OIDC_SECRET.
name: "kubedash-oidc"
# -- Secret must provide the following variables: OIDC_CLIENT_ID and OIDC_SECRET.
useExistingSecret: false
# -- enable plugins
plugins:
registryUi:
# -- Enable registry UI plugin with set PLUGIN_REGISTRY_ENABLED
enabled: false
helmDashboard:
# -- Enable helm dashboard plugin with set PLUGIN_HELM_ENABLED
enabled: true
persistence:
# -- Volumes for the pod
enabled: true
# -- Volumes mode
accessMode: "ReadWriteOnce"
# -- Volumes size
size: "1Gi"
# -- Volumes annotations
annotations: {}
## database data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
ingress:
# -- Enable Ingress object creation
enabled: true
# -- Ingress class name
className: "nginx"
# -- URL of the Ingress object
url: "kubedash.mydomain.intra"
# -- Extra annotation to the Ingress object
annotations:
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 / {
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header Connection "upgrade";
proxy_cache_bypass $http_upgrade;
}
tls:
# -- Enable tls on Ingress object
enabled: true
# -- Name of the secret storing tls cert
tlsSecret: ""
certManager:
# -- Enable certManager
enabled: false
# -- Name of the certManager cluster issuer to use
clusterIssuer: "letsencrypt"
whitelist:
# -- Enable ip blocking on ingress
enabled: false
# -- List of ips to allow communication
ips: []
route:
# -- Enable OpenShift Route object creation
enabled: false
# -- URL of the OpenShift Route object
url: "kubedash.mydomain.intra"
# -- Extra annotation to the OpenShift Route object
annotations: {}
# -- list of the pos's SecurityContexts
podSecurityContext:
runAsNonRoot: true
runAsUser: 10001
fsGroup: 10001
fsGroupChangePolicy: "OnRootMismatch"
# -- list of the container's SecurityContexts
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["all"]
## Define which Nodes the Pods are scheduled on.
## ref: https://kubernetes.io/docs/user-guide/node-selection/
# -- Set nodeSelector for the pod
nodeSelector: {}
## Tolerations for use with node taints
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
# -- Set tolerations for the pod
tolerations: []
# - key: "key"
# operator: "Equal"
# value: "value"
# effect: "NoSchedule"
## Assign custom affinity rules to the trivy operator
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
##
## Assign custom affinity rules to the deployment
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
# -- Set the affinity for the pod.
affinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: kubernetes.io/e2e-az-name
# operator: In
# values:
# - e2e-az1
# - e2e-az2
Operator Configuration
The following tables lists configurable parameters of the trivy-operator chart and their default values.
Values
Key | Type | Default | Description |
---|---|---|---|
TimeZone | string | "CET" |
Time Zone in container |
affinity | object | {} |
Set the affinity for the pod. |
cluster | object | {"apiUrl":"https://kubernetes.mydomain.intra:6443","name":"k8s-cluster"} |
k8s connection information. |
cluster.apiUrl | string | "https://kubernetes.mydomain.intra:6443" |
k8s api url |
cluster.name | string | "k8s-cluster" |
k8s api url |
containerSecurityContext | object | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["all"]}} |
list of the container's SecurityContexts |
createClusterRole | bool | true |
Enable ClusterRole creation. Disable if the role already exists. |
dbui | object | {"image":{"plugins":"tables-filter,adminer-auto-login","pullPolicy":"IfNotPresent","repository":"sosedoff/pgweb","tag":"latest"}} |
deploy ui for db |
dbui.image.plugins | string | "tables-filter,adminer-auto-login" |
adminer plugins |
dbui.image.pullPolicy | string | "IfNotPresent" |
adminer image pull policy |
dbui.image.repository | string | "sosedoff/pgweb" |
adminer image |
dbui.image.tag | string | "latest" |
adminer image tag |
externalDatabase | object | {"database":"kubedash","enabled":false,"host":"","password":"kubedash","port":5432,"secret":{"name":"kubedash-postgresql","useExistingSecret":false},"username":"kubedash"} |
enable external postgresql support |
externalDatabase.database | string | "kubedash" |
External postgresql database |
externalDatabase.enabled | bool | false |
Enable external postgresql |
externalDatabase.host | string | "" |
External postgresql host |
externalDatabase.password | string | "kubedash" |
External postgresql password |
externalDatabase.port | int | 5432 |
External postgresql port |
externalDatabase.secret.name | string | "kubedash-postgresql" |
Name of the secret storing EXTERNAL_DATABASE_PASSWORD. |
externalDatabase.secret.useExistingSecret | bool | false |
Secret must provide the following variables: EXTERNAL_DATABASE_PASSWORD. |
externalDatabase.username | string | "kubedash" |
External postgresql username |
flaskConfig | string | "production" |
flask environment: production or development |
image.pullPolicy | string | "Always" |
The docker image pull policy |
image.repository | string | "devopstales/kubedash" |
The docker image repository to use |
image.statsdExporter.repository | string | "prom/statsd-exporter" |
The docker image repository to use |
image.statsdExporter.tag | string | "v0.22.4" |
The docker image tag to use |
image.tag | string | "3.1.0" |
The docker image tag to use |
imagePullSecrets | list | [] |
pullsecrets |
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 |
ingress.className | string | "nginx" |
Ingress class name |
ingress.enabled | bool | true |
Enable Ingress object creation |
ingress.tls.certManager.clusterIssuer | string | "letsencrypt" |
Name of the certManager cluster issuer to use |
ingress.tls.certManager.enabled | bool | false |
Enable certManager |
ingress.tls.enabled | bool | true |
Enable tls on Ingress object |
ingress.tls.tlsSecret | string | "" |
Name of the secret storing tls cert |
ingress.url | string | "kubedash.mydomain.intra" |
URL of the Ingress object |
ingress.whitelist.enabled | bool | false |
Enable ip blocking on ingress |
ingress.whitelist.ips | list | [] |
List of ips to allow communication |
logLevel | string | "INFO" |
Log level |
metrics.enabled | bool | true |
Enable metrics |
metrics.grafana.annotations.grafana_folder | string | "KubeDash" |
|
metrics.grafana.enabled | bool | true |
Enable grafana dashboard deploy |
metrics.grafana.labels.grafana_dashboard | string | "1" |
|
metrics.grafana.namespace | string | "monitoring-system" |
Grafana dashboard namespace |
metrics.serviceMonitor.annotations | object | {} |
Prometheus service monitor annotations |
metrics.serviceMonitor.enabled | bool | false |
Enable prometheus service monitor |
metrics.serviceMonitor.honorLabels | object | {} |
|
metrics.serviceMonitor.interval | string | "30s" |
Prometheus service monitor interval |
metrics.serviceMonitor.jobLabel | object | {} |
Prometheus service monitor job labels |
metrics.serviceMonitor.labels | object | {"release":"kube-prometheus-stack"} |
Prometheus service monitor labels |
metrics.serviceMonitor.metricRelabelings | list | [] |
|
metrics.serviceMonitor.relabelings | list | [] |
|
metrics.serviceMonitor.scrapeTimeout | string | "10s" |
Prometheus service monitor scrape timeout |
metricsServer | object | {"args":["--kubelet-preferred-address-types=InternalIP","--kubelet-insecure-tls"],"enabled":false} |
enable metrics-server |
nodeSelector | object | {} |
Set nodeSelector for the pod |
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 |
oidc.enabled | bool | false |
Enable oidc authentication |
oidc.provider.oidcClientId | string | "" |
oidc client id |
oidc.provider.oidcScopes | string | "openid email" |
oidc scope |
oidc.provider.oidcSecret | string | "" |
oidc client secret |
oidc.provider.oidcUrl | string | "https://sso.mydomain.intra/auth/realms/k8s" |
oidc issuer url |
oidc.secret.name | string | "kubedash-oidc" |
Name of the secret storing OIDC_CLIENT_ID and OIDC_SECRET. |
oidc.secret.useExistingSecret | bool | false |
Secret must provide the following variables: OIDC_CLIENT_ID and OIDC_SECRET. |
persistence | object | {"accessMode":"ReadWriteOnce","annotations":{},"enabled":true,"size":"1Gi","storageClass":"-"} |
enable persistence |
persistence.accessMode | string | "ReadWriteOnce" |
Volumes mode |
persistence.annotations | object | {} |
Volumes annotations |
persistence.enabled | bool | true |
Volumes for the pod |
persistence.size | string | "1Gi" |
Volumes size |
plugins | object | {"certManager":{"enabled":true},"externalLoadbalancer":{"enabled":true},"flux":{"enabled":true},"helmDashboard":{"enabled":true},"registryUi":{"enabled":true}} |
enable plugins |
plugins.certManager.enabled | bool | true |
Enable helm dashboard plugin |
plugins.externalLoadbalancer.enabled | bool | true |
Enable external loadbalancer plugin |
plugins.flux.enabled | bool | true |
Enable flux plugin |
plugins.helmDashboard.enabled | bool | true |
Enable helm dashboard plugin |
plugins.registryUi.enabled | bool | true |
Enable registry UI plugin |
podSecurityContext | object | {"fsGroup":10001,"fsGroupChangePolicy":"OnRootMismatch","runAsNonRoot":true,"runAsUser":10001} |
list of the pos's SecurityContexts |
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 |
postgresql.auth.database | string | "kubedash" |
Postgresql database |
postgresql.auth.password | string | "kubedash" |
Postgresql password |
postgresql.auth.postgresPassword | string | "change-me" |
Postgresql postgres user password |
postgresql.auth.replicationPassword | string | "change-me" |
Postgresql replication password |
postgresql.auth.username | string | "kubedash" |
Postgresql username |
postgresql.enabled | bool | true |
Enable postgresql |
postgresql.metrics.enabled | bool | true |
Enable postgresql metrics |
postgresql.metrics.serviceMonitor.enabled | bool | false |
Enable prometheus service monitor |
postgresql.metrics.serviceMonitor.jobLabel | object | {} |
Set serviceMonitor labels |
postgresql.metrics.serviceMonitor.labels | object | {"release":"kube-prometheus-stack"} |
Prometheus service monitor labels |
postgresql.readReplicas.replicaCount | int | 0 |
Number of read replicas to create |
postgresql.securityContext.enabled | bool | false |
Enable postgresql security context |
postgresql.shmVolume.chmod | object | {"enabled":false} |
Enable postgresql shared memory volume |
postgresql.volumePermissions.enabled | bool | false |
Enable init container to set permissions on data volume |
redis | object | {"architecture":"standalone","enabled":true,"metrics":{"enabled":true,"serviceMonitor":{"additionalLabels":{"release":"kube-prometheus-stack"},"enabled":false}}} |
enable redis for caching |
redis.architecture | string | "standalone" |
Redis cluster architecture |
redis.enabled | bool | true |
Enable redis |
redis.metrics.enabled | bool | true |
Enable redis metrics |
redis.metrics.serviceMonitor.additionalLabels | object | {"release":"kube-prometheus-stack"} |
Prometheus service monitor namespace namespace: "monitoring" |
redis.metrics.serviceMonitor.enabled | bool | false |
Enable prometheus service monitor |
redisui | object | {"image":{"pullPolicy":"Always","repository":"patrikx3/p3x-redis-ui","tag":"latest"},"resources":{}} |
redis ui |
replicas | int | 1 |
replica number - for multiple replicas you need to enable externalDatabase support |
route.annotations | object | {} |
Extra annotation to the OpenShift Route object |
route.enabled | bool | false |
Enable OpenShift Route object creation |
route.url | string | "kubedash.mydomain.intra" |
URL of the OpenShift Route object |
serviceAccount.create | bool | true |
Enable automatic serviceAccount creation |
serviceAccount.name | string | "kubedash-admin" |
Configure the name of the serviceAccount |
tolerations | list | [] |
Set tolerations for the pod |