├── .codecov.yml
├── .ct.yml
├── .dockerignore
├── .editorconfig
├── .github
├── ISSUE_TEMPLATE
│ ├── bug-report.yml
│ ├── cleanup.yml
│ ├── config.yml
│ └── feature-request.yml
├── buildkitd.toml
├── dependabot.yml
└── workflows
│ ├── cd-api.yml
│ ├── cd-auth.yml
│ ├── cd-helm.yml
│ ├── cd-metrics-scraper.yml
│ ├── cd-web.yml
│ ├── ci-helm.yml
│ ├── ci.yml
│ └── pr.yml
├── .gitignore
├── .golangci.yml
├── .kubeconform
├── .licenserc.yaml
├── CONTRIBUTING.md
├── DEVELOPMENT.md
├── LICENSE
├── Makefile
├── OWNERS
├── OWNERS_ALIASES
├── README.md
├── ROLES.md
├── SECURITY.md
├── SECURITY_CONTACTS
├── charts
└── kubernetes-dashboard
│ ├── .helmignore
│ ├── Chart.lock
│ ├── Chart.yaml
│ ├── OWNERS
│ ├── README.md
│ ├── ci
│ └── default-values.yaml
│ ├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── config
│ │ ├── gateway.yaml
│ │ └── settings.yaml
│ ├── deployments
│ │ ├── api.yaml
│ │ ├── auth.yaml
│ │ ├── metrics-scraper.yaml
│ │ └── web.yaml
│ ├── extras
│ │ ├── manifests.yaml
│ │ └── servicemonitor.yaml
│ ├── networking
│ │ └── ingress.yaml
│ ├── rbac
│ │ ├── api
│ │ │ ├── role.yaml
│ │ │ ├── rolebinding.yaml
│ │ │ └── serviceaccount.yaml
│ │ ├── metrics-scraper
│ │ │ ├── clusterrole.yaml
│ │ │ ├── clusterrolebinding.yaml
│ │ │ └── serviceaccount.yaml
│ │ └── web
│ │ │ ├── role.yaml
│ │ │ ├── rolebinding.yaml
│ │ │ └── serviceaccount.yaml
│ ├── secrets
│ │ └── csrf.yaml
│ ├── security
│ │ ├── networkpolicy.yaml
│ │ └── pdb.yaml
│ └── services
│ │ ├── api.yaml
│ │ ├── auth.yaml
│ │ ├── metrics-scraper.yaml
│ │ └── web.yaml
│ └── values.yaml
├── code-of-conduct.md
├── docs
├── README.md
├── common
│ ├── README.md
│ ├── arguments.md
│ ├── faq.md
│ └── internationalization.md
├── design
│ ├── README.md
│ ├── access-control.md
│ ├── cache.md
│ ├── kubernetes-dashboard-user-survey-122017.md
│ ├── mockups
│ │ ├── 11-11-2015-initial
│ │ │ ├── 01_title.png
│ │ │ ├── 02_notes.png
│ │ │ ├── 03_welcome - zero state.png
│ │ │ ├── 04_deploy form upload.png
│ │ │ ├── 05_deploy form new namespace dialog.png
│ │ │ ├── 06_deploy form new namespace specified.png
│ │ │ ├── 07_deploy form new namespace.png
│ │ │ ├── 08_deploy form.png
│ │ │ ├── 09_deploy form image credentials required.png
│ │ │ ├── 10_deploy form pull secret menu with upload.png
│ │ │ ├── 11_deploy form pull secret upload.png
│ │ │ ├── 12_deploy form pull secret upload.png
│ │ │ ├── 13_deploy form pull secret specified.png
│ │ │ ├── 14_deploy more.png
│ │ │ ├── 15_apps list.png
│ │ │ ├── 16_card variations.png
│ │ │ ├── 17_job details.png
│ │ │ ├── 18_node hover.png
│ │ │ ├── 19_events.png
│ │ │ ├── 20_change pod count.png
│ │ │ ├── 21_logs current.png
│ │ │ ├── 22_logs running.png
│ │ │ ├── 23_tbd for mvp.png
│ │ │ ├── README.md
│ │ │ └── kubernetes-dashboard.sketch
│ │ ├── 21-11-2016-access-control
│ │ │ ├── create-binding.png
│ │ │ ├── create-role.png
│ │ │ ├── dashboard-rbac-ui.bmpr
│ │ │ ├── edit-role-binding.png
│ │ │ ├── edit-role.png
│ │ │ ├── new-rule.png
│ │ │ ├── overview.png
│ │ │ └── view-role.png
│ │ ├── 23-03-2016-scale-and-navigation
│ │ │ ├── action-bar.png
│ │ │ ├── apps-category.png
│ │ │ ├── card-evolution.png
│ │ │ ├── category-page-template.png
│ │ │ ├── dashboard-scale-and-navigation.bmpr
│ │ │ ├── details-page-template.png
│ │ │ ├── landing-page.png
│ │ │ ├── menu-extended.png
│ │ │ ├── mobile-navigation.png
│ │ │ ├── navigation.png
│ │ │ ├── pod-details-page-events.png
│ │ │ ├── pod-details-page-logs.png
│ │ │ ├── pod-details-page-overview.png
│ │ │ ├── pod-details-page-ssh.png
│ │ │ ├── rc-details-page-events.png
│ │ │ ├── rc-details-page-overview.png
│ │ │ ├── rc-page.png
│ │ │ ├── resource-list-block.png
│ │ │ ├── secret-details-page.png
│ │ │ └── single-resource-page-template.png
│ │ ├── 24-01-2017-thirdpartyresources
│ │ │ ├── delete.png
│ │ │ ├── detail.png
│ │ │ ├── edit.png
│ │ │ ├── object-delete.png
│ │ │ ├── object-detail.png
│ │ │ ├── object-edit.png
│ │ │ ├── thirdpartyresources.bmpr
│ │ │ └── workloads.png
│ │ ├── 24-01-2017-troubleshooting
│ │ │ ├── cabin.png
│ │ │ ├── details.png
│ │ │ ├── disconnected.png
│ │ │ ├── logs.png
│ │ │ ├── no-shell.png
│ │ │ ├── openshift.png
│ │ │ ├── terminal.png
│ │ │ └── troubleshooting.bmpr
│ │ ├── README.md
│ │ └── access-control
│ │ │ └── dashboard-rbac-ui.bmpr
│ ├── navigation-and-scale.md
│ ├── sprints
│ │ ├── scale_ux_20160323.md
│ │ ├── scale_ux_20160323_a.JPG
│ │ └── scale_ux_20160323_b.JPG
│ └── troubleshooting.md
├── images
│ ├── architecture.png
│ ├── cache-sequence-diagram-transparent.png
│ ├── cache-sequence-diagram.png
│ ├── kubecon-infographic-nov2016.png
│ ├── multi-context-cache-sequence-diagram-transparent.png
│ ├── multi-context-cache-sequence-diagram.png
│ ├── overview.png
│ └── signin.png
└── user
│ ├── README.md
│ ├── access-control
│ ├── README.md
│ └── creating-sample-user.md
│ ├── accessing-dashboard
│ └── README.md
│ ├── images
│ └── dashboard-impersonation.png
│ ├── integrations.md
│ └── labels.md
├── hack
├── develop
│ ├── Dockerfile
│ ├── developmental-role.yaml
│ ├── gosu-command.sh
│ ├── run-command.sh
│ └── run-dev-container.sh
├── docker
│ ├── dev.compose.yml
│ └── docker.compose.yaml
├── gateway
│ ├── dev.kong.yml
│ └── prod.kong.yml
├── include
│ ├── build.mk
│ ├── config.mk
│ ├── ensure.mk
│ ├── kind.config.yml
│ └── kind.mk
├── scripts
│ ├── conf.sh
│ ├── kind-config
│ ├── start-cluster.sh
│ └── stop-cluster.sh
└── test-resources
│ ├── 100mb-of-logs-pod.yaml
│ ├── 10mb-of-logs-pod.yaml
│ ├── 1gb-of-logs-pod.yaml
│ ├── 500mb-of-logs-pod.yaml
│ ├── 50mb-of-logs-pod.yaml
│ ├── crashing-pod.yaml
│ ├── crashloopbackoff-pod.yaml
│ ├── env-variables-pod.yaml
│ ├── imagepullbackoff-pod.yaml
│ ├── init-container-error-pod.yaml
│ ├── init-container-pod.yaml
│ ├── kubernetes-dashboard-local.yaml
│ ├── nginx-daemon-daemon-set.yaml
│ ├── pending-pod.yaml
│ ├── restarted-pod.yaml
│ ├── succeeded-pod.yaml
│ └── terminated-pod.yaml
└── modules
├── .gitignore
├── Makefile
├── api
├── .air.toml
├── .gitignore
├── Dockerfile
├── Makefile
├── dev.Dockerfile
├── go.mod
├── go.sum
├── hack
│ └── include
│ │ └── config.mk
├── main.go
├── pkg
│ ├── args
│ │ ├── args.go
│ │ ├── pprof.go
│ │ └── prometheus.go
│ ├── environment
│ │ └── version.go
│ ├── handler
│ │ ├── apihandler.go
│ │ ├── apihandler_test.go
│ │ ├── download.go
│ │ ├── filter.go
│ │ ├── metrics.go
│ │ ├── parser
│ │ │ └── parser.go
│ │ └── terminal.go
│ ├── integration
│ │ ├── api
│ │ │ └── types.go
│ │ ├── handler.go
│ │ ├── handler_test.go
│ │ ├── list.go
│ │ ├── manager.go
│ │ ├── manager_test.go
│ │ └── metric
│ │ │ ├── api
│ │ │ └── types.go
│ │ │ ├── common
│ │ │ ├── aggregation.go
│ │ │ └── aggregation_test.go
│ │ │ ├── manager.go
│ │ │ ├── manager_test.go
│ │ │ └── sidecar
│ │ │ ├── client.go
│ │ │ ├── client_test.go
│ │ │ ├── common.go
│ │ │ ├── model.go
│ │ │ ├── restclient.go
│ │ │ ├── selector.go
│ │ │ └── selector_test.go
│ ├── resource
│ │ ├── clusterrole
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── clusterrolebinding
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── common
│ │ │ ├── condition.go
│ │ │ ├── endpoint.go
│ │ │ ├── endpoint_test.go
│ │ │ ├── event.go
│ │ │ ├── namespace.go
│ │ │ ├── namespace_test.go
│ │ │ ├── pod.go
│ │ │ ├── pod_test.go
│ │ │ ├── podinfo.go
│ │ │ ├── podinfo_test.go
│ │ │ ├── resourcechannels.go
│ │ │ ├── resourcestatus.go
│ │ │ ├── service.go
│ │ │ ├── service_test.go
│ │ │ ├── serviceport.go
│ │ │ └── serviceport_test.go
│ │ ├── configmap
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── container
│ │ │ ├── logs.go
│ │ │ └── logs_test.go
│ │ ├── controller
│ │ │ ├── controller.go
│ │ │ └── controller_test.go
│ │ ├── cronjob
│ │ │ ├── common.go
│ │ │ ├── common_test.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── events.go
│ │ │ ├── events_test.go
│ │ │ ├── jobs.go
│ │ │ ├── jobs_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── customresourcedefinition
│ │ │ ├── common.go
│ │ │ ├── events.go
│ │ │ ├── events_test.go
│ │ │ ├── types
│ │ │ │ └── types.go
│ │ │ └── v1
│ │ │ │ ├── client.go
│ │ │ │ ├── common.go
│ │ │ │ ├── detail.go
│ │ │ │ ├── list.go
│ │ │ │ ├── list_test.go
│ │ │ │ └── objects.go
│ │ ├── daemonset
│ │ │ ├── common.go
│ │ │ ├── common_test.go
│ │ │ ├── detail.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ ├── pods.go
│ │ │ ├── restart.go
│ │ │ └── services.go
│ │ ├── dataselect
│ │ │ ├── dataselect.go
│ │ │ ├── dataselect_test.go
│ │ │ ├── dataselectquery.go
│ │ │ ├── pagination.go
│ │ │ ├── pagination_test.go
│ │ │ ├── propertyname.go
│ │ │ ├── stdcomparabletypes.go
│ │ │ └── stdcomparabletypes_test.go
│ │ ├── deployment
│ │ │ ├── common.go
│ │ │ ├── deploy.go
│ │ │ ├── deploy_test.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ ├── newreplicasets.go
│ │ │ ├── oldreplicasets.go
│ │ │ ├── pods.go
│ │ │ ├── rollout.go
│ │ │ └── util.go
│ │ ├── endpoint
│ │ │ ├── endpoint.go
│ │ │ └── list.go
│ │ ├── event
│ │ │ ├── common.go
│ │ │ ├── common_test.go
│ │ │ ├── event.go
│ │ │ ├── event_test.go
│ │ │ └── list.go
│ │ ├── horizontalpodautoscaler
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── ingress
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── filter.go
│ │ │ └── list.go
│ │ ├── ingressclass
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── job
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── events.go
│ │ │ ├── events_test.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ └── pods.go
│ │ ├── limitrange
│ │ │ ├── detail.go
│ │ │ └── detail_test.go
│ │ ├── logs
│ │ │ ├── logs.go
│ │ │ └── source.go
│ │ ├── namespace
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── networkpolicy
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ └── list.go
│ │ ├── node
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── drain.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── persistentvolume
│ │ │ ├── common.go
│ │ │ ├── common_test.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── persistentvolumeclaim
│ │ │ ├── common.go
│ │ │ ├── common_test.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── pod
│ │ │ ├── common.go
│ │ │ ├── common_test.go
│ │ │ ├── container.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── events.go
│ │ │ ├── events_test.go
│ │ │ ├── fieldpath.go
│ │ │ ├── fieldpath_test.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ └── metrics.go
│ │ ├── poddisruptionbudget
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── replicaset
│ │ │ ├── common.go
│ │ │ ├── common_test.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ ├── pods.go
│ │ │ └── services.go
│ │ ├── replicationcontroller
│ │ │ ├── common.go
│ │ │ ├── common_test.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ ├── pods.go
│ │ │ └── services.go
│ │ ├── resourcequota
│ │ │ ├── detail.go
│ │ │ └── detail_test.go
│ │ ├── role
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── rolebinding
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── secret
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ │ ├── service
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── events.go
│ │ │ ├── events_test.go
│ │ │ ├── ingress.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ ├── pods.go
│ │ │ └── pods_test.go
│ │ ├── serviceaccount
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── list.go
│ │ │ └── secrets.go
│ │ ├── statefulset
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── list.go
│ │ │ ├── list_test.go
│ │ │ ├── pods.go
│ │ │ └── restart.go
│ │ └── storageclass
│ │ │ ├── common.go
│ │ │ ├── detail.go
│ │ │ ├── detail_test.go
│ │ │ ├── list.go
│ │ │ └── list_test.go
│ ├── scaling
│ │ └── scale.go
│ └── validation
│ │ ├── validateappname.go
│ │ ├── validateappname_test.go
│ │ ├── validateimagereference.go
│ │ ├── validateimagereference_test.go
│ │ ├── validateprotocol.go
│ │ ├── validateprotocol_test.go
│ │ ├── validaterbacstatus.go
│ │ └── validaterbacstatus_test.go
└── schema
│ └── swagger.json
├── auth
├── .air.toml
├── .gitignore
├── Dockerfile
├── Makefile
├── api
│ └── v1
│ │ └── login.go
├── dev.Dockerfile
├── go.mod
├── go.sum
├── hack
│ └── include
│ │ └── config.mk
├── main.go
└── pkg
│ ├── args
│ └── args.go
│ ├── environment
│ └── version.go
│ ├── router
│ └── setup.go
│ └── routes
│ ├── csrftoken
│ └── handler.go
│ ├── login
│ ├── handler.go
│ └── login.go
│ └── me
│ ├── handler.go
│ └── me.go
├── common
├── certificates
│ ├── .gitignore
│ ├── Makefile
│ ├── api
│ │ └── types.go
│ ├── ecdsa
│ │ ├── creator.go
│ │ └── creator_test.go
│ ├── go.mod
│ ├── go.sum
│ └── manager.go
├── client
│ ├── .gitignore
│ ├── Makefile
│ ├── args
│ │ └── args.go
│ ├── auth.go
│ ├── cache
│ │ ├── cache.go
│ │ ├── client
│ │ │ ├── client.go
│ │ │ ├── common
│ │ │ │ ├── options.go
│ │ │ │ ├── resourcelister.go
│ │ │ │ ├── resourcelister_options.go
│ │ │ │ └── resourcelister_test.go
│ │ │ ├── core
│ │ │ │ ├── configmaps.go
│ │ │ │ ├── core.go
│ │ │ │ ├── namespaces.go
│ │ │ │ ├── nodes.go
│ │ │ │ ├── persistentvolumeclaims.go
│ │ │ │ ├── persistentvolumes.go
│ │ │ │ ├── pods.go
│ │ │ │ └── secrets.go
│ │ │ ├── extensions
│ │ │ │ ├── crds.go
│ │ │ │ └── extensions.go
│ │ │ └── extensionsclient.go
│ │ └── key.go
│ ├── client.go
│ ├── go.mod
│ ├── go.sum
│ ├── init.go
│ ├── types.go
│ └── verber.go
├── csrf
│ ├── .gitignore
│ ├── Makefile
│ ├── args.go
│ ├── go.mod
│ ├── go.sum
│ ├── middleware_common.go
│ ├── middleware_gin.go
│ ├── middleware_gorestful.go
│ └── types.go
├── errors
│ ├── .gitignore
│ ├── Makefile
│ ├── errors.go
│ ├── go.mod
│ ├── go.sum
│ ├── handler.go
│ ├── localizer.go
│ ├── localizer_test.go
│ └── validate.go
├── helpers
│ ├── .gitignore
│ ├── Makefile
│ ├── common.go
│ ├── common_test.go
│ ├── go.mod
│ ├── go.sum
│ ├── kubernetes.go
│ └── kubernetes_test.go
├── tools
│ ├── Makefile
│ ├── boilerplate.go.txt
│ ├── go.mod
│ ├── go.sum
│ └── main.go
└── types
│ ├── .gitignore
│ ├── Makefile
│ ├── common.go
│ ├── go.mod
│ ├── go.sum
│ ├── kubernetes.go
│ └── resourcekind.go
├── go.work
├── metrics-scraper
├── .air.toml
├── Dockerfile
├── Makefile
├── dev.Dockerfile
├── go.mod
├── go.sum
├── hack
│ └── include
│ │ └── config.mk
├── main.go
└── pkg
│ ├── api
│ ├── api.go
│ └── dashboard
│ │ ├── dashboard.go
│ │ └── types.go
│ ├── args
│ └── args.go
│ ├── database
│ ├── database.go
│ └── database_test.go
│ └── environment
│ └── version.go
└── web
├── .air.toml
├── .babelrc
├── .browserslistrc
├── .eslintignore
├── .eslintrc.yaml
├── .gitignore
├── .husky
├── pre-commit
└── pre-push
├── .jsbeautifyrc
├── .meshrc.yml
├── .prettierrc.cjs
├── .stylelintrc.yaml
├── .yarn
├── plugins
│ └── @yarnpkg
│ │ ├── plugin-postinstall.cjs
│ │ └── plugin-workspace-tools.cjs
└── releases
│ └── yarn-3.3.0.cjs
├── .yarnrc.yml
├── Dockerfile
├── Makefile
├── angular.json
├── cypress.config.ts
├── cypress
├── e2e
│ ├── nav.cy.ts
│ └── userpanel.cy.ts
├── fixtures
│ ├── crd.yaml
│ └── example-foo.yaml
├── pages
│ ├── abstractPage.ts
│ ├── navbarPage.ts
│ └── userpanelPage.ts
├── support
│ └── index.ts
└── tsconfig.json
├── dev.go.Dockerfile
├── dev.web.Dockerfile
├── go.mod
├── go.sum
├── hack
├── include
│ └── config.mk
├── postinstall.sh
└── scripts
│ └── dev.serve.sh
├── i18n
├── de
│ ├── OWNERS
│ └── messages.de.xlf
├── es
│ ├── OWNERS
│ └── messages.es.xlf
├── fr
│ ├── OWNERS
│ └── messages.fr.xlf
├── ja
│ ├── OWNERS
│ ├── README.md
│ └── messages.ja.xlf
├── ko
│ ├── OWNERS
│ └── messages.ko.xlf
├── locale_conf.json
├── messages.xlf
├── zh-Hans
│ ├── OWNERS
│ └── messages.zh-Hans.xlf
├── zh-Hant-HK
│ ├── OWNERS
│ └── messages.zh-Hant-HK.xlf
└── zh-Hant
│ ├── OWNERS
│ └── messages.zh-Hant.xlf
├── jest.config.js
├── main.go
├── package.json
├── pkg
├── args
│ └── args.go
├── config
│ ├── config.go
│ └── handler.go
├── environment
│ └── version.go
├── locale
│ └── handler.go
├── router
│ └── setup.go
├── settings
│ ├── handler.go
│ ├── manager.go
│ ├── pinnedresources.go
│ └── settings.go
└── systembanner
│ ├── handler.go
│ └── systembanner.go
├── proxy.conf.json
├── schema
└── schema.graphql
├── src
├── _dark.scss
├── _light.scss
├── _mixins.scss
├── _theming.scss
├── _variables.scss
├── assets
│ ├── config
│ │ └── config.json
│ ├── images
│ │ ├── kubernetes-logo-text.svg
│ │ ├── kubernetes-logo.png
│ │ ├── kubernetes-logo.svg
│ │ ├── pin-crossed.svg
│ │ └── pin.svg
│ └── robots.txt
├── chrome
│ ├── component.ts
│ ├── footer
│ │ ├── component.ts
│ │ ├── style.scss
│ │ └── template.html
│ ├── module.ts
│ ├── nav
│ │ ├── component.ts
│ │ ├── hamburger
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── item
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── module.ts
│ │ ├── pinner
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── style.scss
│ │ └── template.html
│ ├── notifications
│ │ ├── component.ts
│ │ ├── style.scss
│ │ └── template.html
│ ├── routing.ts
│ ├── search
│ │ ├── component.ts
│ │ ├── style.scss
│ │ └── template.html
│ ├── style.scss
│ ├── template.html
│ └── userpanel
│ │ ├── component.ts
│ │ ├── style.scss
│ │ └── template.html
├── common
│ ├── animations
│ │ └── animations.ts
│ ├── components
│ │ ├── actionbar
│ │ │ ├── component.ts
│ │ │ ├── detailactions
│ │ │ │ ├── component.ts
│ │ │ │ ├── delete
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ ├── edit
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ ├── exec
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ ├── logs
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ ├── pin
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ ├── restart
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ ├── scale
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ ├── template.html
│ │ │ │ └── trigger
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ └── template.html
│ │ ├── actionbars
│ │ │ ├── default
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── logsdefault
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── logsexecdefault
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── logsscaledefault
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── pindefault
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── routing.ts
│ │ │ ├── scaledefault
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ └── triggerdefault
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ ├── breadcrumbs
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── card
│ │ │ ├── component.spec.ts
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── chips
│ │ │ ├── chipdialog
│ │ │ │ ├── dialog.ts
│ │ │ │ └── template.html
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── condition
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── container
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── creator
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── date
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── endpoint
│ │ │ ├── cardlist
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ │ ├── external
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ │ └── internal
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ ├── graph
│ │ │ ├── component.ts
│ │ │ ├── helper.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── graphcard
│ │ │ ├── component.spec.ts
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── graphmetrics
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── hiddenproperty
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── ingressrulelist
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── limits
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── list
│ │ │ ├── column
│ │ │ │ ├── component.ts
│ │ │ │ ├── menu
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ └── template.html
│ │ │ ├── filter
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ │ ├── rowdetail
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ │ ├── spinner
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ └── zerostate
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ ├── module.ts
│ │ ├── namespace
│ │ │ ├── changedialog
│ │ │ │ ├── dialog.ts
│ │ │ │ └── template.html
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── objectmeta
│ │ │ ├── component.spec.ts
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── podstatus
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── policyrule
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── probe
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── property
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── proxy
│ │ │ └── component.ts
│ │ ├── quotas
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── resourcelist
│ │ │ ├── clusterrole
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── clusterrolebinding
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── configmap
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── crd
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── crdobject
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── crdversion
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── cronjob
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── daemonset
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── deployment
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── event
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── groupids.ts
│ │ │ ├── horizontalpodautoscaler
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── ingress
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ │ ├── ingressclass
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── job
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── namespace
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── networkpolicy
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── node
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── persistentvolume
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── persistentvolumeclaim
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── pod
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── replicaset
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── replicationcontroller
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── role
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── rolebinding
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── secret
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── service
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── serviceaccount
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── statefulset
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── statuses.ts
│ │ │ └── storageclass
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ ├── securitycontext
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── sparkline
│ │ │ ├── cpu
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── memory
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ └── sparkline.ts
│ │ ├── subject
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── textinput
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── uploadfile
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── volumemount
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── workloadstatus
│ │ │ ├── component.spec.ts
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ └── zerostate
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ ├── dialogs
│ │ ├── alert
│ │ │ ├── dialog.ts
│ │ │ └── template.html
│ │ ├── config
│ │ │ ├── dialog.ts
│ │ │ └── template.html
│ │ ├── deleteresource
│ │ │ ├── dialog.ts
│ │ │ ├── styles.scss
│ │ │ └── template.html
│ │ ├── download
│ │ │ ├── dialog.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── editresource
│ │ │ ├── dialog.ts
│ │ │ └── template.html
│ │ ├── module.ts
│ │ ├── previewdeployment
│ │ │ ├── dialog.ts
│ │ │ └── template.html
│ │ ├── restartresource
│ │ │ ├── dialog.ts
│ │ │ └── template.html
│ │ ├── scaleresource
│ │ │ ├── dialog.ts
│ │ │ └── template.html
│ │ └── triggerresource
│ │ │ ├── dialog.ts
│ │ │ └── template.html
│ ├── directives
│ │ ├── autofocus
│ │ │ └── directive.ts
│ │ ├── isvisible
│ │ │ └── directive.ts
│ │ └── module.ts
│ ├── errors
│ │ └── errors.ts
│ ├── interfaces
│ │ └── candeactivate.ts
│ ├── params
│ │ └── params.ts
│ ├── pipes
│ │ ├── commaseparated.ts
│ │ ├── coreformatter.spec.ts
│ │ ├── coreformatter.ts
│ │ ├── filterby.ts
│ │ ├── memoryformatter.spec.ts
│ │ ├── memoryformatter.ts
│ │ ├── module.ts
│ │ ├── relativetime.ts
│ │ ├── stripansi.ts
│ │ ├── trim.ts
│ │ └── untrim.ts
│ ├── resources
│ │ ├── groupedlist.ts
│ │ ├── list.ts
│ │ ├── rawresource.ts
│ │ └── resource.ts
│ └── services
│ │ ├── create
│ │ ├── module.ts
│ │ └── service.ts
│ │ ├── global
│ │ ├── actionbar.ts
│ │ ├── assets.ts
│ │ ├── authentication.ts
│ │ ├── authorizer.ts
│ │ ├── config.ts
│ │ ├── csrftoken.ts
│ │ ├── decoder.ts
│ │ ├── globalsettings.ts
│ │ ├── history.ts
│ │ ├── interceptor.ts
│ │ ├── loader.ts
│ │ ├── localsettings.ts
│ │ ├── logs.ts
│ │ ├── me.ts
│ │ ├── module.ts
│ │ ├── namespace.ts
│ │ ├── notifications.ts
│ │ ├── params.ts
│ │ ├── pinner.ts
│ │ ├── state.ts
│ │ ├── theme.ts
│ │ ├── title.ts
│ │ └── verber.ts
│ │ ├── guard
│ │ ├── auth.ts
│ │ ├── candeactivate.ts
│ │ ├── login.ts
│ │ ├── module.ts
│ │ └── search.ts
│ │ ├── nav
│ │ ├── module.ts
│ │ └── service.ts
│ │ └── resource
│ │ ├── endpoint.ts
│ │ ├── module.ts
│ │ ├── resource.ts
│ │ └── utility.ts
├── core.module.ts
├── crd
│ ├── crdobject
│ │ ├── component.ts
│ │ └── template.html
│ ├── detail
│ │ ├── component.ts
│ │ └── template.html
│ ├── list
│ │ └── component.ts
│ ├── module.ts
│ └── routing.ts
├── create
│ ├── component.ts
│ ├── from
│ │ ├── file
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── form
│ │ │ ├── component.ts
│ │ │ ├── createnamespace
│ │ │ │ ├── dialog.ts
│ │ │ │ └── template.html
│ │ │ ├── createsecret
│ │ │ │ ├── dialog.ts
│ │ │ │ └── template.html
│ │ │ ├── deploylabel
│ │ │ │ ├── component.ts
│ │ │ │ ├── deploylabel.ts
│ │ │ │ └── template.html
│ │ │ ├── environmentvariables
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── helpsection
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ ├── template.html
│ │ │ │ └── userhelp
│ │ │ │ │ ├── component.ts
│ │ │ │ │ ├── style.scss
│ │ │ │ │ └── template.html
│ │ │ ├── module.ts
│ │ │ ├── portmappings
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ │ ├── style.scss
│ │ │ ├── template.html
│ │ │ └── validator
│ │ │ │ ├── uniquename.validator.ts
│ │ │ │ ├── validators.ts
│ │ │ │ ├── validimagereference.validator.ts
│ │ │ │ ├── validprotocol.validator.ts
│ │ │ │ └── warnthreshold.validator.ts
│ │ └── input
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ ├── module.ts
│ ├── routing.ts
│ ├── style.scss
│ └── template.html
├── environments
│ ├── environment.prod.ts
│ └── environment.ts
├── error
│ ├── component.ts
│ ├── handler.ts
│ ├── module.ts
│ ├── routing.ts
│ ├── style.scss
│ └── template.html
├── index.component.ts
├── index.config.ts
├── index.html
├── index.messages.ts
├── index.module.ts
├── index.routing.ts
├── index.scss
├── index.ts
├── login
│ ├── component.spec.ts
│ ├── component.ts
│ ├── module.ts
│ ├── style.scss
│ └── template.html
├── logs
│ ├── component.ts
│ ├── module.ts
│ ├── routing.ts
│ ├── style.scss
│ └── template.html
├── overview
│ ├── component.spec.ts
│ ├── component.ts
│ ├── helper.ts
│ ├── module.ts
│ ├── routing.ts
│ └── template.html
├── polyfills.ts
├── resource
│ ├── cluster
│ │ ├── clusterrole
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── clusterrolebinding
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── component.ts
│ │ ├── event
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── module.ts
│ │ ├── namespace
│ │ │ ├── detail
│ │ │ │ ├── actionbar
│ │ │ │ │ ├── component.ts
│ │ │ │ │ └── template.html
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── networkpolicy
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── node
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── persistentvolume
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ ├── source
│ │ │ │ │ ├── component.ts
│ │ │ │ │ ├── style.scss
│ │ │ │ │ └── template.html
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── role
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── rolebinding
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── routing.ts
│ │ ├── serviceaccount
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ └── template.html
│ ├── config
│ │ ├── component.ts
│ │ ├── configmap
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── module.ts
│ │ ├── persistentvolumeclaim
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── routing.ts
│ │ ├── secret
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ ├── edit
│ │ │ │ │ ├── component.ts
│ │ │ │ │ ├── style.scss
│ │ │ │ │ └── template.html
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── storageclass
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ └── template.html
│ ├── discovery
│ │ ├── component.ts
│ │ ├── ingress
│ │ │ ├── detail
│ │ │ │ ├── component.spec.ts
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── ingressclass
│ │ │ ├── detail
│ │ │ │ ├── component.ts
│ │ │ │ ├── style.scss
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ ├── module.ts
│ │ ├── routing.ts
│ │ ├── service
│ │ │ ├── detail
│ │ │ │ ├── component.spec.ts
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── list
│ │ │ │ └── component.ts
│ │ │ ├── module.ts
│ │ │ └── routing.ts
│ │ └── template.html
│ └── workloads
│ │ ├── component.ts
│ │ ├── cronjob
│ │ ├── detail
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── list
│ │ │ └── component.ts
│ │ ├── module.ts
│ │ └── routing.ts
│ │ ├── daemonset
│ │ ├── detail
│ │ │ ├── actionbar
│ │ │ │ ├── component.ts
│ │ │ │ └── template.html
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── list
│ │ │ └── component.ts
│ │ ├── module.ts
│ │ └── routing.ts
│ │ ├── deployment
│ │ ├── detail
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── list
│ │ │ └── component.ts
│ │ ├── module.ts
│ │ └── routing.ts
│ │ ├── job
│ │ ├── detail
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── list
│ │ │ └── component.ts
│ │ ├── module.ts
│ │ └── routing.ts
│ │ ├── module.ts
│ │ ├── pod
│ │ ├── detail
│ │ │ ├── component.ts
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── list
│ │ │ └── component.ts
│ │ ├── module.ts
│ │ └── routing.ts
│ │ ├── replicaset
│ │ ├── detail
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── list
│ │ │ └── component.ts
│ │ ├── module.ts
│ │ └── routing.ts
│ │ ├── replicationcontroller
│ │ ├── detail
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── list
│ │ │ └── component.ts
│ │ ├── module.ts
│ │ └── routing.ts
│ │ ├── routing.ts
│ │ ├── statefulset
│ │ ├── detail
│ │ │ ├── component.ts
│ │ │ └── template.html
│ │ ├── list
│ │ │ └── component.ts
│ │ ├── module.ts
│ │ └── routing.ts
│ │ └── template.html
├── search
│ ├── component.ts
│ ├── module.ts
│ ├── routing.ts
│ └── template.html
├── settings
│ ├── component.ts
│ ├── entry
│ │ ├── component.ts
│ │ └── template.html
│ ├── global
│ │ ├── component.ts
│ │ ├── namespace
│ │ │ ├── adddialog
│ │ │ │ ├── dialog.ts
│ │ │ │ └── template.html
│ │ │ ├── component.ts
│ │ │ ├── editdialog
│ │ │ │ ├── dialog.ts
│ │ │ │ └── template.html
│ │ │ ├── style.scss
│ │ │ └── template.html
│ │ ├── saveanywaysdialog
│ │ │ ├── dialog.ts
│ │ │ └── template.html
│ │ ├── service.ts
│ │ ├── style.scss
│ │ └── template.html
│ ├── local
│ │ ├── component.ts
│ │ ├── style.scss
│ │ └── template.html
│ ├── module.ts
│ └── routing.ts
├── shared.module.ts
├── shell
│ ├── component.ts
│ ├── module.ts
│ ├── routing.ts
│ ├── styles.scss
│ └── template.html
├── systemjs.d.ts
├── test.base.mocks.ts
├── test.base.ts
└── typings
│ ├── root.api.ts
│ ├── root.shared.ts
│ ├── root.ui.ts
│ └── volume.api.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.spec.json
└── yarn.lock
/.ct.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 |
16 | chart-repos:
17 | - metrics-server=https://kubernetes-sigs.github.io/metrics-server/
18 | - cert-manager=https://charts.jetstack.io
19 | - ingress-nginx=https://kubernetes.github.io/ingress-nginx
20 | - kong=https://charts.konghq.com
21 | debug: false
22 | # additional-commands:
23 | # - helm kubeconform {{ .Path }} --config charts/helm-chart/.kubeconform
24 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # Web module
16 | modules/web/.angular/
17 | modules/web/node_modules/
18 | modules/web/dist/
19 | modules/web/tmp/
20 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | insert_final_newline = true
8 | trim_trailing_whitespace = true
9 |
10 | [*.go]
11 | indent_style = tab
12 |
13 | [*.md]
14 | max_line_length = off
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/cleanup.yml:
--------------------------------------------------------------------------------
1 | name: Cleanup
2 | description: Pay down technical debt, reduce friction etc.
3 | labels: kind/cleanup
4 | body:
5 | - type: textarea
6 | id: feature
7 | attributes:
8 | label: What should be cleaned up or changed?
9 | validations:
10 | required: true
11 |
12 | - type: textarea
13 | id: rationale
14 | attributes:
15 | label: Why is this needed?
16 | validations:
17 | required: true
18 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Support Request
4 | url: https://discuss.kubernetes.io
5 | about: Support request or question relating to Kubernetes
6 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature-request.yml:
--------------------------------------------------------------------------------
1 | name: Feature Request
2 | description: Provide supporting details for a feature in development
3 | labels: kind/feature
4 | body:
5 | - type: textarea
6 | id: feature
7 | attributes:
8 | label: What would you like to be added?
9 | validations:
10 | required: true
11 |
12 | - type: textarea
13 | id: rationale
14 | attributes:
15 | label: Why is this needed?
16 | validations:
17 | required: true
18 |
--------------------------------------------------------------------------------
/.github/buildkitd.toml:
--------------------------------------------------------------------------------
1 | [worker.oci]
2 | max-parallelism = 1
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 |
16 | # IDE
17 | .idea/
18 | .vscode/
19 | .DS_Store
20 | .fleet/
21 |
22 | # Build, deps and cache
23 | .angular
24 | node_modules
25 | .dist
26 | .tmp
27 | .coverage
28 | *.swp
29 | .cached_tools
30 |
31 | # Helm deps
32 | charts/kubernetes-dashboard/charts
33 |
34 | # Cypress
35 | screenshots
36 |
--------------------------------------------------------------------------------
/.kubeconform:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 | schema-location:
16 | - default
17 | - https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json
18 |
--------------------------------------------------------------------------------
/OWNERS:
--------------------------------------------------------------------------------
1 | # See the OWNERS docs at https://go.k8s.io/owners
2 |
3 | approvers:
4 | - sig-ui-leads
5 | - dashboard-maintainers
6 | - dashboard-admins
7 |
--------------------------------------------------------------------------------
/OWNERS_ALIASES:
--------------------------------------------------------------------------------
1 | aliases:
2 | sig-ui-leads:
3 | - floreks
4 | - maciaszczykm
5 | - shu-mutou
6 | dashboard-maintainers:
7 | - floreks
8 | - maciaszczykm
9 | - shu-mutou
10 | dashboard-admins:
11 | - floreks
12 | - maciaszczykm
13 | # emeritus
14 | # - bryk
15 | # - cheld
16 | # - cupofcat
17 | # - danielromlein
18 | # - ianlewis
19 | # - jeefy
20 | # - konryd
21 | # - mhenc
22 | # - mijajasinksi
23 | # - olekzabl
24 | # - pewu
25 | # - rf232
26 |
--------------------------------------------------------------------------------
/SECURITY_CONTACTS:
--------------------------------------------------------------------------------
1 | # Defined below are the security contacts for this repo.
2 | #
3 | # They are the contact point for the Product Security Committee to reach out
4 | # to for triaging and handling of incoming issues.
5 | #
6 | # The below names agree to abide by the
7 | # [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy)
8 | # and will be removed and replaced if they violate that agreement.
9 | #
10 | # DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
11 | # INSTRUCTIONS AT https://kubernetes.io/security/
12 |
13 | floreks
14 | maciaszczykm
15 | jeefy
16 |
--------------------------------------------------------------------------------
/charts/kubernetes-dashboard/Chart.lock:
--------------------------------------------------------------------------------
1 | dependencies:
2 | - name: ingress-nginx
3 | repository: https://kubernetes.github.io/ingress-nginx
4 | version: 4.12.0
5 | - name: cert-manager
6 | repository: https://charts.jetstack.io
7 | version: v1.16.2
8 | - name: metrics-server
9 | repository: https://kubernetes-sigs.github.io/metrics-server/
10 | version: 3.12.2
11 | - name: kong
12 | repository: https://charts.konghq.com
13 | version: 2.46.0
14 | digest: sha256:fa0fa7ff7e237c3db88016a57704d0f2c9f7dae9ac9b041a32112b6df35f8e23
15 | generated: "2025-01-10T12:28:39.253786876+01:00"
16 |
--------------------------------------------------------------------------------
/charts/kubernetes-dashboard/OWNERS:
--------------------------------------------------------------------------------
1 | approvers:
2 | - desaintmartin
3 | reviewers:
4 | - desaintmartin
5 |
--------------------------------------------------------------------------------
/charts/kubernetes-dashboard/ci/default-values.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 | app:
16 | ingress:
17 | enabled: false
18 |
19 | nginx:
20 | enabled: false
21 |
--------------------------------------------------------------------------------
/charts/kubernetes-dashboard/templates/extras/manifests.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | {{ range .Values.extras.manifests }}
16 | ---
17 | {{ tpl (toYaml .) $ }}
18 | {{ end }}
19 |
--------------------------------------------------------------------------------
/charts/kubernetes-dashboard/templates/rbac/web/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | {{- if eq .Values.app.mode "dashboard" }}
16 |
17 | apiVersion: v1
18 | kind: ServiceAccount
19 | metadata:
20 | labels:
21 | {{- include "kubernetes-dashboard.labels" . | nindent 4 }}
22 | annotations:
23 | {{- include "kubernetes-dashboard.annotations" . | nindent 4 }}
24 | name: {{ template "kubernetes-dashboard.fullname" . }}-{{ .Values.web.role }}
25 |
26 | {{- end -}}
27 |
--------------------------------------------------------------------------------
/charts/kubernetes-dashboard/templates/secrets/csrf.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | apiVersion: v1
16 | kind: Secret
17 | metadata:
18 | labels:
19 | {{- include "kubernetes-dashboard.labels" . | nindent 4 }}
20 | annotations:
21 | {{- include "kubernetes-dashboard.annotations" . | nindent 4 }}
22 | name: {{ template "kubernetes-dashboard.app.csrf.secret.name" . }}
23 | data:
24 | {{ (include "kubernetes-dashboard.app.csrf.secret.value" . ) -}}
25 |
--------------------------------------------------------------------------------
/code-of-conduct.md:
--------------------------------------------------------------------------------
1 | # Kubernetes Community Code of Conduct
2 |
3 | Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)
4 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # Kubernetes Dashboard Documentation
2 |
3 | ## [Common](common/README.md)
4 |
5 | * [FAQ](common/faq.md)
6 | * [Dashboard arguments](common/arguments.md)
7 | * [Internationalization](common/internationalization.md)
8 |
9 | ## [User Guide](user/README.md)
10 |
11 | * [Accessing Dashboard](user/accessing-dashboard/README.md)
12 | * [Access control](user/access-control/README.md)
13 | * [Creating sample user](user/access-control/creating-sample-user.md)
14 | * [Integrations](user/integrations.md)
15 | * [Labels](user/labels.md)
16 |
17 | ## [Developer Guide](../DEVELOPMENT.md)
18 |
19 | ----
20 | _Copyright 2019 [The Kubernetes Dashboard Authors](https://github.com/kubernetes/dashboard/graphs/contributors)_
21 |
--------------------------------------------------------------------------------
/docs/common/README.md:
--------------------------------------------------------------------------------
1 | # Common
2 |
3 | * [FAQ](faq.md)
4 | * [Dashboard arguments](arguments.md)
5 |
6 | ----
7 | _Copyright 2019 [The Kubernetes Dashboard Authors](https://github.com/kubernetes/dashboard/graphs/contributors)_
8 |
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/01_title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/01_title.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/02_notes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/02_notes.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/03_welcome - zero state.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/03_welcome - zero state.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/04_deploy form upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/04_deploy form upload.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/05_deploy form new namespace dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/05_deploy form new namespace dialog.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/06_deploy form new namespace specified.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/06_deploy form new namespace specified.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/07_deploy form new namespace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/07_deploy form new namespace.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/08_deploy form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/08_deploy form.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/09_deploy form image credentials required.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/09_deploy form image credentials required.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/10_deploy form pull secret menu with upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/10_deploy form pull secret menu with upload.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/11_deploy form pull secret upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/11_deploy form pull secret upload.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/12_deploy form pull secret upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/12_deploy form pull secret upload.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/13_deploy form pull secret specified.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/13_deploy form pull secret specified.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/14_deploy more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/14_deploy more.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/15_apps list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/15_apps list.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/16_card variations.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/16_card variations.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/17_job details.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/17_job details.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/18_node hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/18_node hover.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/19_events.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/19_events.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/20_change pod count.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/20_change pod count.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/21_logs current.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/21_logs current.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/22_logs running.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/22_logs running.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/23_tbd for mvp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/23_tbd for mvp.png
--------------------------------------------------------------------------------
/docs/design/mockups/11-11-2015-initial/kubernetes-dashboard.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/11-11-2015-initial/kubernetes-dashboard.sketch
--------------------------------------------------------------------------------
/docs/design/mockups/21-11-2016-access-control/create-binding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/21-11-2016-access-control/create-binding.png
--------------------------------------------------------------------------------
/docs/design/mockups/21-11-2016-access-control/create-role.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/21-11-2016-access-control/create-role.png
--------------------------------------------------------------------------------
/docs/design/mockups/21-11-2016-access-control/dashboard-rbac-ui.bmpr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/21-11-2016-access-control/dashboard-rbac-ui.bmpr
--------------------------------------------------------------------------------
/docs/design/mockups/21-11-2016-access-control/edit-role-binding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/21-11-2016-access-control/edit-role-binding.png
--------------------------------------------------------------------------------
/docs/design/mockups/21-11-2016-access-control/edit-role.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/21-11-2016-access-control/edit-role.png
--------------------------------------------------------------------------------
/docs/design/mockups/21-11-2016-access-control/new-rule.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/21-11-2016-access-control/new-rule.png
--------------------------------------------------------------------------------
/docs/design/mockups/21-11-2016-access-control/overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/21-11-2016-access-control/overview.png
--------------------------------------------------------------------------------
/docs/design/mockups/21-11-2016-access-control/view-role.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/21-11-2016-access-control/view-role.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/action-bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/action-bar.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/apps-category.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/apps-category.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/card-evolution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/card-evolution.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/category-page-template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/category-page-template.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/dashboard-scale-and-navigation.bmpr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/dashboard-scale-and-navigation.bmpr
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/details-page-template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/details-page-template.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/landing-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/landing-page.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/menu-extended.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/menu-extended.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/mobile-navigation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/mobile-navigation.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/navigation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/navigation.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/pod-details-page-events.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/pod-details-page-events.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/pod-details-page-logs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/pod-details-page-logs.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/pod-details-page-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/pod-details-page-overview.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/pod-details-page-ssh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/pod-details-page-ssh.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/rc-details-page-events.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/rc-details-page-events.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/rc-details-page-overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/rc-details-page-overview.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/rc-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/rc-page.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/resource-list-block.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/resource-list-block.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/secret-details-page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/secret-details-page.png
--------------------------------------------------------------------------------
/docs/design/mockups/23-03-2016-scale-and-navigation/single-resource-page-template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/23-03-2016-scale-and-navigation/single-resource-page-template.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-thirdpartyresources/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-thirdpartyresources/delete.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-thirdpartyresources/detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-thirdpartyresources/detail.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-thirdpartyresources/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-thirdpartyresources/edit.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-thirdpartyresources/object-delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-thirdpartyresources/object-delete.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-thirdpartyresources/object-detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-thirdpartyresources/object-detail.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-thirdpartyresources/object-edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-thirdpartyresources/object-edit.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-thirdpartyresources/thirdpartyresources.bmpr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-thirdpartyresources/thirdpartyresources.bmpr
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-thirdpartyresources/workloads.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-thirdpartyresources/workloads.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-troubleshooting/cabin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-troubleshooting/cabin.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-troubleshooting/details.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-troubleshooting/details.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-troubleshooting/disconnected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-troubleshooting/disconnected.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-troubleshooting/logs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-troubleshooting/logs.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-troubleshooting/no-shell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-troubleshooting/no-shell.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-troubleshooting/openshift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-troubleshooting/openshift.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-troubleshooting/terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-troubleshooting/terminal.png
--------------------------------------------------------------------------------
/docs/design/mockups/24-01-2017-troubleshooting/troubleshooting.bmpr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/24-01-2017-troubleshooting/troubleshooting.bmpr
--------------------------------------------------------------------------------
/docs/design/mockups/README.md:
--------------------------------------------------------------------------------
1 | # Design Mockups
2 |
3 | This section contains the design mockups for each version of Dashboard
4 |
--------------------------------------------------------------------------------
/docs/design/mockups/access-control/dashboard-rbac-ui.bmpr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/mockups/access-control/dashboard-rbac-ui.bmpr
--------------------------------------------------------------------------------
/docs/design/sprints/scale_ux_20160323_a.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/sprints/scale_ux_20160323_a.JPG
--------------------------------------------------------------------------------
/docs/design/sprints/scale_ux_20160323_b.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/design/sprints/scale_ux_20160323_b.JPG
--------------------------------------------------------------------------------
/docs/images/architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/images/architecture.png
--------------------------------------------------------------------------------
/docs/images/cache-sequence-diagram-transparent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/images/cache-sequence-diagram-transparent.png
--------------------------------------------------------------------------------
/docs/images/cache-sequence-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/images/cache-sequence-diagram.png
--------------------------------------------------------------------------------
/docs/images/kubecon-infographic-nov2016.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/images/kubecon-infographic-nov2016.png
--------------------------------------------------------------------------------
/docs/images/multi-context-cache-sequence-diagram-transparent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/images/multi-context-cache-sequence-diagram-transparent.png
--------------------------------------------------------------------------------
/docs/images/multi-context-cache-sequence-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/images/multi-context-cache-sequence-diagram.png
--------------------------------------------------------------------------------
/docs/images/overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/images/overview.png
--------------------------------------------------------------------------------
/docs/images/signin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/images/signin.png
--------------------------------------------------------------------------------
/docs/user/images/dashboard-impersonation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/docs/user/images/dashboard-impersonation.png
--------------------------------------------------------------------------------
/hack/include/build.mk:
--------------------------------------------------------------------------------
1 | # BUILDARCH is the host machine architecture
2 | BUILDARCH ?= $(shell uname -m)
3 |
4 | # BUILDOS is the host machine OS
5 | BUILDOS ?= $(shell uname -s)
6 |
7 | ifeq ($(BUILDARCH),x86_64)
8 | BUILDARCH=amd64
9 | endif
10 | ifeq ($(BUILDARCH),arch64)
11 | BUILDARCH=arm64
12 | endif
13 | ifeq ($(BUILDARCH),armv7l)
14 | BUILDARCH=armv7
15 | endif
16 |
17 | ifeq ($(BUILDOS),Linux)
18 | BUILDOS=linux
19 | endif
20 | ifeq ($(BUILDOS),Darwin)
21 | BUILDOS=darwin
22 | endif
23 |
24 | # ARCH is the target build architecture. Unless overridden during build, host architecture (BUILDARCH) will be used
25 | ARCH ?= $(BUILDARCH)
26 | # OS is the target build OS. Unless overridden during build, host OS (BUILDOS) will be used
27 | OS ?= $(BUILDOS)
28 |
--------------------------------------------------------------------------------
/hack/include/ensure.mk:
--------------------------------------------------------------------------------
1 | include $(PARTIALS_DIRECTORY)/config.mk
2 |
3 | .PHONY: --ensure-tools
4 | --ensure-tools:
5 | @$(MAKE) --no-print-directory -C $(TOOLS_DIRECTORY) install
6 |
--------------------------------------------------------------------------------
/hack/include/kind.config.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | kind: Cluster
16 | apiVersion: kind.x-k8s.io/v1alpha4
17 | nodes:
18 | - role: control-plane
19 | kubeadmConfigPatches:
20 | - |
21 | kind: InitConfiguration
22 | nodeRegistration:
23 | kubeletExtraArgs:
24 | node-labels: "ingress-ready=true"
25 | extraPortMappings:
26 | - containerPort: 443
27 | hostPort: 443
28 | protocol: TCP
29 |
--------------------------------------------------------------------------------
/hack/scripts/kind-config:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | kind: Cluster
16 | apiVersion: kind.x-k8s.io/v1alpha4
17 | name: kd-kind
18 | networking:
19 | apiServerAddress: "0.0.0.0"
20 | apiServerPort: 6443
21 |
--------------------------------------------------------------------------------
/hack/test-resources/100mb-of-logs-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that creates a large amount of logs
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: 100mb-of-logs
21 | spec:
22 | containers:
23 | - name: succeeded
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "echo start----; base64 /dev/urandom | head -c 100000000; echo ----end"]
26 | restartPolicy: Never
27 |
--------------------------------------------------------------------------------
/hack/test-resources/10mb-of-logs-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that creates a large amount of logs
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: 10mb-of-logs
21 | spec:
22 | containers:
23 | - name: succeeded
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "echo start----; base64 /dev/urandom | head -c 10000000; echo ----end"]
26 | restartPolicy: Never
27 |
--------------------------------------------------------------------------------
/hack/test-resources/1gb-of-logs-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that creates a large amount of logs
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: 1gb-of-logs
21 | spec:
22 | containers:
23 | - name: succeeded
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "echo start----; base64 /dev/urandom | head -c 1000000000; echo ----end"]
26 | restartPolicy: Never
27 |
--------------------------------------------------------------------------------
/hack/test-resources/500mb-of-logs-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that creates a large amount of logs
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: 500mb-of-logs
21 | spec:
22 | containers:
23 | - name: succeeded
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "echo start----; base64 /dev/urandom | head -c 500000000; echo ----end"]
26 | restartPolicy: Never
27 |
--------------------------------------------------------------------------------
/hack/test-resources/50mb-of-logs-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that creates a large amount of logs
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: 50mb-of-logs
21 | spec:
22 | containers:
23 | - name: succeeded
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "echo start----; base64 /dev/urandom | head -c 50000000; echo ----end"]
26 | restartPolicy: Never
27 |
--------------------------------------------------------------------------------
/hack/test-resources/crashing-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that crashes after 100s and will be restarted by Kubernetes
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: crashing
21 | spec:
22 | containers:
23 | - name: crashing
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "for NUM in `seq 1 1 100`; do date; sleep 1; done"]
26 | restartPolicy: Always
27 |
--------------------------------------------------------------------------------
/hack/test-resources/crashloopbackoff-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that goes into a CrashLoopBackOff state.
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: crashloopbackoff
21 | spec:
22 | containers:
23 | - name: crashloopbackoff
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "exit 1"]
26 |
--------------------------------------------------------------------------------
/hack/test-resources/imagepullbackoff-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that goes into an ImagePullBackOff.
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: imagepullbackoff
21 | spec:
22 | containers:
23 | - name: imagepullbackoff
24 | image: doesnotexist:nover
25 |
--------------------------------------------------------------------------------
/hack/test-resources/nginx-daemon-daemon-set.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a daemon set.
16 |
17 | apiVersion: apps/v1
18 | kind: DaemonSet
19 | metadata:
20 | name: nginx-daemon
21 | spec:
22 | template:
23 | metadata:
24 | name: nginx-daemon
25 | labels:
26 | name: nginx-daemon
27 | spec:
28 | containers:
29 | - name: nginx
30 | image: nginx
31 |
--------------------------------------------------------------------------------
/hack/test-resources/succeeded-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that terminates successfully.
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: succeeded
21 | spec:
22 | containers:
23 | - name: succeeded
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "echo Succeeded"]
26 | restartPolicy: Never
27 |
--------------------------------------------------------------------------------
/hack/test-resources/terminated-pod.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # A manifest that creates a container that Terminates with an error.
16 |
17 | apiVersion: v1
18 | kind: Pod
19 | metadata:
20 | name: terminated
21 | spec:
22 | containers:
23 | - name: terminated
24 | image: alpine:3.4
25 | command: ["/bin/sh", "-c", "exit 1"]
26 | restartPolicy: Never
27 |
--------------------------------------------------------------------------------
/modules/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 |
16 | go.work.sum
17 |
--------------------------------------------------------------------------------
/modules/Makefile:
--------------------------------------------------------------------------------
1 | COMMON_MODULES_EXCLUDE = */tools
2 | COMMON_MODULES_WILDCARD = common/*
3 | COMMON_MODULES = $(filter-out $(wildcard $(COMMON_MODULES_EXCLUDE)), $(wildcard $(COMMON_MODULES_WILDCARD)))
4 |
5 | MODULES_EXCLUDE = common/
6 | MODULES_WILDCARD = */
7 |
8 | MODULES = $(dir $(filter-out $(wildcard $(MODULES_EXCLUDE)), $(wildcard $(MODULES_WILDCARD))))
9 |
10 | .PHONY: --run $(MODULES) $(COMMON_MODULES)
11 | --run: $(MODULES) $(COMMON_MODULES)
12 |
13 | $(MODULES) $(COMMON_MODULES):
14 | @$(MAKE) --directory=$@ $(TARGET)
15 |
--------------------------------------------------------------------------------
/modules/api/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | codegen/
16 | vendor/
17 | .tmp/
18 | dist/
19 | coverage.out
20 |
--------------------------------------------------------------------------------
/modules/api/hack/include/config.mk:
--------------------------------------------------------------------------------
1 | ### Application details
2 | APP_NAME := $(PROJECT_NAME)-api
3 | PACKAGE_NAME := k8s.io/$(PROJECT_NAME)/api
4 |
5 | ### Dirs and paths
6 | API_DIST_DIRECTORY = $(API_DIRECTORY)/.dist
7 | API_DIST_BINARY = $(API_DIST_DIRECTORY)/$(APP_NAME)
8 | COVERAGE_FILE = $(TMP_DIRECTORY)/$(APP_NAME).coverage.out
9 | SCHEMA_DIRECTORY = $(API_DIRECTORY)/schema
10 |
11 | ### Codegen configuration
12 | INPUT = "apis/v1alpha1"
13 | CLIENTSET_NAME = clientset
14 | OUTPUT_BASE = $(BASE_DIR)
15 | OUTPUT_PACKAGE = $(INPUT_BASE)/client
16 | VERIFY_ONLY = false
17 | CODEGEN_EXTRA_ARGS = ""
18 |
19 | ### API Arguments (overridable)
20 | KUBECONFIG ?= $(HOME)/.kube/config
21 | SIDECAR_HOST ?= http://scraper:8000
22 | AUTO_GENERATE_CERTIFICATES ?= false
23 | BIND_ADDRESS ?= 127.0.0.1
24 | PORT ?= 8000
25 |
--------------------------------------------------------------------------------
/modules/api/pkg/environment/version.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package environment
16 |
17 | import (
18 | "fmt"
19 | )
20 |
21 | const (
22 | userAgent = "dashboard-api"
23 | dev = "0.0.0-dev"
24 | )
25 |
26 | // Version of this binary
27 | var Version = dev
28 |
29 | func IsDev() bool {
30 | return Version == dev
31 | }
32 |
33 | func UserAgent() string {
34 | return fmt.Sprintf("%s:%s", userAgent, Version)
35 | }
36 |
--------------------------------------------------------------------------------
/modules/api/pkg/integration/handler_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package integration
16 |
17 | import (
18 | "testing"
19 |
20 | "github.com/emicklei/go-restful/v3"
21 | )
22 |
23 | func TestIntegrationHandler_Install(t *testing.T) {
24 | iHandler := NewHandler(nil)
25 | ws := new(restful.WebService)
26 | iHandler.Install(ws)
27 |
28 | if len(ws.Routes()) == 0 {
29 | t.Error("Failed to install routes.")
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/modules/api/pkg/resource/cronjob/common_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package cronjob_test
16 |
17 | import (
18 | "k8s.io/dashboard/errors"
19 | )
20 |
21 | var (
22 | name = "test-name"
23 | namespace = "test-namespace"
24 | suspend = false
25 | labels = map[string]string{"app": "test-app"}
26 | eventMessage = "test-message"
27 | customError = errors.NewInvalid("test-error")
28 | )
29 |
--------------------------------------------------------------------------------
/modules/auth/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | codegen/
16 | vendor/
17 | .tmp/
18 | .dist/
19 | coverage.out
20 |
--------------------------------------------------------------------------------
/modules/auth/api/v1/login.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package v1
16 |
17 | type LoginRequest struct {
18 | Token string `json:"token"`
19 | }
20 |
21 | type LoginResponse struct {
22 | Token string `json:"token"`
23 | }
24 |
--------------------------------------------------------------------------------
/modules/auth/hack/include/config.mk:
--------------------------------------------------------------------------------
1 | ### Application details
2 | APP_NAME := $(PROJECT_NAME)-auth
3 | PACKAGE_NAME := k8s.io/$(PROJECT_NAME)/auth
4 |
5 | ### Dirs and paths
6 | AUTH_DIST_DIRECTORY = $(AUTH_DIRECTORY)/.dist
7 | AUTH_DIST_BINARY = $(AUTH_DIST_DIRECTORY)/$(APP_NAME)
8 | COVERAGE_FILE = $(TMP_DIRECTORY)/$(APP_NAME).coverage.out
9 |
10 | ### Auth Arguments (overridable)
11 | KUBECONFIG ?= $(HOME)/.kube/config
12 |
--------------------------------------------------------------------------------
/modules/auth/pkg/environment/version.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package environment
16 |
17 | import (
18 | "fmt"
19 | )
20 |
21 | const (
22 | userAgent = "dashboard-auth"
23 | dev = "0.0.0-dev"
24 | )
25 |
26 | // Version of this binary
27 | var Version = dev
28 |
29 | func IsDev() bool {
30 | return Version == dev
31 | }
32 |
33 | func UserAgent() string {
34 | return fmt.Sprintf("%s:%s", userAgent, Version)
35 | }
36 |
--------------------------------------------------------------------------------
/modules/common/certificates/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | .tmp/
16 |
--------------------------------------------------------------------------------
/modules/common/certificates/go.mod:
--------------------------------------------------------------------------------
1 | module k8s.io/dashboard/certificates
2 |
3 | go 1.23.0
4 |
5 | require (
6 | k8s.io/api v0.32.0
7 | k8s.io/apimachinery v0.32.0
8 | )
9 |
10 | require (
11 | github.com/fxamacker/cbor/v2 v2.7.0 // indirect
12 | github.com/go-logr/logr v1.4.2 // indirect
13 | github.com/gogo/protobuf v1.3.2 // indirect
14 | github.com/google/gofuzz v1.2.0 // indirect
15 | github.com/json-iterator/go v1.1.12 // indirect
16 | github.com/kr/text v0.2.0 // indirect
17 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
18 | github.com/modern-go/reflect2 v1.0.2 // indirect
19 | github.com/x448/float16 v0.8.4 // indirect
20 | golang.org/x/net v0.34.0 // indirect
21 | golang.org/x/text v0.21.0 // indirect
22 | gopkg.in/inf.v0 v0.9.1 // indirect
23 | k8s.io/klog/v2 v2.130.1 // indirect
24 | k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect
25 | sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
26 | sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect
27 | sigs.k8s.io/yaml v1.4.0 // indirect
28 | )
29 |
--------------------------------------------------------------------------------
/modules/common/client/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | .tmp/
16 |
--------------------------------------------------------------------------------
/modules/common/client/cache/client/common/options.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package common
16 |
17 | import (
18 | "net/http"
19 | )
20 |
21 | type RequestGetter func() *http.Request
22 |
23 | type CachedClientOptions struct {
24 | // Token is the authentication token to use for the requests.
25 | Token string
26 |
27 | // RequestGetter is a function that returns an original HTTP request
28 | // used to create the client.
29 | RequestGetter RequestGetter
30 | }
31 |
--------------------------------------------------------------------------------
/modules/common/csrf/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | .tmp/
16 |
--------------------------------------------------------------------------------
/modules/common/csrf/middleware_common.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package csrf
16 |
17 | const (
18 | csrfTokenHeader = "X-CSRF-TOKEN"
19 | )
20 |
--------------------------------------------------------------------------------
/modules/common/csrf/types.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package csrf
16 |
17 | // Response is used to secure requests from CSRF attacks
18 | type Response struct {
19 | // Token generated on request for validation
20 | Token string `json:"token"`
21 | }
22 |
--------------------------------------------------------------------------------
/modules/common/errors/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | .tmp/
16 |
--------------------------------------------------------------------------------
/modules/common/helpers/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | .tmp/
16 |
--------------------------------------------------------------------------------
/modules/common/helpers/go.mod:
--------------------------------------------------------------------------------
1 | module k8s.io/dashboard/helpers
2 |
3 | go 1.23.0
4 |
5 | require k8s.io/apimachinery v0.32.0
6 |
7 | require (
8 | github.com/fxamacker/cbor/v2 v2.7.0 // indirect
9 | github.com/go-logr/logr v1.4.2 // indirect
10 | github.com/gogo/protobuf v1.3.2 // indirect
11 | github.com/google/gofuzz v1.2.0 // indirect
12 | github.com/json-iterator/go v1.1.12 // indirect
13 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
14 | github.com/modern-go/reflect2 v1.0.2 // indirect
15 | github.com/x448/float16 v0.8.4 // indirect
16 | golang.org/x/net v0.34.0 // indirect
17 | golang.org/x/text v0.21.0 // indirect
18 | gopkg.in/inf.v0 v0.9.1 // indirect
19 | k8s.io/klog/v2 v2.130.1 // indirect
20 | k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect
21 | sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
22 | sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect
23 | sigs.k8s.io/yaml v1.4.0 // indirect
24 | )
25 |
--------------------------------------------------------------------------------
/modules/common/tools/boilerplate.go.txt:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
--------------------------------------------------------------------------------
/modules/common/tools/main.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 | //
15 | //go:build tools
16 |
17 | package tools
18 |
19 | import (
20 | _ "github.com/air-verse/air"
21 | _ "github.com/apache/skywalking-eyes/cmd/license-eye"
22 | _ "github.com/golangci/golangci-lint/v2/cmd/golangci-lint"
23 | _ "k8s.io/code-generator"
24 | _ "sigs.k8s.io/kind"
25 | )
26 |
--------------------------------------------------------------------------------
/modules/common/types/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | .tmp/
16 |
--------------------------------------------------------------------------------
/modules/common/types/common.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package types
16 |
17 | type User struct {
18 | Name string `json:"name,omitempty"`
19 | Authenticated bool `json:"authenticated"`
20 | }
21 |
--------------------------------------------------------------------------------
/modules/common/types/go.mod:
--------------------------------------------------------------------------------
1 | module k8s.io/dashboard/types
2 |
3 | go 1.23.0
4 |
5 | require (
6 | github.com/samber/lo v1.47.0
7 | k8s.io/apimachinery v0.32.0
8 | )
9 |
10 | require (
11 | github.com/fxamacker/cbor/v2 v2.7.0 // indirect
12 | github.com/go-logr/logr v1.4.2 // indirect
13 | github.com/gogo/protobuf v1.3.2 // indirect
14 | github.com/google/gofuzz v1.2.0 // indirect
15 | github.com/json-iterator/go v1.1.12 // indirect
16 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
17 | github.com/modern-go/reflect2 v1.0.2 // indirect
18 | github.com/x448/float16 v0.8.4 // indirect
19 | golang.org/x/net v0.34.0 // indirect
20 | golang.org/x/text v0.21.0 // indirect
21 | gopkg.in/inf.v0 v0.9.1 // indirect
22 | k8s.io/klog/v2 v2.130.1 // indirect
23 | k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect
24 | sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
25 | sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect
26 | sigs.k8s.io/yaml v1.4.0 // indirect
27 | )
28 |
--------------------------------------------------------------------------------
/modules/go.work:
--------------------------------------------------------------------------------
1 | go 1.23.0
2 |
3 | use (
4 | ./api // k8s.io/dashboard/api
5 | ./auth // k8s.io/dashboard/auth
6 | ./common/certificates // k8s.io/dashboard/certificates
7 | ./common/client // k8s.io/dashboard/client
8 | ./common/csrf // k8s.io/dashboard/csrf
9 | ./common/errors // k8s.io/dashboard/errors
10 | ./common/helpers // k8s.io/dashboard/helpers
11 | ./common/tools // k8s.io/dashboard/tools
12 | ./common/types // k8s.io/dashboard/types
13 | ./metrics-scraper // k8s.io/dashboard/metrics-scraper
14 | ./web // k8s.io/dashboard/web
15 | )
16 |
--------------------------------------------------------------------------------
/modules/metrics-scraper/hack/include/config.mk:
--------------------------------------------------------------------------------
1 | ### Application details
2 | APP_NAME := $(PROJECT_NAME)-metrics-scraper
3 | PACKAGE_NAME := k8s.io/$(PROJECT_NAME)/metrics-scraper
4 |
5 | ### Dirs and paths
6 | METRICS_SCRAPER_DIST_DIRECTORY = $(METRICS_SCRAPER_DIRECTORY)/.dist
7 | METRICS_SCRAPER_DIST_BINARY = $(METRICS_SCRAPER_DIST_DIRECTORY)/$(APP_NAME)
8 | COVERAGE_FILE = $(TMP_DIRECTORY)/$(APP_NAME).coverage.out
9 |
10 |
--------------------------------------------------------------------------------
/modules/metrics-scraper/pkg/environment/version.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package environment
16 |
17 | import (
18 | "fmt"
19 | )
20 |
21 | const (
22 | userAgent = "metrics-scraper"
23 | dev = "0.0.0-dev"
24 | )
25 |
26 | // Version of this binary
27 | var Version = dev
28 |
29 | func IsDev() bool {
30 | return Version == dev
31 | }
32 |
33 | func UserAgent() string {
34 | return fmt.Sprintf("%s:%s", userAgent, Version)
35 | }
36 |
--------------------------------------------------------------------------------
/modules/web/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@babel/preset-env",
5 | {
6 | "targets": {
7 | "esmodules": true
8 | }
9 | }
10 | ]
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/modules/web/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 0.5%
2 | last 2 versions
3 | not dead
4 | not last 2 and_uc versions
5 | not last 2 and_qq versions
6 | not last 2 baidu versions
7 | not last 2 ie versions
8 | not last 2 kaios versions
9 | not last 2 op_mini versions
10 | not last 2 op_mob versions
11 |
--------------------------------------------------------------------------------
/modules/web/.eslintignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 | node_modules/*
16 |
--------------------------------------------------------------------------------
/modules/web/.gitignore:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # Angular
16 | .angular/
17 |
18 | # Coverage
19 | coverage/
20 |
21 | # Dependencies
22 | node_modules/
23 |
24 | # Dist
25 | .dist/
26 |
27 | # Yarn
28 | .yarn/*
29 | !.yarn/patches
30 | !.yarn/plugins
31 | !.yarn/releases
32 | !.yarn/sdks
33 | !.yarn/versions
34 |
35 | # GraphQL mesh
36 | .mesh/
37 |
--------------------------------------------------------------------------------
/modules/web/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright 2017 The Kubernetes Authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | . "$(dirname "$0")/_/husky.sh"
17 |
18 | # Restore proper directory since husky is not installed in git root
19 | cd modules/web/.husky
20 |
--------------------------------------------------------------------------------
/modules/web/.husky/pre-push:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright 2017 The Kubernetes Authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License
15 |
16 | . "$(dirname "$0")/_/husky.sh"
17 |
18 | # Restore proper directory since husky is not installed in git root
19 | cd modules/web/.husky
20 |
21 | yarn check
22 | yarn test
23 |
--------------------------------------------------------------------------------
/modules/web/.jsbeautifyrc:
--------------------------------------------------------------------------------
1 | {
2 | "end_with_newline": true,
3 | "indent_size": 2,
4 | "wrap_attributes": "force-aligned"
5 | }
6 |
--------------------------------------------------------------------------------
/modules/web/.prettierrc.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2017 The Kubernetes Authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | *
16 | */
17 | module.exports = {
18 | bracketSpacing: false,
19 | singleAttributePerLine: true,
20 | singleQuote: true,
21 | trailingComma: "es5",
22 | arrowParens: "avoid",
23 | semi: true,
24 | printWidth: 120,
25 | }
26 |
--------------------------------------------------------------------------------
/modules/web/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | nodeLinker: node-modules
2 |
3 | plugins:
4 | - path: .yarn/plugins/@yarnpkg/plugin-postinstall.cjs
5 | spec: "https://raw.githubusercontent.com/gravitywelluk/yarn-plugin-postinstall/master/bundles/%40yarnpkg/plugin-postinstall.js"
6 | - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
7 | spec: "@yarnpkg/plugin-workspace-tools"
8 |
9 | postinstall: ./hack/postinstall.sh
10 |
11 | yarnPath: .yarn/releases/yarn-3.3.0.cjs
12 |
--------------------------------------------------------------------------------
/modules/web/cypress/fixtures/crd.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 | apiVersion: apiextensions.k8s.io/v1
16 | kind: CustomResourceDefinition
17 | metadata:
18 | name: foos.samplecontroller.k8s.io
19 | spec:
20 | group: samplecontroller.k8s.io
21 | version: v1alpha1
22 | names:
23 | kind: Foo
24 | plural: foos
25 | scope: Namespaced
26 |
--------------------------------------------------------------------------------
/modules/web/cypress/fixtures/example-foo.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 | apiVersion: samplecontroller.k8s.io/v1alpha1
16 | kind: Foo
17 | metadata:
18 | name: example-foo
19 | spec:
20 | deploymentName: example-foo
21 | replicas: 1
22 |
--------------------------------------------------------------------------------
/modules/web/cypress/pages/userpanelPage.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2017 The Kubernetes Authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | *
16 | */
17 | import {AbstractPage} from './abstractPage';
18 |
19 | export class UserpanelPage extends AbstractPage {
20 | static typeSearch(search: string) {
21 | this.getItem('input#search').type(search + '{enter}');
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/modules/web/cypress/support/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2017 The Kubernetes Authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | *
16 | */
17 |
18 | import 'cypress-fail-fast';
19 |
20 | before(() => {
21 | cy.clearCookies();
22 | });
23 |
24 | afterEach(() => {
25 | cy.screenshot();
26 | });
27 |
--------------------------------------------------------------------------------
/modules/web/cypress/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "strict": true,
5 | "baseUrl": "../",
6 | "types": ["cypress", "node"],
7 | "sourceMap": false,
8 | },
9 | "include": [
10 | "**/*.ts",
11 | "../cypress.config.ts"
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/modules/web/dev.web.Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2017 The Kubernetes Authors.
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | FROM node:20-alpine3.21
16 |
17 | WORKDIR /workspace
18 |
19 | # The port that the application listens on.
20 | EXPOSE 8080
21 | ENTRYPOINT ["/bin/sh", "-c", "./hack/scripts/dev.serve.sh"]
22 |
--------------------------------------------------------------------------------
/modules/web/hack/include/config.mk:
--------------------------------------------------------------------------------
1 | ### Application details
2 | APP_NAME := $(PROJECT_NAME)-web
3 | PACKAGE_NAME := k8s.io/$(PROJECT_NAME)/web
4 |
5 | ### Dirs and paths
6 | WEB_DIST_DIRECTORY = $(WEB_DIRECTORY)/.dist
7 | WEB_DIST_ANGULAR_DIRECTORY = $(WEB_DIST_DIRECTORY)/public
8 | COVERAGE_FILE = $(TMP_DIRECTORY)/$(APP_NAME).coverage.out
9 | SCHEMA_DIRECTORY = $(WEB_DIRECTORY)/schema
10 |
11 | # Angular Serve Arguments
12 | PROXY_CONFIG ?= proxy.conf.json
13 | SSL_ENABLED ?= false
14 |
15 | # Web UI Arguments (overridable)
16 | SYSTEM_BANNER ?= "Local test environment"
17 | SYSTEM_BANNER_SEVERITY ?= INFO
18 | AUTO_GENERATE_CERTIFICATES ?= false
19 | BIND_ADDRESS ?= 127.0.0.1
20 |
--------------------------------------------------------------------------------
/modules/web/hack/postinstall.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | # Copyright 2017 The Kubernetes Authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | if [ "${SKIP_POSTINSTALL}" = true ]; then
17 | echo Skipping postinstall due to SKIP_POSTINSTALL="${SKIP_POSTINSTALL}"
18 | exit 0
19 | fi
20 |
21 | if [ -z "${DEPENDABOT}" ]; then
22 | # TODO: When dependabot will support yarn postinstall properly, move following line into .yarnrc.yml.
23 | cd ../../ && npx husky modules/web/.husky
24 | exit $?
25 | fi
26 |
27 | exit 0
28 |
--------------------------------------------------------------------------------
/modules/web/hack/scripts/dev.serve.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright 2017 The Kubernetes Authors.
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 |
17 | echo "Installing dependencies"
18 | SKIP_POSTINSTALL=true yarn
19 |
20 | echo "Starting angular in dev mode"
21 | npx ng serve --proxy-config=proxy.conf.json --host=0.0.0.0 --disable-host-check --poll=2000
22 |
--------------------------------------------------------------------------------
/modules/web/i18n/de/OWNERS:
--------------------------------------------------------------------------------
1 | approvers:
2 | - headcr4sh
3 | - kgroschoff
4 | - mkorbi
5 |
6 | labels:
7 | - language/de
8 |
--------------------------------------------------------------------------------
/modules/web/i18n/es/OWNERS:
--------------------------------------------------------------------------------
1 | approvers:
2 | - raelga
3 | - anyulled
4 |
5 | labels:
6 | - language/es
7 |
--------------------------------------------------------------------------------
/modules/web/i18n/fr/OWNERS:
--------------------------------------------------------------------------------
1 | approvers:
2 | - feloy
3 |
4 | labels:
5 | - language/fr
6 |
--------------------------------------------------------------------------------
/modules/web/i18n/ja/OWNERS:
--------------------------------------------------------------------------------
1 | approvers:
2 | - shu-mutou
3 | - atoato88
4 |
5 | reviewers:
6 | - ziyi-xie
7 |
8 | labels:
9 | - language/ja
10 |
--------------------------------------------------------------------------------
/modules/web/i18n/ko/OWNERS:
--------------------------------------------------------------------------------
1 | approvers:
2 | - gochist
3 | - seokho-son
4 |
5 | labels:
6 | - language/ko
7 |
--------------------------------------------------------------------------------
/modules/web/i18n/locale_conf.json:
--------------------------------------------------------------------------------
1 | {"translations": [ "de", "en", "es", "fr", "ja", "ko", "zh-Hans", "zh-Hant", "zh-Hant-HK" ]}
2 |
--------------------------------------------------------------------------------
/modules/web/i18n/zh-Hans/OWNERS:
--------------------------------------------------------------------------------
1 | reviewers:
2 | - chenrui333
3 | - zehuaiWANG
4 | - helight
5 |
6 | approvers:
7 | - hwdef
8 | - tanjunchen
9 |
10 | labels:
11 | - language/zh
12 |
--------------------------------------------------------------------------------
/modules/web/i18n/zh-Hant-HK/OWNERS:
--------------------------------------------------------------------------------
1 | reviewers:
2 | - chenrui333
3 | - zehuaiWANG
4 | - helight
5 |
6 | approvers:
7 | - hwdef
8 | - tanjunchen
9 |
10 | labels:
11 | - language/zh
12 |
--------------------------------------------------------------------------------
/modules/web/i18n/zh-Hant/OWNERS:
--------------------------------------------------------------------------------
1 | reviewers:
2 | - chenrui333
3 | - zehuaiWANG
4 | - helight
5 |
6 | approvers:
7 | - hwdef
8 | - tanjunchen
9 |
10 | labels:
11 | - language/zh
12 |
--------------------------------------------------------------------------------
/modules/web/pkg/config/config.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package config
16 |
17 | type Config struct {
18 | ServerTime int64 `json:"serverTime"`
19 | UserAgent string `json:"userAgent"`
20 | Version string `json:"version"`
21 | }
22 |
--------------------------------------------------------------------------------
/modules/web/pkg/environment/version.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package environment
16 |
17 | import (
18 | "fmt"
19 | )
20 |
21 | const (
22 | userAgent = "dashboard-web"
23 | dev = "0.0.0-dev"
24 | )
25 |
26 | // Version of this binary
27 | var Version = dev
28 |
29 | func IsDev() bool {
30 | return Version == dev
31 | }
32 |
33 | func UserAgent() string {
34 | return fmt.Sprintf("%s:%s", userAgent, Version)
35 | }
36 |
--------------------------------------------------------------------------------
/modules/web/proxy.conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "/api": {
3 | "target": "http://gateway:8000",
4 | "secure": false,
5 | "ws": true,
6 | "changeOrigin": true
7 | },
8 | "/config": {
9 | "target": "http://gateway:8000",
10 | "secure": false,
11 | "ws": true,
12 | "changeOrigin": true
13 | },
14 | "/systembanner": {
15 | "target": "http://gateway:8000",
16 | "secure": false,
17 | "ws": true,
18 | "changeOrigin": true
19 | },
20 | "/settings": {
21 | "target": "http://gateway:8000",
22 | "secure": false,
23 | "ws": true,
24 | "changeOrigin": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/modules/web/src/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Copyright 2017 The Kubernetes Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | @use './variables' as *;
16 |
17 | @mixin kd-icon-size($size: 3 * $baseline-grid) {
18 | font-size: $size;
19 | height: $size;
20 | max-height: $size;
21 | max-width: $size;
22 | width: $size;
23 | }
24 |
--------------------------------------------------------------------------------
/modules/web/src/assets/config/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "themes": []
3 | }
4 |
--------------------------------------------------------------------------------
/modules/web/src/assets/images/kubernetes-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kubernetes/dashboard/010e944dd3b68fd895abea9e588f09663dbf16a9/modules/web/src/assets/images/kubernetes-logo.png
--------------------------------------------------------------------------------
/modules/web/src/assets/images/pin-crossed.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/modules/web/src/assets/images/pin.svg:
--------------------------------------------------------------------------------
1 |