├── .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 | 2 | 3 | 7 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /modules/web/src/assets/images/pin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /modules/web/src/assets/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | -------------------------------------------------------------------------------- /modules/web/src/chrome/footer/style.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 | :host { 18 | flex: 1 1 auto; 19 | font-size: $caption-font-size-base; 20 | padding: 0 $content-padding $content-padding; 21 | } 22 | -------------------------------------------------------------------------------- /modules/web/src/chrome/nav/hamburger/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | import {NavService} from '@common/services/nav/service'; 17 | 18 | @Component({ 19 | selector: 'kd-nav-hamburger', 20 | templateUrl: 'template.html', 21 | }) 22 | export class HamburgerComponent { 23 | constructor(private readonly navService_: NavService) {} 24 | 25 | toggle(): void { 26 | this.navService_.toggle(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /modules/web/src/chrome/nav/hamburger/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 24 | -------------------------------------------------------------------------------- /modules/web/src/chrome/nav/pinner/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
18 | {{ getDisplayName(resource) }} 25 | 26 |
27 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-actionbar', 19 | templateUrl: './template.html', 20 | }) 21 | export class ActionbarComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/delete/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/edit/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/exec/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 26 | input 27 | 28 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/logs/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 26 | subject 27 | 28 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/pin/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 26 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/restart/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/scale/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
18 | 23 | 28 |
29 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/detailactions/trigger/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbar/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
18 |
19 | 20 |
21 | -------------------------------------------------------------------------------- /modules/web/src/common/components/actionbars/default/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | -------------------------------------------------------------------------------- /modules/web/src/common/components/chips/style.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 | .mat-chip-list { 16 | min-width: 80px; 17 | 18 | .mat-chip { 19 | min-width: 80px; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /modules/web/src/common/components/date/style.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 | .kd-date { 16 | text-decoration: underline dotted; 17 | } 18 | -------------------------------------------------------------------------------- /modules/web/src/common/components/date/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | {{ relative ? (date | kdRelativeTime: iteration) : (date | date) }} 22 | 23 | -------------------------------------------------------------------------------- /modules/web/src/common/components/endpoint/cardlist/style.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 | .ports-item-line-height { 18 | line-height: 2.5 * $baseline-grid; 19 | } 20 | -------------------------------------------------------------------------------- /modules/web/src/common/components/endpoint/external/style.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 | @use '../../../../mixins' as *; 17 | 18 | .kd-endpoint-icon { 19 | @include kd-icon-size($body-font-size-base); 20 | } 21 | -------------------------------------------------------------------------------- /modules/web/src/common/components/endpoint/internal/style.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 | .kd-internal-endpoint { 18 | padding: (0.25 * $baseline-grid) 0; 19 | } 20 | -------------------------------------------------------------------------------- /modules/web/src/common/components/graph/style.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 | .chart-container { 18 | padding: 2 * $baseline-grid; 19 | } 20 | 21 | .empty-chart-text { 22 | font-size: $headline-font-size-base; 23 | font-weight: $regular-font-weight; 24 | margin-bottom: $baseline-grid * 0.5; 25 | } 26 | -------------------------------------------------------------------------------- /modules/web/src/common/components/graphcard/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 |
{{ graphTitle }} {{ graphTitle }}
22 |
23 | 29 |
30 |
31 | -------------------------------------------------------------------------------- /modules/web/src/common/components/hiddenproperty/style.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 | @use '../../../mixins' as *; 17 | 18 | .kd-hidden-property-key { 19 | outline: none; 20 | } 21 | 22 | .kd-hidden-property-icon { 23 | @include kd-icon-size($caption-font-size-base); 24 | 25 | align-self: baseline; 26 | margin-left: $baseline-grid * 0.5; 27 | } 28 | -------------------------------------------------------------------------------- /modules/web/src/common/components/list/column/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /modules/web/src/common/components/list/rowdetail/style.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 | .kd-row-detail { 18 | padding: $baseline-grid (2 * $baseline-grid) 0 (7.5 * $baseline-grid); 19 | } 20 | 21 | :host { 22 | div:last-of-type { 23 | padding-bottom: $baseline-grid; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /modules/web/src/common/components/list/rowdetail/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
21 | {{ ev.message }} 22 |
23 | -------------------------------------------------------------------------------- /modules/web/src/common/components/list/spinner/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /modules/web/src/common/components/list/zerostate/component.ts: -------------------------------------------------------------------------------- 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 | import {Component, ContentChild, TemplateRef} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-list-zero-state', 19 | templateUrl: './template.html', 20 | styleUrls: ['./style.scss'], 21 | }) 22 | export class ListZeroStateComponent { 23 | @ContentChild('textTemplate', {read: TemplateRef}) textTemplate: TemplateRef; 24 | } 25 | -------------------------------------------------------------------------------- /modules/web/src/common/components/podstatus/component.ts: -------------------------------------------------------------------------------- 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 | import {Component, Input} from '@angular/core'; 16 | import {PodInfo} from '@api/root.api'; 17 | 18 | @Component({ 19 | selector: 'kd-pod-status-card', 20 | templateUrl: './template.html', 21 | }) 22 | export class PodStatusCardComponent { 23 | @Input() podInfo: PodInfo; 24 | @Input() initialized: boolean; 25 | } 26 | -------------------------------------------------------------------------------- /modules/web/src/common/components/property/component.ts: -------------------------------------------------------------------------------- 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 | import {Component, Input} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-property', 19 | templateUrl: './template.html', 20 | styleUrls: ['./style.scss'], 21 | }) 22 | export class PropertyComponent { 23 | @Input() stretched = false; 24 | } 25 | -------------------------------------------------------------------------------- /modules/web/src/common/components/proxy/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | template: '', 19 | }) 20 | export class ProxyComponent {} 21 | -------------------------------------------------------------------------------- /modules/web/src/common/components/resourcelist/ingress/style.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 | @use '../../../../mixins' as *; 17 | 18 | .external-link-icon { 19 | @include kd-icon-size($body-font-size-base); 20 | 21 | margin-bottom: 0.75 * $baseline-grid; 22 | margin-left: 0.5 * $baseline-grid; 23 | } 24 | -------------------------------------------------------------------------------- /modules/web/src/common/components/sparkline/cpu/component.ts: -------------------------------------------------------------------------------- 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 | import {ChangeDetectionStrategy, Component} from '@angular/core'; 16 | import {Sparkline} from '../sparkline'; 17 | 18 | @Component({ 19 | selector: 'kd-cpu-sparkline', 20 | templateUrl: './template.html', 21 | changeDetection: ChangeDetectionStrategy.OnPush, 22 | }) 23 | export class CpuSparklineComponent extends Sparkline {} 24 | -------------------------------------------------------------------------------- /modules/web/src/common/components/sparkline/memory/component.ts: -------------------------------------------------------------------------------- 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 | import {ChangeDetectionStrategy, Component} from '@angular/core'; 16 | import {Sparkline} from '../sparkline'; 17 | 18 | @Component({ 19 | selector: 'kd-memory-sparkline', 20 | templateUrl: './template.html', 21 | changeDetection: ChangeDetectionStrategy.OnPush, 22 | }) 23 | export class MemorySparklineComponent extends Sparkline {} 24 | -------------------------------------------------------------------------------- /modules/web/src/common/components/textinput/style.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 | .kd-ace { 18 | height: 45 * $baseline-grid; 19 | width: 100%; 20 | } 21 | -------------------------------------------------------------------------------- /modules/web/src/common/components/textinput/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
21 | -------------------------------------------------------------------------------- /modules/web/src/common/components/uploadfile/style.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 | .kd-upload-button { 18 | margin-left: 2 * $baseline-grid; 19 | margin-top: 0.5 * $baseline-grid; 20 | } 21 | -------------------------------------------------------------------------------- /modules/web/src/common/components/workloadstatus/style.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 | .kd-graph-container { 18 | flex: auto; 19 | text-align: center; 20 | } 21 | 22 | .kd-graph-title { 23 | font-size: $subhead-font-size-base; 24 | padding-bottom: 2 * $baseline-grid; 25 | } 26 | -------------------------------------------------------------------------------- /modules/web/src/common/components/zerostate/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-zero-state', 19 | templateUrl: './template.html', 20 | styleUrls: ['./style.scss'], 21 | }) 22 | export class ZeroStateComponent {} 23 | -------------------------------------------------------------------------------- /modules/web/src/common/dialogs/alert/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |

{{ data.title }}

18 | {{ data.message }} 19 | 20 | 27 | 28 | -------------------------------------------------------------------------------- /modules/web/src/common/dialogs/download/style.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 | @use '../../../mixins' as *; 17 | 18 | .kd-download-progress-bar { 19 | margin-bottom: 2.5 * $baseline-grid; 20 | margin-top: 2.5 * $baseline-grid; 21 | } 22 | 23 | mat-dialog-actions { 24 | margin-top: $baseline-grid; 25 | } 26 | -------------------------------------------------------------------------------- /modules/web/src/common/interfaces/candeactivate.ts: -------------------------------------------------------------------------------- 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 | import {Directive, HostListener} from '@angular/core'; 16 | 17 | @Directive() 18 | export abstract class ICanDeactivate { 19 | abstract canDeactivate(): boolean; 20 | 21 | @HostListener('window:beforeunload', ['$event']) 22 | unloadNotification($event: any) { 23 | if (!this.canDeactivate()) { 24 | $event.returnValue = true; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /modules/web/src/common/params/params.ts: -------------------------------------------------------------------------------- 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 | * Parameter name of the namespace selection param. Mostly for internal use. 17 | */ 18 | export const NAMESPACE_STATE_PARAM = 'namespace'; 19 | 20 | /** 21 | * Parameter name of the search query. 22 | */ 23 | export const SEARCH_QUERY_STATE_PARAM = 'q'; 24 | 25 | /** 26 | * Parameter name of auto skipping login page. 27 | */ 28 | export const SKIP_LOGIN_PAGE_QUERY_STATE_PARAM = 'skipLoginPage'; 29 | -------------------------------------------------------------------------------- /modules/web/src/common/pipes/commaseparated.ts: -------------------------------------------------------------------------------- 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 | import {Pipe, PipeTransform} from '@angular/core'; 16 | 17 | @Pipe({name: 'commaSeparated'}) 18 | export class CommaSeparatedPipe implements PipeTransform { 19 | transform(value: string[]): string { 20 | if (!value) { 21 | return ''; 22 | } 23 | return value.join(', '); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /modules/web/src/common/pipes/filterby.ts: -------------------------------------------------------------------------------- 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 | import {Pipe, PipeTransform} from '@angular/core'; 16 | 17 | @Pipe({name: 'kdFilterBy'}) 18 | export class FilterByPipe implements PipeTransform { 19 | transform(arr: string[], predicate: string): string[] { 20 | return arr.filter(elem => elem.includes(predicate)); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /modules/web/src/common/pipes/stripansi.ts: -------------------------------------------------------------------------------- 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 | import {Pipe, PipeTransform} from '@angular/core'; 16 | import {SafeHtml} from '@angular/platform-browser'; 17 | import stripAnsi from 'strip-ansi'; 18 | 19 | /** 20 | * Strips ANSI codes from string. 21 | */ 22 | @Pipe({name: 'kdStripAnsi'}) 23 | export class StripAnsiPipe implements PipeTransform { 24 | transform(value: string): SafeHtml { 25 | return stripAnsi(value); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /modules/web/src/common/pipes/trim.ts: -------------------------------------------------------------------------------- 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 | import {Pipe, PipeTransform} from '@angular/core'; 16 | 17 | @Pipe({name: 'trim'}) 18 | export class TrimPipe implements PipeTransform { 19 | transform(value: string): string { 20 | if (!value) { 21 | return ''; 22 | } 23 | 24 | return value.trim(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /modules/web/src/common/resources/resource.ts: -------------------------------------------------------------------------------- 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 | import {HttpClient} from '@angular/common/http'; 16 | 17 | export abstract class ResourceBase { 18 | protected constructor(protected readonly http_: HttpClient) {} 19 | } 20 | -------------------------------------------------------------------------------- /modules/web/src/common/services/create/module.ts: -------------------------------------------------------------------------------- 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 | import {NgModule} from '@angular/core'; 16 | import {CreateService} from './service'; 17 | 18 | @NgModule({ 19 | providers: [CreateService], 20 | }) 21 | export class CreateServiceModule {} 22 | -------------------------------------------------------------------------------- /modules/web/src/common/services/guard/module.ts: -------------------------------------------------------------------------------- 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 | import {NgModule} from '@angular/core'; 16 | import {AuthGuard} from './auth'; 17 | import {LoginGuard} from './login'; 18 | import {SearchGuard} from './search'; 19 | 20 | @NgModule({ 21 | providers: [AuthGuard, SearchGuard, LoginGuard], 22 | }) 23 | export class GuardsModule {} 24 | -------------------------------------------------------------------------------- /modules/web/src/common/services/nav/module.ts: -------------------------------------------------------------------------------- 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 | import {NgModule} from '@angular/core'; 16 | 17 | import {NavService} from './service'; 18 | 19 | @NgModule({ 20 | providers: [NavService], 21 | }) 22 | export class NavServiceModule {} 23 | -------------------------------------------------------------------------------- /modules/web/src/common/services/resource/module.ts: -------------------------------------------------------------------------------- 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 | import {NgModule} from '@angular/core'; 16 | import {RouterModule} from '@angular/router'; 17 | import {NamespacedResourceService, ResourceService} from './resource'; 18 | import {UtilityService} from './utility'; 19 | 20 | @NgModule({ 21 | imports: [RouterModule], 22 | providers: [ResourceService, NamespacedResourceService, UtilityService], 23 | }) 24 | export class ResourceModule {} 25 | -------------------------------------------------------------------------------- /modules/web/src/crd/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({selector: 'kd-crd-list-state', template: ''}) 18 | export class CRDListComponent {} 19 | -------------------------------------------------------------------------------- /modules/web/src/create/from/file/style.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 | .kd-create-from-file-info { 18 | margin-bottom: $baseline-grid * 3; 19 | padding: 0 (0.5 * $baseline-grid); 20 | 21 | .material-icons { 22 | font-size: $body-font-size-base; 23 | } 24 | } 25 | 26 | .kd-deploy-from-file-button { 27 | margin-left: 0; 28 | } 29 | -------------------------------------------------------------------------------- /modules/web/src/create/from/form/deploylabel/deploylabel.ts: -------------------------------------------------------------------------------- 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 | * Represents label object used in deploy form view. 17 | */ 18 | export class DeployLabel { 19 | editable: boolean; 20 | key: string; 21 | value: string; 22 | 23 | constructor(key = '', value = '', editable = true) { 24 | this.editable = editable; 25 | 26 | this.key = key; 27 | 28 | this.value = value; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /modules/web/src/create/from/form/helpsection/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-help-section', 19 | templateUrl: './template.html', 20 | styleUrls: ['./style.scss'], 21 | }) 22 | export class HelpSectionComponent {} 23 | -------------------------------------------------------------------------------- /modules/web/src/create/from/form/helpsection/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
23 | 24 |
25 | -------------------------------------------------------------------------------- /modules/web/src/create/from/form/helpsection/userhelp/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-user-help', 19 | templateUrl: './template.html', 20 | styleUrls: ['./style.scss'], 21 | }) 22 | export class UserHelpComponent {} 23 | -------------------------------------------------------------------------------- /modules/web/src/create/from/form/helpsection/userhelp/style.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 | .kd-user-help ::ng-deep { 18 | font-size: $body-font-size-base; 19 | 20 | .material-icons { 21 | font-size: $caption-font-size-base; 22 | vertical-align: middle; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /modules/web/src/create/from/form/helpsection/userhelp/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
18 | 19 |
20 | -------------------------------------------------------------------------------- /modules/web/src/create/from/form/portmappings/style.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 | .kd-port-form-field { 16 | margin: 0 0 18px; 17 | } 18 | -------------------------------------------------------------------------------- /modules/web/src/create/from/input/style.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 | .kd-create-from-input-info { 18 | margin-bottom: $baseline-grid * 3; 19 | padding: 0 (0.5 * $baseline-grid); 20 | 21 | .material-icons { 22 | font-size: $body-font-size-base; 23 | } 24 | } 25 | 26 | .kd-create-from-input-button { 27 | margin-left: 0; 28 | } 29 | 30 | ::ng-deep .kd-ace { 31 | margin-bottom: $baseline-grid * 3; 32 | } 33 | -------------------------------------------------------------------------------- /modules/web/src/create/style.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 | @use '../mixins' as *; 17 | 18 | .kd-create-container { 19 | padding: 0; 20 | 21 | ::ng-deep .mat-tab-body-content { 22 | height: auto; 23 | padding: 2.5 * $baseline-grid; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /modules/web/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 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 | export const environment = { 16 | production: true, 17 | }; 18 | -------------------------------------------------------------------------------- /modules/web/src/environments/environment.ts: -------------------------------------------------------------------------------- 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 | export const environment = { 16 | production: false, 17 | }; 18 | -------------------------------------------------------------------------------- /modules/web/src/error/style.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 | @use '../mixins' as *; 17 | 18 | .kd-about-logo-icon { 19 | @include kd-icon-size(8 * $baseline-grid); 20 | 21 | margin: 0 (2 * $baseline-grid) 0 0; 22 | } 23 | 24 | .kd-error-icon { 25 | margin-right: $baseline-grid; 26 | } 27 | -------------------------------------------------------------------------------- /modules/web/src/index.routing.ts: -------------------------------------------------------------------------------- 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 | import {Routes} from '@angular/router'; 16 | import {LoginGuard} from '@common/services/guard/login'; 17 | import {LoginComponent} from './login/component'; 18 | 19 | export const routes: Routes = [ 20 | {path: 'login', component: LoginComponent, canActivate: [LoginGuard]}, 21 | {path: '', redirectTo: '/workloads', pathMatch: 'full'}, 22 | {path: '**', redirectTo: '/workloads'}, 23 | ]; 24 | -------------------------------------------------------------------------------- /modules/web/src/index.ts: -------------------------------------------------------------------------------- 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 | import {enableProdMode} from '@angular/core'; 16 | import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; 17 | 18 | import {environment} from '@environments/environment'; 19 | import {RootModule} from './index.module'; 20 | 21 | if (environment.production) { 22 | enableProdMode(); 23 | } 24 | 25 | platformBrowserDynamic().bootstrapModule(RootModule); 26 | -------------------------------------------------------------------------------- /modules/web/src/login/module.ts: -------------------------------------------------------------------------------- 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 | import {NgModule} from '@angular/core'; 16 | 17 | import {ComponentsModule} from '@common/components/module'; 18 | import {SharedModule} from '../shared.module'; 19 | import {LoginComponent} from './component'; 20 | 21 | @NgModule({ 22 | declarations: [LoginComponent], 23 | imports: [SharedModule, ComponentsModule], 24 | }) 25 | export class LoginModule {} 26 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/clusterrole/detail/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 22 | 26 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/clusterrole/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-cluster-role-list-state', 19 | template: '', 20 | }) 21 | export class ClusterRoleListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/clusterrolebinding/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-cluster-role-binding-list-state', 19 | template: '', 20 | }) 21 | export class ClusterRoleBindingListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | import {GroupedResourceList} from '@common/resources/groupedlist'; 17 | 18 | @Component({ 19 | selector: 'kd-cluster', 20 | templateUrl: './template.html', 21 | }) 22 | export class ClusterComponent extends GroupedResourceList {} 23 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/event/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-event-list-state', 19 | template: '', 20 | }) 21 | export class EventListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/namespace/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-namespace-list-view', 19 | template: '', 20 | }) 21 | export class NamespaceListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/networkpolicy/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-network-policy-list-state', 19 | template: '', 20 | }) 21 | export class NetworkPolicyListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/node/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-node-list-state', 19 | template: '', 20 | }) 21 | export class NodeListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/persistentvolume/detail/source/style.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 | .section-header { 18 | font-size: $subhead-font-size-base-lg; 19 | margin: (2 * $baseline-grid) 0; 20 | } 21 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/persistentvolume/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-persistent-volume-list-state', 19 | template: '', 20 | }) 21 | export class PersistentVolumeListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/role/detail/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 22 | 26 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/role/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-role-list-state', 19 | template: '', 20 | }) 21 | export class RoleListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/rolebinding/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-role-binding-list-state', 19 | template: '', 20 | }) 21 | export class RoleBingingListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/cluster/serviceaccount/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-service-account-list-state', 19 | template: '', 20 | }) 21 | export class ServiceAccountListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/config/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | import {GroupedResourceList} from '@common/resources/groupedlist'; 17 | 18 | @Component({ 19 | selector: 'kd-config', 20 | templateUrl: './template.html', 21 | }) 22 | export class ConfigComponent extends GroupedResourceList {} 23 | -------------------------------------------------------------------------------- /modules/web/src/resource/config/configmap/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-config-map-list-state', 19 | template: '', 20 | }) 21 | export class ConfigMapListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/config/persistentvolumeclaim/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-persistent-volume-claim-list-state', 19 | template: '', 20 | }) 21 | export class PersistentVolumeClaimListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/config/secret/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-secret-list-state', 19 | templateUrl: './template.html', 20 | }) 21 | export class SecretListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/config/secret/list/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | -------------------------------------------------------------------------------- /modules/web/src/resource/config/storageclass/detail/style.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 | @use '../../../../mixins' as *; 17 | 18 | .kd-storage-class-parameter-icon { 19 | @include kd-icon-size($caption-font-size-base); 20 | 21 | align-self: center; 22 | margin-left: $baseline-grid * 0.5; 23 | } 24 | -------------------------------------------------------------------------------- /modules/web/src/resource/config/storageclass/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-storage-class-list-state', 19 | template: '', 20 | }) 21 | export class StorageClassListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/discovery/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | import {GroupedResourceList} from '@common/resources/groupedlist'; 17 | 18 | @Component({ 19 | selector: 'kd-discovery', 20 | templateUrl: './template.html', 21 | }) 22 | export class DiscoveryComponent extends GroupedResourceList {} 23 | -------------------------------------------------------------------------------- /modules/web/src/resource/discovery/ingress/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-ingress-list-state', 19 | template: '', 20 | }) 21 | export class IngressListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/discovery/ingressclass/detail/style.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 | @use '../../../../mixins' as *; 17 | 18 | .kd-ingress-class-parameter-icon { 19 | @include kd-icon-size($caption-font-size-base); 20 | 21 | align-self: center; 22 | margin-left: $baseline-grid * 0.5; 23 | } 24 | -------------------------------------------------------------------------------- /modules/web/src/resource/discovery/ingressclass/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-ingress-class-list-state', 19 | template: '', 20 | }) 21 | export class IngressClassListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/discovery/service/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-service-list-state', 19 | template: '', 20 | }) 21 | export class ServiceListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/cronjob/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-cron-job-list-state', 19 | template: '', 20 | }) 21 | export class CronJobListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/daemonset/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-daemon-set-list-state', 19 | template: '', 20 | }) 21 | export class DaemonSetListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/deployment/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-deployment-list-state', 19 | template: '', 20 | }) 21 | export class DeploymentListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/job/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-job-list-state', 19 | template: '', 20 | }) 21 | export class JobListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/pod/detail/style.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 | .section-header { 18 | font-size: $subhead-font-size-base-lg; 19 | margin: (2 * $baseline-grid) 0; 20 | } 21 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/pod/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-pod-list-state', 19 | template: '', 20 | }) 21 | export class PodListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/replicaset/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-replica-set-list-state', 19 | template: '', 20 | }) 21 | export class ReplicaSetListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/replicationcontroller/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-replication-controller-list-state', 19 | template: '', 20 | }) 21 | export class ReplicationControllerListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/resource/workloads/statefulset/list/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-stateful-set-state', 19 | template: '', 20 | }) 21 | export class StatefulSetListComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/settings/component.ts: -------------------------------------------------------------------------------- 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 | import {Component} from '@angular/core'; 16 | 17 | @Component({ 18 | selector: 'kd-settings', 19 | template: '' + '', 20 | }) 21 | export class SettingsComponent {} 22 | -------------------------------------------------------------------------------- /modules/web/src/settings/entry/component.ts: -------------------------------------------------------------------------------- 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 | import {Component, Input} from '@angular/core'; 16 | 17 | @Component({selector: 'kd-settings-entry', templateUrl: './template.html'}) 18 | export class SettingsEntryComponent { 19 | @Input() key: string; 20 | @Input() desc: string; 21 | } 22 | -------------------------------------------------------------------------------- /modules/web/src/settings/entry/template.html: -------------------------------------------------------------------------------- 1 | 16 | 17 |
22 |
{{ key }}
23 |
{{ desc }}
24 |
25 | 29 | 30 | -------------------------------------------------------------------------------- /modules/web/src/settings/global/namespace/style.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 | @use '../../../variables' as *; 15 | 16 | kd-settings-entry { 17 | min-height: 7 * $baseline-grid; 18 | } 19 | -------------------------------------------------------------------------------- /modules/web/src/settings/global/style.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 | @use '../../variables' as *; 15 | 16 | kd-settings-entry { 17 | min-height: 7 * $baseline-grid; 18 | } 19 | -------------------------------------------------------------------------------- /modules/web/src/settings/local/style.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 | .mat-button-toggle-group { 18 | border: 0; 19 | 20 | .mat-button-toggle { 21 | border-radius: $baseline-grid * 0.5; 22 | margin-right: $baseline-grid; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /modules/web/src/systemjs.d.ts: -------------------------------------------------------------------------------- 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 | interface Window { 16 | define: (name: string, deps: string[], definitionFn: () => any) => void; 17 | 18 | System: { 19 | // @ts-expect-error as path implicitly has any type 20 | import: (path) => Promise; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /modules/web/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": ".tmp/out-tsc/app", 5 | "baseUrl": "./src", 6 | "types": ["node"] 7 | }, 8 | "include": [ 9 | "src/**/*.ts" 10 | ], 11 | "exclude": [ 12 | "src/**/*.spec.ts", 13 | "src/test.*.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /modules/web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "angularCompilerOptions": { 3 | "enableI18nLegacyMessageIdFormat": false 4 | }, 5 | "compileOnSave": false, 6 | "compilerOptions": { 7 | "baseUrl": "./src", 8 | "paths": { 9 | "@api/*": [ 10 | "typings/*" 11 | ], 12 | "@common/*": [ 13 | "common/*" 14 | ], 15 | "@environments/*": [ 16 | "environments/*" 17 | ] 18 | }, 19 | "outDir": ".tmp/out-tsc", 20 | "moduleResolution": "node", 21 | "target": "ES2022", 22 | "module": "ES2022", 23 | "sourceMap": true, 24 | "emitDecoratorMetadata": true, 25 | "experimentalDecorators": true, 26 | "noImplicitReturns": true, 27 | "noUnusedParameters": true, 28 | "noImplicitAny": true, 29 | "allowSyntheticDefaultImports": true, 30 | "esModuleInterop": true, 31 | "lib": [ 32 | "ES2022", 33 | "dom" 34 | ], 35 | "useDefineForClassFields": false 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /modules/web/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": ".tmp/out-tsc/spec", 5 | "baseUrl": "./src", 6 | "types": ["jest"], 7 | "emitDecoratorMetadata": false 8 | }, 9 | "include": [ 10 | "src/**/*.spec.ts", 11 | "src/**/test.*.ts", 12 | "src/typings/**/.*.ts", 13 | "src/index.messages.ts", 14 | ] 15 | } 16 | --------------------------------------------------------------------------------