Kubernetes installation via helm uses a declarative approach to configuring the Dashboard.
To get started, you need to adjust the values.yaml
or
your custom yaml file to define settings before you run the installation script.
Declare the clusters:
Find the following line in the values.yaml
file:
clusters: []
Replace the line with a configuration that matches your clusters. For example:
clusters: - host: "db1.example.com" namespace: "dev" api-user: "sample-user" api-password: "<clear-text-password>" tcp-port: 11999 api-port: 8090 api-ssl: true ssl: true cert: "<base64-encoded-certificate>" api-cert: "<base64-encoded-certificate>" hostname-validation: true
You can add as many clusters as you'd like using the "- <cluster>" syntax.
While in this file the passwords are clear text, they are encrypted using the
DASHBOARD_SECRET
either defined manually, or
generated automatically during installation. Values within the deployed installation
will be encrypted.
Declare the Application Configuration:
Next, adjust the application configuration as necessary. See Section A.3, “The values.yaml
file”
for more details on each setting. Note that the configs here are in camelCase while in the final JSON they're snake_case
config: env: "production" version: "8.0.0" configPath: "/app/persistent/" logType: "console-edn" helm: true domain: "" path: "" port: 4090 ssl: false sslPort: 4091 browserPort: 4090 clustersConnectOnStart: false topologyStartupDiscover: false topologyCleanOnExit: false defaultRestPort: 8090 defaultTcpPort: 11999 hostnameValidation: true restTimeout: 15000
In the configuration take note of the following 5 values: domain
,
port
, browserPort
,
path
and restTimeout
.
If you leave the domain
and path
empty, you'll be prompted for them in the install.
port
is the application's port that the webserver responds to,
while browserPort
is used in the base url for the browser.
Normally you don't need to change the application port
but you
might need to change the browserPort
to match your Ingress settings.
For restTimeout
consider increasing it for big clusters or clusters
under heavy loads for a more reliable connection in the start-up phase. The indicated value is
in milliseconds.
User Credentials:
Adjust the default user credentials or be prompted for a default user during installation. The
install.pl
script itself creates only one user, if you want multiple
users define them here.
users: - role: admin # currently only admin role is supported. username: jane-doe password: <clear-text-password>
Passwords in yaml file are provided as clear text, during installation they're encrypted and final
users.json
will have hashed passwords on the server.
Configure Ingress (if required):
Dashboard does not install Ingress-Controllers by default! You must install the ingress controller yourself before installing the Dashboard. Dashboard only deploys an ingress resource to the cluster under it's own namespace. Without a controller this resource does nothing.
To enable Dashboard-specific ingress locate the following entries and adjust accordingly:
ingress: enabled: false # When true, creates dashboard ingress resource # You must create the IngressClass and then add it here. # Example of a controller: nginx see https://github.com/kubernetes/ingress-nginx for more information className: "" # ingressClassName ie. nginx # use config field's domain, path and port for ingress. # to fully control your setup set this to false and specify extraHosts. hostFromConfig: true # TLS config for ingress. # To use this create a secret with any name and add it here. # The secret must contain both base64 encoded certificate and the key as base64 encoded values. # See https://kubernetes.io/docs/concepts/services-networking/ingress/#tls for more tls: [] # - secretName: chart-example-tls # hosts: # - chart-example.local
Change ingress.enabled
to true if you want to create ingress resource
Add the className
of your index controller, i.e. nginx
Update tls
section with your tls secret and the Hosts field should
match config.domain
Being Installation
To begin the installation for kubernetes execute the following:
shell>cd /opt/continuent/software/tungsten-dashboard-8.0.0-10
shell>./install.pl -m kubernetes
The following example shows the output from running the installation and the prompts that will require answering:
shell>./install.pl -m kubernetes
Please enter custom values YAML file [values.yaml]: Please enter preferred admin user name:admin-user
Please enter a password for admin user:admin-password
Please enter the domain for your application without schema or port. Domain for your application [127.0.0.1]:example.com
Please enter the dashboard server port [4090]: The path is the part of the URL that comes after the domain. For example, if your application is hosted at http://example.com/dashboard, the path is dashboard. Please enter the path for your application [empty]: WARNING: Ingress is currently not enabled! Dashboard will not be accessible without port-forwarding from outside the cluster. Do you want to proceed with the current configuration? [y/N]:y
WARNING: TLS is not configured in your ingress settings! Running the dashboard without TLS encryption is not recommended for production use. To enable TLS, modify values.yaml to include your TLS secret and domain configuration: ingress: tls: - secretName: your-tls-secret hosts: - your.domain.com Do you want to proceed with insecure configuration? [y/N]:y
With current settings your base url will be: http://example.com:4090 This is the url the browser will load the resources for the dashboard from. Please input the container registry URL where Tungsten Dashboard image is stored (without a tag) [tungsten-dashboard]: Please enter Tungsten Dashboard version tag [8.0.0]: Current Kubernetes context is set to: arn:aws:eks:us-east-1:00000000000:example-cluster Do you want to proceed with the currently selected Kubernetes context? [y/N]:y
Installing Tungsten Dashboard Helm chart... NAME: tungsten-dashboard LAST DEPLOYED: Mon Apr 14 16:43:52 2025 NAMESPACE: tungsten-dashboard STATUS: deployed REVISION: 1 Waiting for deployment to become ready... deployment.apps/tungsten-dashboard condition met Installation completed! To uninstall current deployment, simply run 'helm uninstall tungsten-dashboard --namespace tungsten-dashboard'
During this installation, the script will post yaml files to the cluster using the kubernetes syntax
you provided via the helm installation logic. These yaml files are generated using the helm templating
syntax fed by the values.yaml
file.
Helm moves the values you give into the proper yaml file while kubernetes declares what yaml syntaxes and values in those syntaxes are available.
If you encounter issues during the installation start by inspecting the yaml posted to kubernetes and validating it against kubernetes documentation.
To uninstall Tungsten Dashboard, simply execute the following:
shell> helm uninstall tungsten-ui --namespace tungsten-ui
Additionally if you do not wish to keep the data from the dashboard run:
shell>kubectl -n tungsten-dashboard delete secret tungsten-dashboard-secret;
# check if tungsten-dashboard-vol exists. shell>kubectl -n tungsten-dashboard get pvc;
# if it does, remove it with: shell>kubectl -n tungsten-dashboard delete pvc tungsten-dashboard-vol;
Deleting or changing the secret without deleting the data will prevent users from logging in and the dashboard
from making any connections, effectively locking you out of the system. If this happens to you remove the
users.json
file and restart the dashboard application. This will recreate
the default user for you.