Skip to content

Helm

Helm is the package manager for Kubernetes, and you can read detailed background information in the CNCF Helm Project Journey report.

Install the Helm Chart

To install kobs using Helm you have to add our Helm repository:

helm repo add kobs https://helm.kobs.io
helm repo list

When you have added the Helm repository, you can install kobs:

helm install kobs kobs/kobs

When the installation was successful you shoud see a message like the following:

NAME: kobs
LAST DEPLOYED: Fri Apr  2 21:48:11 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
Visit https://kobs.io for more information.

Update the Helm Chart

To update the Helm repository and to show all available versions of the Helm chart, you can run the following commands:

helm repo update
helm search repo -l kobs/

To update your deployed Helm chart run:

helm upgrade --install kobs kobs/kobs

Values

Value Description Default
nameOverride Expand the name of the chart. ""
fullnameOverride Override the name of the app. ""
replicas Number of replicas for the kobs Deployment. 1
imagePullSecrets Specify a list of image pull secrets, to avoid the DockerHub rate limit or to pull the kobs/enovy image from a private registry. []
podSecurityContext Specify security settings for the created Pods. To set the security settings for the kobs or envoy Container use the corresponding securityContext field. {}
nodeSelector Specify a map of key-value pairs, to assign the Pods to a specific set of nodes. {}
tolerations Specify the tolerations for the kobs Pods. []
affinity Specify a node affinity or inter-pod affinity / anti-affinity for an advanced scheduling of the kobs Pods. {}
volumes Specify additional volumes for the kobs deployment. []
kobs.image.repository The repository for the Docker image. kobsio/kobs
kobs.image.tag The tag of the Docker image which should be used. v0.8.0
kobs.image.pullPolicy The image pull policy for the Docker image. IfNotPresent
kobs.annotations Specify additional annotations for the created Pods. {}
kobs.labels Specify additional labels for the created Pods. {}
kobs.securityContext Specify security settings for the kobs Container. They override settings made at the Pod level via the podSecurityContext when there is overlap. {}
kobs.resources Set cpu and memory requests and limits for the kobs container. {}
kobs.volumeMounts Specify additional volumeMounts for the kobs container. []
kobs.env Set additional environment variables for the kobs container. []
kobs.settings.development Run kobs in development mode. false
kobs.settings.debug Enable the /api/debug endpoints for the API server. false
kobs.settings.auth.enabled Enable the authentication and authorization middleware. false
kobs.settings.auth.headerTeams The header, which contains the team ids. X-Auth-Request-Email
kobs.settings.auth.headerUser The header, which contains the user id. X-Auth-Request-Groups
kobs.settings.auth.sessiontInterval The interval for how long a session is valid. 48h0m0s
kobs.settings.clustersCacheDurationNamespaces The duration for how long the list of namespaces for each cluster should be cached. 5m
kobs.settings.logFormat Set the output format of the logs. Must be console or json. console
kobs.settings.logLevel Set the log level. Must be debug, info, warn, error, fatal or panic. info
kobs.config Content of the config.yaml file, which is loaded during the start of kobs and contains the configuration.
istio.virtualService.enabled Specifies whether a VirtualService should be created. false
istio.virtualService.gateways A list of gateways for the VirtualService. []
istio.virtualService.hosts A list of hosts for the VirtualService. []
istio.virtualService.timeout Timeout for gRPC requests. 300s
istio.virtualService.additionalRoutes A list of additional routes for the VirtualService. []
serviceAccount.enabled Specifies whether a service account should be created. true
serviceAccount.annotations Annotations to add to the service account. {}
serviceAccount.name The name of the service account to use. If not set and create is true, a name is generated using the fullname template ""
rbac.enabled Specifies whether a cluster role and cluster role binding should be created. true
rbac.name The name of the cluster role and cluster role binding to use. If not set and create is true, a name is generated using the fullname template. ""
service.type Set the type for the created Service: ClusterIP, NodePort, LoadBalancer. ClusterIP
service.annotations Specify additional annotations for the created Service. {}
service.labels Specify additional labels for the created Service. {}
networkPolicy.enabled Enable the creation of a NetworkPolicy for kobs. false
networkPolicy.ingressRules Ingress rules to allow / deny traffic from. [{}]
networkPolicy.egressRules Egress rules to allow / deny traffic to. [{}]
ingress.enabled Create an Ingress to expose kobs. false
ingress.annotations Annotations to add to the ingress. {}
ingress.hosts Hosts to use for the ingress. []
ingress.tls TLS configuration for the ingress. []
serviceMonitor.enabled Create a Service Monitor for kobs. false
serviceMonitor.interval Interval at which metrics should be scraped. Fallback to the Prometheus default unless specified.
serviceMonitor.scrapeTimeout Timeout after which the scrape is ended. Fallback to the Prometheus default unless specified.
serviceMonitor.labels Additional labels for the the Service Monitor. {}
serviceMonitor.honorLabels Chooses the metric's labels on collisions with target labels. false
serviceMonitor.metricRelabelings Metric relabel config. []
serviceMonitor.relabelings Relabel config. []

Examples

Use the kubeconfig Provider

The following values can be set to use the Helm chart with the kubeconfig provider.

volumes:
  - name: kubeconfig
    configMap:
      name: kubeconfig

kobs:
  volumeMounts:
    - name: kubeconfig
      mountPath: /kobs/kubeconfig.yaml
      subPath: kubeconfig.yaml
      readOnly: true

  config: |
    clusters:
      providers:
        - provider: kubeconfig
          kubeconfig:
            path: /kobs/kubeconfig.yaml

The example from above assumes that you create a ConfigMap with your kubeconfig file:

apiVersion: v1
kind: ConfigMap
metadata:
  name: kubeconfig
data:
  kubeconfig.yaml: |
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: <CERTIFICATE-AUTHORITY-DATA>
        server: <SERVER>
      name: kobs-demo
    contexts:
    - context:
        cluster: kobs-demo
        user: admin
      name: kobs-demo
    current-context: kobs-demo
    kind: Config
    preferences: {}
    users:
    - name: admin
      user:
        token: <TOKEN>