Releases: kubernetes/dashboard
metrics-scraper/v1.1.1
Image
docker.io/kubernetesui/dashboard-metrics-scraper:1.1.1
kubernetes-dashboard-7.0.0
Breaking change
This release introduces a couple of important changes to how Kubernetes Dashboard generally works. It requires clean installation.API container
It is now fully stateless, meaning it does not rely on Kubernetes resources to run. It will always require an authorization token to be present to authorize the request. It is no longer possible for the API container to use its own SA privileges to skip authorization. All arguments that were frontend specific have either been removed or moved to the Web container.
- The JWE encrypted token has been removed completely and we now rely fully on standard JWT tokens. This change has significantly simplified the auth flow.
- The Web container now manages Settings ConfigMap
- The plugin system has been removed as it was outdated and not working anymore. Currently, there is no plan to reintroduce it as it would require too much effort to maintain.
- Added
csrf-key
argument - Base64 encoded random 256 bytes key. Can be loaded fromCSRF_KEY
environment variable.
Auth container
Authentication logic is now handled by the new dashboard auth container. Currently, it only exposes /login
endpoint. We will also add support for OIDC with OAuth flow and /me
endpoint in the future.
- Added
csrf-key
argument - Base64 encoded random 256 bytes key. Can be loaded fromCSRF_KEY
environment variable.
Web container
- Settings save now uses user permissions instead of Dashboard.
- Removed restore settings ConfigMap logic
- Increased default resource autorefresh time interval to 10 seconds
- Added a small script to index.html to dynamically generate tag.
Go backend
- The backend now handles frontend settings and uses ConfigMap to store them.
- Settings backend has been updated to handle merge with default options properly in case ConfigMap does not contain all available options.
- Replaced
restful-go
withgin
as main web framework
Angular frontend
Since API requires from the user to always provide Authorization: Bearer <token>
now, there is no way to skip login and act as a Dashboard.
- Removed support for authentication options other than
token
on the login screen - Removed support for
skip
login option - Slightly updated login view
- Fixed an issue with zero state not being correctly displayed on some pages
Kong gateway
Since the number of our containers is growing as we split parts of the logic, we have decided to use a gateway that will connect all of them and ensure the Dashboard is working properly. There were a couple of reasons to choose Kong:
- Open Source with proper license
- Support for DBless configuration
- Easily configurable
- Popular
- Single container gateway when running in DBless mode
It will now be a required dependency that we use to expose the Dashboard. Users can then reconfigure it or use another proxy in front of it. It will simply act as a single point when accessing the Kubernetes Dashboard.
Metrics scraper
- Changed
sqlite
Go dependency to used driver implementation that does not requireCGO_ENABLED=1
during the build. It is a pure Go implementation.
Helm chart
This is a complete overhaul of the helm chart. It includes:
- Added DBless, single-container kong deployment as a default gateway for the Kubernetes Dashboard. This is a required dependency.
- Settings ConfigMap name/namespace is now configurable via values.yaml β web.settings.configMap entry.
- Scaling configuration has been split to allow configuring replicas per every container separately.
- Metrics scraper service name is no longer hardcoded in the API container. Its name is now generated similarly to other deployments/services.
- CSRF key is now generated by the helm and imported as an env var into the containers. This allowed us to drop generation logic and direct dependency on this secret from code.
- Image pull secrets are now properly respected by all deployments.
- RBACs for every deployment have been separated to make sure that every container gets as little permissions as possible.
- Ingress configuration has been updated to be more flexible:
- Dashboard can now be served more easily on a subpath simply by enabling app.ingress.enabled=true and app.ingress.path=/dashboard. It would serve Dashboard on https://localhost/dashboard by default.
- Default annotations can now be disabled via
app.ingress.useDefaultAnnotations=false
ingressClassName
can now be skipped from spec and it should fallback to using default ingress class (if configured). It is controlled byapp.ingress.useDefaultIngressClass
.
- Helm chart now supports API only mode meaning that you can deploy only an API container. This can be achieved by below configuration:
app.mode=api
kong.enabled=false
- Optionally you can also disable metrics with
api.containers.args={--metrics-provider=none}
cert-manager
,nginx
andmetrics-server
are now disabled by default. Onlykong
dependency is required.clusterReadOnlyRole
has been removed since it is no longer possible to use Dashboard permissions to access the cluster. User access is required at all times.
Installation
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
Compatibility
Kubernetes version | 1.27 | 1.28 | 1.29 |
---|---|---|---|
Compatibility | ? | ? | β |
β
Fully supported version range.?
Due to breaking changes between Kubernetes API versions, some features might not work correctly in the Dashboard.
Images
docker.io/kubernetesui/dashboard-api:1.2.0
docker.io/kubernetesui/dashboard-auth:1.1.0
docker.io/kubernetesui/dashboard-metrics-scraper:1.1.1
docker.io/kubernetesui/dashboard-web:1.2.0
What's Changed
- Mostly things described in Breaking change
- Dependency updates
Full Changelog: v3.0.0-alpha0...kubernetes-dashboard-7.0.0
auth/v1.1.0
Image
docker.io/kubernetesui/dashboard-auth:1.1.0
api/v1.2.0
Image
docker.io/kubernetesui/dashboard-api:1.2.0
web/v1.1.1
Image
docker.io/kubernetesui/dashboard-web:1.1.1
metrics-scraper/v1.1.0
Image
docker.io/kubernetesui/dashboard-metrics-scraper:1.1.0
auth/v1.0.0
Image
docker.io/kubernetesui/dashboard-auth:1.0.0
api/v1.1.0
Image
docker.io/kubernetesui/dashboard-api:1.1.0
v3.0.0-alpha0
Breaking Change
Starting from the release v3
of the Kubernetes Dashboard, the underlying architecture has changed, and it requires a clean installation. Please remove the previous installation first.
Kubernetes Dashboard now uses cert-manager and nginx-ingress-controller by default to work properly. Please make sure you have them installed in your cluster if you want to use a manifest-based installation path. The helm-based approach can install all required dependencies automatically for you if needed.
Compatibility
Kubernetes version | 1.25 | 1.26 | 1.27 |
---|---|---|---|
Compatibility | ? | ? | β |
β
Fully supported version range.?
Due to breaking changes between Kubernetes API versions, some features might not work correctly in the Dashboard.
Installation
You can now use Helm or a single Manifest to install Kubernetes Dashboard.
Helm
You can install Dashboard using Helm as described here.
Manifest
To install Kubernetes Dashboard using simple manifest and kubectl
simply run:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v3.0.0-alpha0/charts/kubernetes-dashboard.yaml
Images
Kubernetes Dashboard
WEB
docker.io/kubernetesui/dashboard-web:v1.0.0
API
docker.io/kubernetesui/dashboard-api:v1.0.0
Metrics Scraper
docker.io/kubernetesui/metrics-scraper:v1.0.9
What's Changed
- Updated Simplified Chinese translation by @hwdef in #7416
- Split frontend and backend by @maciaszczykm in #7047
- Use batch/v1 for fetching cronjob jobs by @neoaggelos in #7465
- GitHub Workflows security hardening by @sashashura in #7466
- Helm update v2.7.0 by @sobi3ch in #7469
- fix: update Secret with non-latin1 UTF-8 string by @Senorsen in #7477
- Build updates by @floreks in #7478
- Update config and dependencies by @maciaszczykm in #7476
- Get rid of ng-in-viewport dependency by @floreks in #7479
- check the existence of the http member of a ingress rule before iterating through it by @shankerwangmiao in #7481
- Bump helm/kind-action from 1.3.0 to 1.4.0 by @dependabot in #7482
- Bump helm/chart-testing-action from 2.2.1 to 2.3.1 by @dependabot in #7484
- Container resources by @marcosdiez in #7488
- Move about page to footer by @maciaszczykm in #7490
- Add support for multiarch docker build and deploy by @floreks in #7491
- fix:change toleration from master to control-plane by @yosshi825 in #7506
- Bump k8s.io/api from 0.25.2 to 0.25.3 in /modules/api by @dependabot in #7501
- Bump actions/setup-python from 3.1.2 to 4.3.0 by @dependabot in #7498
- Bump k8s.io/client-go from 0.25.2 to 0.25.3 in /modules/api by @dependabot in #7499
- yaml link updated by @krouser in #7524
- Bump actions/dependency-review-action from 2 to 3 by @dependabot in #7529
- Helm Chart: update podDisruptionBudget apiVersion to policy/v1. by @desaintmartin in #7530
- Helm Chart: if no image.tag is set, use default appVersion of Chart.yaml by @desaintmartin in #7531
- Fix license check by @maciaszczykm in #7518
- Bump k8s.io/client-go from 0.25.3 to 0.25.4 in /modules/api by @dependabot in #7528
- Bump github.com/emicklei/go-restful/v3 from 3.9.0 to 3.10.0 in /modules/api by @dependabot in #7525
- Bump github.com/prometheus/client_golang from 1.13.0 to 1.14.0 in /modules/api by @dependabot in #7520
- Replace deprecated k8s registry references. by @jmhbnz in #7513
- feat: update Spanish localization by @anyulled in #7492
- Bump k8s.io/apiextensions-apiserver from 0.25.2 to 0.25.4 in /modules/api by @dependabot in #7526
- Cleanup & build system updates by @floreks in #7537
- feat: update Korean localization by @jc01rho in #7514
- Bump github.com/emicklei/go-restful/v3 from 3.10.0 to 3.10.1 in /modules/api by @dependabot in #7540
- Bump wiremind/helm-kubeval-action from 1.2.1 to 1.2.2 by @dependabot in #7538
- Bump golang.org/x/net from 0.1.0 to 0.2.0 in /modules/api by @dependabot in #7539
- Fix graphs when using translations by @maciaszczykm in #7546
- Fix run command on Mac by @maciaszczykm in #7545
- Hide node port 0 and update Go dependencies by @maciaszczykm in #7543
- Fix HTTP headers display, restore Go static check and fix typo by @maciaszczykm in #7549
- ingress paths are now clickable by @marcosdiez in #7487
- Bump golang.org/x/net from 0.2.0 to 0.4.0 in /modules/api by @dependabot in #7555
- Bump actions/setup-python from 4.3.0 to 4.3.1 by @dependabot in #7556
- Bump k8s.io/api from 0.25.4 to 0.25.5 in /modules/api by @dependabot in #7557
- Bump helm/kind-action from 1.4.0 to 1.5.0 by @dependabot in #7562
- Bump actions/setup-python from 4.3.1 to 4.4.0 by @dependabot in #7566
- Setup development container for new architecture by @shu-mutou in #7563
- Update Japanese translation by @shu-mutou in #7570
- Bump golang.org/x/net from 0.4.0 to 0.5.0 in /modules/api by @dependabot in #7573
- Enable npm update check with dependabot by @shu-mutou in #7574
- Add go.mod update check for tools and web by @shu-mutou in #7575
- Bump golang.org/x/text from 0.4.0 to 0.6.0 in /modules/web by @dependabot in #7578
- Added helm chart optional containers by @daiyyr in #7554
- Fix Scale Resource UI by @marcosdiez in #7584
- Bump actions/setup-python from 4.4.0 to 4.5.0 by @dependabot in #7588
- Bump github.com/cosmtrek/air from 1.40.4 to 1.41.0 in /modules/common/tools by @dependabot in #7590
- Bump k8s modules to 0.26.1 by @shu-mutou in #7568
- Bump github.com/golangci/golangci-lint from 1.50.1 to 1.51.0 in /modules/common/tools by @dependabot in #7609
- Bump github.com/golangci/golangci-lint from 1.51.0 to 1.51.1 in /modules/common/tools by @dependabot in #7610
- Bump golang.org/x/text from 0.6.0 to 0.7.0 in /modules/web by @dependabot in #7615
- Bump golang.org/x/net from 0.5.0 to 0.6.0 in /modules/api by @dependabot in #7614
- Helm: Update CI, upgrade metrics-server by @desaintmartin in #7600
- Support
kind
in development container by @shu-mutou in #7602 - Update OWNERS_ALIASES by @shu-mutou in #7620
- Update web dependencies by @maciaszczykm in #7619
- Fix build in development container by @shu-mutou in #7621
- Update Japanese translation guide by @shu-mutou in #7628
- Fix port number for dashboard by @shu-mutou in #7629
- Document helm chart PodSecurityPolicy deprecation and PodSecurityAdmission alternative by @jmhbnz in #7626
- Disable e2e job by @floreks in #7661
- Bump github.com/golang/glog from 1.0.0 to 1.1.0 in /modules/web by @dependabot in #7648
- Bump golang.org/x/text from 0.7.0 to 0.8.0 in /modules/web by @dependabot in https://github.com/kubernete...
v2.7.0
What's Changed
- Support custom rules for read-only mode by @korjek in #7152
- Fix golang 1.19.0 update by @shu-mutou in #7379
- feat: added additional rules option to role by @elizaitsev in #7370
- Update German translation. by @headcr4sh in #7231
- Add ziyi-xie to Japanese i18n reviewers by @shu-mutou in #7413
- Update Japanese translation by @shu-mutou in #7415
- Fix tags in German translation by @shu-mutou in #7414
- Update Korean translation (lines 1001-1500) by @rollony in #7427
- Update Korean Translation (lines 1-501) by @bconfiden2 in #7429
- Update Korean translation (lines 1501-2000) (#7427) by @Seo-yul in #7428
- Update Korean translation (lines 3501-4000) (#7427) by @onestone9900 in #7433
- Update Korean translation (lines 4001-4500) by @rollony in #7432
- Update Korean translation (lines 4501-5000) by @bconfiden2 in #7434
- Update Korean translation (lines 3001-3500) by @BrendenHJH in #7436
- Update Korean localization dashboard(5001-5500) by @NayeonKeum in #7440
- Update Korean localization dashboard(2001-2500) by @gy-ulbak96 in #7437
- Update Korean translation (lines 2501-3000) by @jinnypark9393 in #7435
- Update Korean translation (lines 501-1000) by @dewble in #7443
- Korean localization for dashboard(5501-6000) by @yuzin9712 in #7446
- Korean localization for dashboard(6000-6662) by @having-dlrow in #7447
- Bump k8s modules to 0.25.0 and prepare for 2.7.0 release by @shu-mutou in #7316
New Contributors
- @korjek made their first contribution in #7152
- @elizaitsev made their first contribution in #7370
- @rollony made their first contribution in #7427
- @bconfiden2 made their first contribution in #7429
- @Seo-yul made their first contribution in #7428
- @onestone9900 made their first contribution in #7433
- @BrendenHJH made their first contribution in #7436
- @NayeonKeum made their first contribution in #7440
- @gy-ulbak96 made their first contribution in #7437
- @jinnypark9393 made their first contribution in #7435
- @dewble made their first contribution in #7443
- @yuzin9712 made their first contribution in #7446
- @having-dlrow made their first contribution in #7447
Full Changelog: v2.6.1...v2.7.0
Compatibility
Kubernetes version | 1.22 | 1.23 | 1.24 | 1.25 |
---|---|---|---|---|
Compatibility | ? | ? | ? | β |
β
Fully supported version range.?
Due to breaking changes between Kubernetes API versions, some features might not work correctly in the Dashboard.
Images
Kubernetes Dashboard
docker.io/kubernetesui/dashboard:v2.7.0
Metrics Scraper
docker.io/kubernetesui/metrics-scraper:v1.0.8
Installation
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml