* Object model with self-sufficient binary (#131) * Code cosmetics * Experimenting with object model and direct HELM usage * Experiment with object model * replacing the kubectl * Progressing * Save the progress * Able to start with migration in mind * Migrated two pieces * List releases via Helm * Forgotten field * Cristallized the problem of ctx switcher * Reworked to multi-context * Rollback is also new style * More migration * Refactoring * Describe via code * Bye-bye kubectl binary * Eliminate more old code * Refactor a bit * Merges * No binaries in dockerfile * Commit * Progress with getting the data * Learned the thing about get * One field less * Sstart with repos * Repo add * repo remove * Repos! Icons! * Simplified access to data * Ver listing works * Ver check works * Caching and values * fixup * Done with repos * Working on install * Install work-ish * Fix UI failing on install * Upgrade flow works * Fix image building * Remove outdated test file * Move files around * REfactorings * Cosmetics * Test for cache control (#151) * Files import formatted * Added go-test tools * Added test for no-cache header * added changes * test for cache behaviour of app * test for static route (#153) * Tests: route configuration & context setter (#154) * Test for route configuration * Test for context setter middleware * implemented changes * Restore coverage profile Fixes #156 * Cosmetics * Test for `NewRouter` function (#157) * Test for `configureScanners` (#158) * Test for `configureKubectls` (#163) * Test for repository loading (#169) - Created `repos_test.go` - Test: `Load()` of Repositories * Build all PRs * Fixes failing test (#171) * Fixes failing test - Fixes failing test of repo loading * handles error for * Did some changes * Test for listing of repos (#173) - and did some code formatting Signed-off-by: OmAxiani0 <aximaniom@gmail.com> Signed-off-by: OmAxiani0 <aximaniom@gmail.com> * Test for adding repo (#175) - Modified the `repositories.yml` file Signed-off-by: OmAxiani0 <aximaniom@gmail.com> Signed-off-by: OmAxiani0 <aximaniom@gmail.com> * Test for deleting the repository (#176) * Test for deleting the repository - Also added cleanup function for `TestAdd` * Fixes failing test * Add auto labeler for PR's (#174) * Add auto labeler for PR's * Add all file under .github/workflow to 'ci' label Co-authored-by: Harshit Mehta <harshitm@nvidia.com> * Test for getting repository (#177) * Add github workflow for auto PR labeling (#181) Co-authored-by: Harshit Mehta <harshitm@nvidia.com> * Stub compilation * Fixes around installing * More complex test * Using object model to execute helm test (#191) * Expand test * More test * Coverage * Add mutex for operations * Rectore cluster detection code * Change receiver to pointer * Support multiple namespaces * Cosmetics * Update repos periodically * fix tests * Fix error display * Allow reconfiguring chart without repo * mute linter * Cosmetics * Failing approach to parse manifests Relates to #30 * Report the error properly * ✅ Add test for dashboard/objects/data.go NewDataLayer (#199) * Fix problem of wrong namespace * Added unit tests for releases (#204) * Rework API routes (#197) * Bootstrap OpenAPI doc * Renaming some routes * Listing namespaces * k8s part of things * Repositories section * Document scanners API * One more API call * Progress * Reworked install flow * History endpoint * Textual info section * Resources endpoint * Rollback endpoint * Rollback endpoint * Unit tests * Cleanup * Forgotten tags * Fix tests * TODOs * Rework manifest scanning * add hasTests flag * Adding more information on UI for helm test API response (#195) * Hide test button when no tests Fixes #115 Improves #195 --------- Signed-off-by: OmAxiani0 <aximaniom@gmail.com> Co-authored-by: Om Aximani <75031769+OmAximani0@users.noreply.github.com> Co-authored-by: Harshit Mehta <hdm23061993@gmail.com> Co-authored-by: Harshit Mehta <harshitm@nvidia.com> Co-authored-by: Todd Turner <todd@toddtee.sh> Co-authored-by: arvindsundararajan98 <109727359+arvindsundararajan98@users.noreply.github.com>
Helm Dashboard
TL;DR;
helm repo add komodorio https://helm-charts.komodor.io
helm repo update
helm upgrade --install my-release komodorio/helm-dashboard
Introduction
This chart bootstraps a Helm Dashboard deployment on a Kubernetes cluster using the Helm package manager.
While installed inside cluster, Helm Dashboard will run some additional backgroud actions, for example, will automatically update Helm repositories. To enable that behavior locally, set HD_CLUSTER_MODE env variable.
Prerequisites
- Kubernetes 1.16+
- Helm 3+
Installing the Chart
To install the chart with the release name my-release:
helm install my-release .
The command deploys Helm Dashboard on the Kubernetes cluster in the default configuration. The Parameters section lists the parameters that can be configured during installation.
Tip
: List all releases using
helm list
Uninstalling the Chart
To uninstall/delete the my-release deployment:
helm uninstall my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
Adding Authentication
The task of authentication and user control is out of scope for Helm Dashboard. Luckily, there are third-party solutions which are dedicated to provide that functionality.
For instance, you can place authentication proxy in front of Helm Dashboard, like this one: https://github.com/oauth2-proxy/oauth2-proxy
Parameters
The following table lists the configurable parameters of the chart and their default values.
| Parameter | Description | Default |
|---|---|---|
image.repository |
Image registry/name | docker.io/komodorio/helm-dashboard |
image.tag |
Image tag | |
image.pullPolicy |
Image pull policy | IfNotPresent |
replicaCount |
Number of dashboard Pods to run | 1 |
dashboard.allowWriteActions |
Enables write actions. Allow modifying, deleting and creating charts and kubernetes resources. | true |
resources.requests.cpu |
CPU resource requests | 200m |
resources.limits.cpu |
CPU resource limits | 1 |
resources.requests.memory |
Memory resource requests | 256Mi |
resources.limits.memory |
Memory resource limits | 1Gi |
service.type |
Kubernetes service type | ClusterIP |
service.port |
Kubernetes service port | 8080 |
serviceAccount.create |
Creates a service account | true |
serviceAccount.name |
Optional name for the service account | {RELEASE_FULLNAME} |
nodeSelector |
Node labels for pod assignment | |
affinity |
Affinity settings for pod assignment | |
tolerations |
Tolerations for pod assignment | |
dashboard.persistence.enabled |
Enable helm data persistene using PVC | true |
dashboard.persistence.accessModes |
Persistent Volume access modes | ["ReadWriteOnce"] |
dashboard.persistence.storageClass |
Persistent Volume storage class | "" |
dashboard.persistence.size |
Persistent Volume size | 100M |
dashboard.persistence.hostPath |
Set path in case you want to use local host path volumes (not recommended in production) | "" |
updateStrategy.type |
Set up update strategy for helm-dashboard installation. | RollingUpdate |
extraArgs |
Set the arguments to be supplied to the helm-dashboard binary | [--no-browser, --bind=0.0.0.0] |
Specify each parameter using the --set key=value[,key=value] argument to helm install.
helm upgrade --install my-release komodorio/helm-dashboard --set dashboard.allowWriteActions=true --set service.port=9090
Tip
: You can use the default values.yaml