From c542ad03482c25df0c0ac768401b43d35e6ad44c Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 29 Sep 2020 11:25:29 -0400 Subject: [PATCH] refactor overview statuses to be more DRY (#912) * refactor overview statuses to be more DRY Signed-off-by: Sebastian Malton --- locales/en/messages.po | 170 ++++++++++-------- locales/fi/messages.po | 170 ++++++++++-------- locales/ru/messages.po | 170 ++++++++++-------- .../+workloads-daemonsets/daemonsets.store.ts | 6 +- .../deployments.store.ts | 6 +- .../+workloads-overview/overview-statuses.tsx | 88 ++++----- .../replicasets.store.ts | 6 +- .../statefulset.store.ts | 6 +- src/renderer/components/+workloads/index.ts | 2 +- .../components/+workloads/workloads.route.ts | 10 ++ .../components/+workloads/workloads.stores.ts | 17 ++ src/renderer/kube-object.store.ts | 2 + src/renderer/utils/rbac.ts | 28 +++ 13 files changed, 377 insertions(+), 304 deletions(-) create mode 100644 src/renderer/components/+workloads/workloads.stores.ts create mode 100644 src/renderer/utils/rbac.ts diff --git a/locales/en/messages.po b/locales/en/messages.po index 8ae622d54c..092161d0cf 100644 --- a/locales/en/messages.po +++ b/locales/en/messages.po @@ -25,7 +25,7 @@ msgstr "" msgid "(as a percentage of request)" msgstr "(as a percentage of request)" -#: src/renderer/components/+workspaces/workspaces.tsx:108 +#: src/renderer/components/+workspaces/workspaces.tsx:121 msgid "(current)" msgstr "(current)" @@ -57,11 +57,11 @@ msgstr "<0>{0} successfully created" #~ msgid "A HTTP proxy server URL (format: http://
:)" #~ msgstr "A HTTP proxy server URL (format: http://
:)" -#: src/renderer/components/input/input.validators.ts:40 +#: src/renderer/components/input/input.validators.ts:46 msgid "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics." msgstr "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics." -#: src/renderer/components/+workspaces/workspaces.tsx:84 +#: src/renderer/components/+workspaces/workspaces.tsx:93 msgid "A single workspaces contains a list of clusters and their full configuration." msgstr "A single workspaces contains a list of clusters and their full configuration." @@ -87,8 +87,8 @@ msgstr "Account Name" msgid "Active" msgstr "Active" -#: src/renderer/components/+add-cluster/add-cluster.tsx:303 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:118 +#: src/renderer/components/+add-cluster/add-cluster.tsx:288 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:130 msgid "Add Cluster" msgstr "Add Cluster" @@ -100,7 +100,7 @@ msgstr "Add Namespace" msgid "Add RoleBinding" msgstr "Add RoleBinding" -#: src/renderer/components/+workspaces/workspaces.tsx:125 +#: src/renderer/components/+workspaces/workspaces.tsx:138 msgid "Add Workspace" msgstr "Add Workspace" @@ -112,7 +112,7 @@ msgstr "Add bindings to {name}" #~ msgid "Add cluster" #~ msgstr "Add cluster" -#: src/renderer/components/+add-cluster/add-cluster.tsx:320 +#: src/renderer/components/+add-cluster/add-cluster.tsx:305 msgid "Add cluster(s)" msgstr "Add cluster(s)" @@ -136,7 +136,7 @@ msgstr "Add field" #~ msgid "Adding clusters: <0>{0}" #~ msgstr "Adding clusters: <0>{0}" -#: src/renderer/components/+preferences/preferences.tsx:103 +#: src/renderer/components/+preferences/preferences.tsx:111 msgid "Adding helm branch <0>{0} has failed: {1}" msgstr "Adding helm branch <0>{0} has failed: {1}" @@ -191,7 +191,7 @@ msgstr "Affinities" msgid "Age" msgstr "Age" -#: src/renderer/components/+workspaces/workspaces.tsx:64 +#: src/renderer/components/+workspaces/workspaces.tsx:65 msgid "All clusters within workspace will be cleared as well" msgstr "All clusters within workspace will be cleared as well" @@ -219,11 +219,11 @@ msgstr "Allocatable" msgid "Allow Privilege Escalation" msgstr "Allow Privilege Escalation" -#: src/renderer/components/+preferences/preferences.tsx:162 +#: src/renderer/components/+preferences/preferences.tsx:169 msgid "Allow telemetry & usage tracking" msgstr "Allow telemetry & usage tracking" -#: src/renderer/components/+preferences/preferences.tsx:154 +#: src/renderer/components/+preferences/preferences.tsx:161 msgid "Allow untrusted Certificate Authorities" msgstr "Allow untrusted Certificate Authorities" @@ -281,7 +281,7 @@ msgstr "Applying.." msgid "Apps" msgstr "Apps" -#: src/renderer/components/+workspaces/workspaces.tsx:61 +#: src/renderer/components/+workspaces/workspaces.tsx:62 msgid "Are you sure you want remove workspace <0>{0}?" msgstr "Are you sure you want remove workspace <0>{0}?" @@ -293,7 +293,7 @@ msgstr "Are you sure you want to drain <0>{nodeName}?" msgid "Arguments" msgstr "Arguments" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:108 +#: src/renderer/components/+landing-page/landing-page.tsx:27 msgid "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button." msgstr "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button." @@ -323,7 +323,7 @@ msgstr "Binding targets" msgid "Bindings" msgstr "Bindings" -#: src/renderer/components/+add-cluster/add-cluster.tsx:251 +#: src/renderer/components/+add-cluster/add-cluster.tsx:236 msgid "Browse" msgstr "Browse" @@ -402,7 +402,7 @@ msgstr "CPU requests" msgid "CPU:" msgstr "CPU:" -#: src/renderer/components/+workspaces/workspaces.tsx:119 +#: src/renderer/components/+workspaces/workspaces.tsx:133 #: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44 #: src/renderer/components/dock/info-panel.tsx:97 #: src/renderer/components/wizard/wizard.tsx:130 @@ -422,7 +422,7 @@ msgstr "Cancel" msgid "Capacity" msgstr "Capacity" -#: src/renderer/components/+preferences/preferences.tsx:153 +#: src/renderer/components/+preferences/preferences.tsx:160 msgid "Certificate Trust" msgstr "Certificate Trust" @@ -501,7 +501,7 @@ msgstr "Cluster IP" msgid "Cluster Issuers" msgstr "Cluster Issuers" -#: src/renderer/components/+preferences/preferences.tsx:126 +#: src/renderer/components/+preferences/preferences.tsx:134 msgid "Color Theme" msgstr "Color Theme" @@ -712,7 +712,6 @@ msgid "Cron Jobs" msgstr "Cron Jobs" #: src/renderer/components/+workloads/workloads.tsx:77 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:67 msgid "CronJobs" msgstr "CronJobs" @@ -759,7 +758,6 @@ msgid "Daemon Sets" msgstr "Daemon Sets" #: src/renderer/components/+workloads/workloads.tsx:53 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:57 msgid "DaemonSets" msgstr "DaemonSets" @@ -784,11 +782,15 @@ msgstr "Default Add Capabilities" msgid "Default Runtime Class Name" msgstr "Default Runtime Class Name" +#: src/renderer/components/+preferences/kubectl-binaries.tsx:30 +msgid "Default:" +msgstr "Default:" + #: src/renderer/components/+custom-resources/custom-resources.tsx:22 msgid "Definitions" msgstr "Definitions" -#: src/renderer/components/+workspaces/workspaces.tsx:113 +#: src/renderer/components/+workspaces/workspaces.tsx:126 #: src/renderer/components/menu/menu-actions.tsx:84 msgid "Delete" msgstr "Delete" @@ -799,12 +801,11 @@ msgstr "Deploy Revisions" #: src/renderer/components/+workloads/workloads.tsx:45 #: src/renderer/components/+workloads-deployments/deployments.tsx:57 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:47 msgid "Deployments" msgstr "Deployments" #: src/renderer/components/+apps-helm-charts/helm-charts.tsx:65 -#: src/renderer/components/+workspaces/workspaces.tsx:118 +#: src/renderer/components/+workspaces/workspaces.tsx:131 msgid "Description" msgstr "Description" @@ -817,7 +818,7 @@ msgstr "Desired Healthy" msgid "Desired number of replicas" msgstr "Desired number of replicas" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:64 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:65 msgid "Disconnect" msgstr "Disconnect" @@ -831,7 +832,7 @@ msgstr "Disk" msgid "Disk:" msgstr "Disk:" -#: src/renderer/components/+preferences/preferences.tsx:158 +#: src/renderer/components/+preferences/preferences.tsx:165 msgid "Does not affect cluster communications!" msgstr "Does not affect cluster communications!" @@ -840,14 +841,22 @@ msgid "Domains" msgstr "Domains" #: src/renderer/components/+preferences/preferences.tsx:129 -msgid "Download Mirror" -msgstr "Download Mirror" +#~ msgid "Download Mirror" +#~ msgstr "Download Mirror" #: src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx:90 msgid "Download file" msgstr "Download file" -#: src/renderer/components/+preferences/preferences.tsx:130 +#: src/renderer/components/+preferences/kubectl-binaries.tsx:39 +msgid "Download kubectl binaries" +msgstr "Download kubectl binaries" + +#: src/renderer/components/+preferences/kubectl-binaries.tsx:37 +msgid "Download kubectl binaries matching to Kubernetes cluster verison." +msgstr "Download kubectl binaries matching to Kubernetes cluster verison." + +#: src/renderer/components/+preferences/kubectl-binaries.tsx:41 msgid "Download mirror for kubectl" msgstr "Download mirror for kubectl" @@ -873,7 +882,7 @@ msgstr "Duration" msgid "E-mail" msgstr "E-mail" -#: src/renderer/components/+workspaces/workspaces.tsx:112 +#: src/renderer/components/+workspaces/workspaces.tsx:125 #: src/renderer/components/menu/menu-actions.tsx:80 #: src/renderer/components/menu/menu-actions.tsx:81 msgid "Edit" @@ -1000,7 +1009,7 @@ msgstr "From <0>{from} to <1>{to}" msgid "Fs Group" msgstr "Fs Group" -#: src/renderer/components/+landing-page/landing-page.tsx:23 +#: src/renderer/components/+landing-page/landing-page.tsx:37 msgid "Get started by associating one or more clusters to Lens." msgstr "Get started by associating one or more clusters to Lens." @@ -1022,7 +1031,7 @@ msgstr "Groups" msgid "HPA" msgstr "HPA" -#: src/renderer/components/+preferences/preferences.tsx:147 +#: src/renderer/components/+preferences/preferences.tsx:137 msgid "HTTP Proxy" msgstr "HTTP Proxy" @@ -1030,7 +1039,7 @@ msgstr "HTTP Proxy" #~ msgid "HTTP Proxy server. Used for communicating with Kubernetes API." #~ msgstr "HTTP Proxy server. Used for communicating with Kubernetes API." -#: src/renderer/components/+preferences/preferences.tsx:132 +#: src/renderer/components/+preferences/preferences.tsx:145 msgid "Helm" msgstr "Helm" @@ -1050,7 +1059,7 @@ msgstr "Helm Install: {repo}/{name}" msgid "Helm Upgrade: {0}" msgstr "Helm Upgrade: {0}" -#: src/renderer/components/+preferences/preferences.tsx:47 +#: src/renderer/components/+preferences/preferences.tsx:51 msgid "Helm branch <0>{0} already in use" msgstr "Helm branch <0>{0} already in use" @@ -1157,11 +1166,11 @@ msgstr "Installation complete!" msgid "Installing..." msgstr "Installing..." -#: src/renderer/components/input/input.validators.ts:44 +#: src/renderer/components/input/input.validators.ts:50 msgid "Invalid account ID" msgstr "Invalid account ID" -#: src/renderer/components/input/input.validators.ts:15 +#: src/renderer/components/input/input.validators.ts:16 msgid "Invalid number" msgstr "Invalid number" @@ -1197,7 +1206,6 @@ msgstr "Job name" #: src/renderer/components/+workloads/workloads.tsx:69 #: src/renderer/components/+workloads-cronjobs/cronjob-details.tsx:62 #: src/renderer/components/+workloads-jobs/jobs.tsx:36 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:62 msgid "Jobs" msgstr "Jobs" @@ -1241,6 +1249,10 @@ msgstr "Kubeconfig" msgid "Kubeconfig File" msgstr "Kubeconfig File" +#: src/renderer/components/+preferences/kubectl-binaries.tsx:35 +msgid "Kubectl Binary" +msgstr "Kubectl Binary" + #: src/renderer/components/+nodes/node-details.tsx:98 msgid "Kubelet version" msgstr "Kubelet version" @@ -1357,7 +1369,7 @@ msgstr "Max Pods" msgid "Max Unavailable" msgstr "Max Unavailable" -#: src/renderer/components/input/input.validators.ts:35 +#: src/renderer/components/input/input.validators.ts:41 msgid "Maximum length is {maxLength}" msgstr "Maximum length is {maxLength}" @@ -1433,7 +1445,7 @@ msgstr "Min Pods" msgid "Minimize" msgstr "Minimize" -#: src/renderer/components/input/input.validators.ts:30 +#: src/renderer/components/input/input.validators.ts:36 msgid "Minimum length is {minLength}" msgstr "Minimum length is {minLength}" @@ -1497,7 +1509,7 @@ msgstr "Mounts" #: src/renderer/components/+workloads-pods/pods.tsx:74 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:50 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40 -#: src/renderer/components/+workspaces/workspaces.tsx:117 +#: src/renderer/components/+workspaces/workspaces.tsx:130 #: src/renderer/components/dock/edit-resource.tsx:90 #: src/renderer/components/kube-object/kube-object-meta.tsx:20 msgid "Name" @@ -1565,7 +1577,7 @@ msgstr "Namespaces" msgid "Namespaces: {0}" msgstr "Namespaces: {0}" -#: src/renderer/components/+preferences/preferences.tsx:157 +#: src/renderer/components/+preferences/preferences.tsx:164 msgid "Needed with some corporate proxies that do certificate re-writing." msgstr "Needed with some corporate proxies that do certificate re-writing." @@ -1626,7 +1638,7 @@ msgstr "No Nodes Available." #~ msgid "No contexts available or they already added" #~ msgstr "No contexts available or they already added" -#: src/renderer/components/+add-cluster/add-cluster.tsx:275 +#: src/renderer/components/+add-cluster/add-cluster.tsx:260 msgid "No contexts available or they have been added already" msgstr "No contexts available or they have been added already" @@ -1742,7 +1754,7 @@ msgid "Organization" msgstr "Organization" #: src/renderer/components/+workloads/workloads.tsx:29 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:35 +#: src/renderer/components/+workloads-overview/overview-statuses.tsx:45 msgid "Overview" msgstr "Overview" @@ -1758,7 +1770,7 @@ msgstr "Parallelism" msgid "Parameters" msgstr "Parameters" -#: src/renderer/components/+add-cluster/add-cluster.tsx:245 +#: src/renderer/components/+add-cluster/add-cluster.tsx:230 msgid "Paste as text" msgstr "Paste as text" @@ -1848,7 +1860,6 @@ msgstr "Pod shell" #: src/renderer/components/+workloads/workloads.tsx:37 #: src/renderer/components/+workloads-daemonsets/daemonsets.tsx:47 #: src/renderer/components/+workloads-deployments/deployments.tsx:60 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:42 #: src/renderer/components/+workloads-pods/pod-details-list.tsx:89 #: src/renderer/components/+workloads-pods/pods.tsx:73 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:52 @@ -1899,7 +1910,7 @@ msgstr "Privileged" #~ msgid "Pro-Tip: paste kubeconfig to collect available contexts" #~ msgstr "Pro-Tip: paste kubeconfig to collect available contexts" -#: src/renderer/components/+add-cluster/add-cluster.tsx:263 +#: src/renderer/components/+add-cluster/add-cluster.tsx:248 msgid "Pro-Tip: paste kubeconfig to get available contexts" msgstr "Pro-Tip: paste kubeconfig to get available contexts" @@ -1907,7 +1918,7 @@ msgstr "Pro-Tip: paste kubeconfig to get available contexts" #~ msgid "Pro-Tip: paste kubeconfig to parse available contexts" #~ msgstr "Pro-Tip: paste kubeconfig to parse available contexts" -#: src/renderer/components/+add-cluster/add-cluster.tsx:254 +#: src/renderer/components/+add-cluster/add-cluster.tsx:239 msgid "Pro-Tip: you can also drag-n-drop kubeconfig file to this area" msgstr "Pro-Tip: you can also drag-n-drop kubeconfig file to this area" @@ -1924,11 +1935,11 @@ msgstr "Pro-Tip: you can also drag-n-drop kubeconfig file to this area" msgid "Provisioner" msgstr "Provisioner" -#: src/renderer/components/+preferences/preferences.tsx:150 +#: src/renderer/components/+preferences/preferences.tsx:140 msgid "Proxy is used only for non-cluster communication." msgstr "Proxy is used only for non-cluster communication." -#: src/renderer/components/+add-cluster/add-cluster.tsx:308 +#: src/renderer/components/+add-cluster/add-cluster.tsx:293 msgid "Proxy settings" msgstr "Proxy settings" @@ -2008,10 +2019,10 @@ msgstr "Release: {0}" msgid "Releases" msgstr "Releases" -#: src/renderer/components/+preferences/preferences.tsx:139 +#: src/renderer/components/+preferences/preferences.tsx:152 #: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:60 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:74 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:80 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:76 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:82 #: src/renderer/components/item-object-list/item-list-layout.tsx:179 #: src/renderer/components/menu/menu-actions.tsx:49 #: src/renderer/components/menu/menu-actions.tsx:85 @@ -2022,7 +2033,7 @@ msgstr "Remove" msgid "Remove <0>{releaseNames}?" msgstr "Remove <0>{releaseNames}?" -#: src/renderer/components/+workspaces/workspaces.tsx:51 +#: src/renderer/components/+workspaces/workspaces.tsx:52 msgid "Remove Workspace" msgstr "Remove Workspace" @@ -2050,7 +2061,7 @@ msgstr "Remove selected items ({0})" msgid "Remove {resourceKind} <0>{resourceName}?" msgstr "Remove {resourceKind} <0>{resourceName}?" -#: src/renderer/components/+preferences/preferences.tsx:114 +#: src/renderer/components/+preferences/preferences.tsx:122 msgid "Removing helm branch <0>{0} has failed: {1}" msgstr "Removing helm branch <0>{0} has failed: {1}" @@ -2074,7 +2085,7 @@ msgstr "Replicas" msgid "Repo/Name" msgstr "Repo/Name" -#: src/renderer/components/+preferences/preferences.tsx:133 +#: src/renderer/components/+preferences/preferences.tsx:146 msgid "Repositories" msgstr "Repositories" @@ -2109,7 +2120,7 @@ msgstr "Required Drop Capabilities" msgid "Required field" msgstr "Required field" -#: src/renderer/components/+add-cluster/add-cluster.tsx:250 +#: src/renderer/components/+add-cluster/add-cluster.tsx:235 #: src/renderer/components/item-object-list/page-filters-list.tsx:31 msgid "Reset" msgstr "Reset" @@ -2252,7 +2263,7 @@ msgstr "Runtime Class" #: src/renderer/components/+config-maps/config-map-details.tsx:78 #: src/renderer/components/+config-secrets/secret-details.tsx:97 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216 -#: src/renderer/components/+workspaces/workspaces.tsx:120 +#: src/renderer/components/+workspaces/workspaces.tsx:132 #: src/renderer/components/dock/edit-resource.tsx:88 msgid "Save" msgstr "Save" @@ -2341,13 +2352,13 @@ msgstr "Select a quota.." #~ msgid "Select context(s)" #~ msgstr "Select context(s)" -#: src/renderer/components/+add-cluster/add-cluster.tsx:272 -#~ msgid "Select contexts" -#~ msgstr "Select contexts" +#: src/renderer/components/+add-cluster/add-cluster.tsx:257 +msgid "Select contexts" +msgstr "Select contexts" #: src/renderer/components/+add-cluster/add-cluster.tsx:272 -msgid "Select contexts (available: {0})" -msgstr "Select contexts (available: {0})" +#~ msgid "Select contexts (available: {0})" +#~ msgstr "Select contexts (available: {0})" #: src/renderer/components/+add-cluster/add-cluster.tsx:76 #: src/renderer/components/+add-cluster/add-cluster.tsx:76 @@ -2371,7 +2382,7 @@ msgstr "Select custom kubeconfig file" #~ msgid "Select kubeconfig" #~ msgstr "Select kubeconfig" -#: src/renderer/components/+add-cluster/add-cluster.tsx:244 +#: src/renderer/components/+add-cluster/add-cluster.tsx:229 msgid "Select kubeconfig file" msgstr "Select kubeconfig file" @@ -2399,7 +2410,7 @@ msgstr "Select service accounts" #~ msgid "Selected contexts ({0}): <0>{1}" #~ msgstr "Selected contexts ({0}): <0>{1}" -#: src/renderer/components/+add-cluster/add-cluster.tsx:271 +#: src/renderer/components/+add-cluster/add-cluster.tsx:256 msgid "Selected contexts: <0>{0}" msgstr "Selected contexts: <0>{0}" @@ -2503,7 +2514,6 @@ msgid "Stateful Sets" msgstr "Stateful Sets" #: src/renderer/components/+workloads/workloads.tsx:61 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:52 msgid "StatefulSets" msgstr "StatefulSets" @@ -2605,11 +2615,11 @@ msgstr "TLS" msgid "Taints" msgstr "Taints" -#: src/renderer/components/+preferences/preferences.tsx:161 +#: src/renderer/components/+preferences/preferences.tsx:168 msgid "Telemetry & Usage Tracking" msgstr "Telemetry & Usage Tracking" -#: src/renderer/components/+preferences/preferences.tsx:164 +#: src/renderer/components/+preferences/preferences.tsx:171 msgid "Telemetry & usage data is collected to continuously improve the Lens experience." msgstr "Telemetry & usage data is collected to continuously improve the Lens experience." @@ -2629,15 +2639,19 @@ msgstr "There are no logs available for container." msgid "There are no logs available." msgstr "There are no logs available." -#: src/renderer/components/input/input.validators.ts:5 +#: src/renderer/components/input/input.validators.ts:6 msgid "This field is required" msgstr "This field is required" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:106 +#: src/renderer/components/input/input.validators.ts:31 +msgid "This field must be a valid path" +msgstr "This field must be a valid path" + +#: src/renderer/components/+landing-page/landing-page.tsx:25 msgid "This is the quick launch menu." msgstr "This is the quick launch menu." -#: src/renderer/components/+preferences/preferences.tsx:156 +#: src/renderer/components/+preferences/preferences.tsx:163 msgid "This will make Lens to trust ANY certificate authority without any validations." msgstr "This will make Lens to trust ANY certificate authority without any validations." @@ -2661,13 +2675,13 @@ msgstr "Tolerations" msgid "Transmit" msgstr "Transmit" -#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:107 +#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:106 #: src/renderer/components/+workloads-cronjobs/cronjobs.tsx:79 #: src/renderer/components/+workloads-cronjobs/cronjobs.tsx:80 msgid "Trigger" msgstr "Trigger" -#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:103 +#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:102 msgid "Trigger CronJob <0>{cronjobName}" msgstr "Trigger CronJob <0>{cronjobName}" @@ -2690,7 +2704,7 @@ msgstr "Trigger CronJob <0>{cronjobName}" msgid "Type" msgstr "Type" -#: src/renderer/components/+preferences/preferences.tsx:148 +#: src/renderer/components/+preferences/preferences.tsx:138 msgid "Type HTTP proxy url (example: http://proxy.acme.org:8080)" msgstr "Type HTTP proxy url (example: http://proxy.acme.org:8080)" @@ -2827,11 +2841,11 @@ msgstr "Waiting services to be running" msgid "Warnings: {0}" msgstr "Warnings: {0}" -#: src/renderer/components/+landing-page/landing-page.tsx:20 +#: src/renderer/components/+landing-page/landing-page.tsx:34 msgid "Welcome!" msgstr "Welcome!" -#: src/renderer/components/+workspaces/workspaces.tsx:79 +#: src/renderer/components/+workspaces/workspaces.tsx:88 msgid "What is a Workspace?" msgstr "What is a Workspace?" @@ -2844,19 +2858,19 @@ msgid "Workloads" msgstr "Workloads" #: src/renderer/components/+workspaces/workspace-menu.tsx:39 -#: src/renderer/components/+workspaces/workspaces.tsx:91 +#: src/renderer/components/+workspaces/workspaces.tsx:100 msgid "Workspaces" msgstr "Workspaces" -#: src/renderer/components/+workspaces/workspaces.tsx:81 +#: src/renderer/components/+workspaces/workspaces.tsx:90 msgid "Workspaces are used to organize number of clusters into logical groups." msgstr "Workspaces are used to organize number of clusters into logical groups." -#: src/renderer/components/input/input.validators.ts:10 +#: src/renderer/components/input/input.validators.ts:11 msgid "Wrong email format" msgstr "Wrong email format" -#: src/renderer/components/input/input.validators.ts:25 +#: src/renderer/components/input/input.validators.ts:26 msgid "Wrong url format" msgstr "Wrong url format" @@ -2915,7 +2929,7 @@ msgstr "listKind" msgid "never" msgstr "never" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:121 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:133 msgid "new" msgstr "new" diff --git a/locales/fi/messages.po b/locales/fi/messages.po index f64a50f272..363b9a49cc 100644 --- a/locales/fi/messages.po +++ b/locales/fi/messages.po @@ -25,7 +25,7 @@ msgstr "" msgid "(as a percentage of request)" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:108 +#: src/renderer/components/+workspaces/workspaces.tsx:121 msgid "(current)" msgstr "" @@ -57,11 +57,11 @@ msgstr "" #~ msgid "A HTTP proxy server URL (format: http://
:)" #~ msgstr "" -#: src/renderer/components/input/input.validators.ts:40 +#: src/renderer/components/input/input.validators.ts:46 msgid "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics." msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:84 +#: src/renderer/components/+workspaces/workspaces.tsx:93 msgid "A single workspaces contains a list of clusters and their full configuration." msgstr "" @@ -87,8 +87,8 @@ msgstr "" msgid "Active" msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:303 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:118 +#: src/renderer/components/+add-cluster/add-cluster.tsx:288 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:130 msgid "Add Cluster" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "Add RoleBinding" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:125 +#: src/renderer/components/+workspaces/workspaces.tsx:138 msgid "Add Workspace" msgstr "" @@ -112,7 +112,7 @@ msgstr "" #~ msgid "Add cluster" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:320 +#: src/renderer/components/+add-cluster/add-cluster.tsx:305 msgid "Add cluster(s)" msgstr "" @@ -136,7 +136,7 @@ msgstr "" #~ msgid "Adding clusters: <0>{0}" #~ msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:103 +#: src/renderer/components/+preferences/preferences.tsx:111 msgid "Adding helm branch <0>{0} has failed: {1}" msgstr "" @@ -191,7 +191,7 @@ msgstr "" msgid "Age" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:64 +#: src/renderer/components/+workspaces/workspaces.tsx:65 msgid "All clusters within workspace will be cleared as well" msgstr "" @@ -219,11 +219,11 @@ msgstr "" msgid "Allow Privilege Escalation" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:162 +#: src/renderer/components/+preferences/preferences.tsx:169 msgid "Allow telemetry & usage tracking" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:154 +#: src/renderer/components/+preferences/preferences.tsx:161 msgid "Allow untrusted Certificate Authorities" msgstr "" @@ -281,7 +281,7 @@ msgstr "" msgid "Apps" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:61 +#: src/renderer/components/+workspaces/workspaces.tsx:62 msgid "Are you sure you want remove workspace <0>{0}?" msgstr "" @@ -293,7 +293,7 @@ msgstr "" msgid "Arguments" msgstr "" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:108 +#: src/renderer/components/+landing-page/landing-page.tsx:27 msgid "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button." msgstr "" @@ -323,7 +323,7 @@ msgstr "" msgid "Bindings" msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:251 +#: src/renderer/components/+add-cluster/add-cluster.tsx:236 msgid "Browse" msgstr "" @@ -402,7 +402,7 @@ msgstr "" msgid "CPU:" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:119 +#: src/renderer/components/+workspaces/workspaces.tsx:133 #: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44 #: src/renderer/components/dock/info-panel.tsx:97 #: src/renderer/components/wizard/wizard.tsx:130 @@ -422,7 +422,7 @@ msgstr "" msgid "Capacity" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:153 +#: src/renderer/components/+preferences/preferences.tsx:160 msgid "Certificate Trust" msgstr "" @@ -497,7 +497,7 @@ msgstr "" msgid "Cluster Issuers" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:126 +#: src/renderer/components/+preferences/preferences.tsx:134 msgid "Color Theme" msgstr "" @@ -708,7 +708,6 @@ msgid "Cron Jobs" msgstr "" #: src/renderer/components/+workloads/workloads.tsx:77 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:67 msgid "CronJobs" msgstr "" @@ -755,7 +754,6 @@ msgid "Daemon Sets" msgstr "" #: src/renderer/components/+workloads/workloads.tsx:53 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:57 msgid "DaemonSets" msgstr "" @@ -780,11 +778,15 @@ msgstr "" msgid "Default Runtime Class Name" msgstr "" +#: src/renderer/components/+preferences/kubectl-binaries.tsx:30 +msgid "Default:" +msgstr "" + #: src/renderer/components/+custom-resources/custom-resources.tsx:22 msgid "Definitions" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:113 +#: src/renderer/components/+workspaces/workspaces.tsx:126 #: src/renderer/components/menu/menu-actions.tsx:84 msgid "Delete" msgstr "" @@ -795,12 +797,11 @@ msgstr "" #: src/renderer/components/+workloads/workloads.tsx:45 #: src/renderer/components/+workloads-deployments/deployments.tsx:57 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:47 msgid "Deployments" msgstr "" #: src/renderer/components/+apps-helm-charts/helm-charts.tsx:65 -#: src/renderer/components/+workspaces/workspaces.tsx:118 +#: src/renderer/components/+workspaces/workspaces.tsx:131 msgid "Description" msgstr "" @@ -813,7 +814,7 @@ msgstr "" msgid "Desired number of replicas" msgstr "" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:64 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:65 msgid "Disconnect" msgstr "" @@ -827,7 +828,7 @@ msgstr "" msgid "Disk:" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:158 +#: src/renderer/components/+preferences/preferences.tsx:165 msgid "Does not affect cluster communications!" msgstr "" @@ -836,14 +837,22 @@ msgid "Domains" msgstr "" #: src/renderer/components/+preferences/preferences.tsx:129 -msgid "Download Mirror" -msgstr "" +#~ msgid "Download Mirror" +#~ msgstr "" #: src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx:90 msgid "Download file" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:130 +#: src/renderer/components/+preferences/kubectl-binaries.tsx:39 +msgid "Download kubectl binaries" +msgstr "" + +#: src/renderer/components/+preferences/kubectl-binaries.tsx:37 +msgid "Download kubectl binaries matching to Kubernetes cluster verison." +msgstr "" + +#: src/renderer/components/+preferences/kubectl-binaries.tsx:41 msgid "Download mirror for kubectl" msgstr "" @@ -869,7 +878,7 @@ msgstr "" msgid "E-mail" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:112 +#: src/renderer/components/+workspaces/workspaces.tsx:125 #: src/renderer/components/menu/menu-actions.tsx:80 #: src/renderer/components/menu/menu-actions.tsx:81 msgid "Edit" @@ -991,7 +1000,7 @@ msgstr "" msgid "Fs Group" msgstr "" -#: src/renderer/components/+landing-page/landing-page.tsx:23 +#: src/renderer/components/+landing-page/landing-page.tsx:37 msgid "Get started by associating one or more clusters to Lens." msgstr "" @@ -1013,7 +1022,7 @@ msgstr "" msgid "HPA" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:147 +#: src/renderer/components/+preferences/preferences.tsx:137 msgid "HTTP Proxy" msgstr "" @@ -1021,7 +1030,7 @@ msgstr "" #~ msgid "HTTP Proxy server. Used for communicating with Kubernetes API." #~ msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:132 +#: src/renderer/components/+preferences/preferences.tsx:145 msgid "Helm" msgstr "" @@ -1041,7 +1050,7 @@ msgstr "" msgid "Helm Upgrade: {0}" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:47 +#: src/renderer/components/+preferences/preferences.tsx:51 msgid "Helm branch <0>{0} already in use" msgstr "" @@ -1148,11 +1157,11 @@ msgstr "" msgid "Installing..." msgstr "" -#: src/renderer/components/input/input.validators.ts:44 +#: src/renderer/components/input/input.validators.ts:50 msgid "Invalid account ID" msgstr "" -#: src/renderer/components/input/input.validators.ts:15 +#: src/renderer/components/input/input.validators.ts:16 msgid "Invalid number" msgstr "" @@ -1188,7 +1197,6 @@ msgstr "" #: src/renderer/components/+workloads/workloads.tsx:69 #: src/renderer/components/+workloads-cronjobs/cronjob-details.tsx:62 #: src/renderer/components/+workloads-jobs/jobs.tsx:36 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:62 msgid "Jobs" msgstr "" @@ -1232,6 +1240,10 @@ msgstr "" msgid "Kubeconfig File" msgstr "" +#: src/renderer/components/+preferences/kubectl-binaries.tsx:35 +msgid "Kubectl Binary" +msgstr "" + #: src/renderer/components/+nodes/node-details.tsx:98 msgid "Kubelet version" msgstr "" @@ -1348,7 +1360,7 @@ msgstr "" msgid "Max Unavailable" msgstr "" -#: src/renderer/components/input/input.validators.ts:35 +#: src/renderer/components/input/input.validators.ts:41 msgid "Maximum length is {maxLength}" msgstr "" @@ -1424,7 +1436,7 @@ msgstr "" msgid "Minimize" msgstr "" -#: src/renderer/components/input/input.validators.ts:30 +#: src/renderer/components/input/input.validators.ts:36 msgid "Minimum length is {minLength}" msgstr "" @@ -1488,7 +1500,7 @@ msgstr "" #: src/renderer/components/+workloads-pods/pods.tsx:74 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:50 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40 -#: src/renderer/components/+workspaces/workspaces.tsx:117 +#: src/renderer/components/+workspaces/workspaces.tsx:130 #: src/renderer/components/dock/edit-resource.tsx:90 #: src/renderer/components/kube-object/kube-object-meta.tsx:20 msgid "Name" @@ -1556,7 +1568,7 @@ msgstr "" msgid "Namespaces: {0}" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:157 +#: src/renderer/components/+preferences/preferences.tsx:164 msgid "Needed with some corporate proxies that do certificate re-writing." msgstr "" @@ -1609,7 +1621,7 @@ msgstr "" #~ msgid "No contexts available or they already added" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:275 +#: src/renderer/components/+add-cluster/add-cluster.tsx:260 msgid "No contexts available or they have been added already" msgstr "" @@ -1725,7 +1737,7 @@ msgid "Organization" msgstr "" #: src/renderer/components/+workloads/workloads.tsx:29 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:35 +#: src/renderer/components/+workloads-overview/overview-statuses.tsx:45 msgid "Overview" msgstr "" @@ -1741,7 +1753,7 @@ msgstr "" msgid "Parameters" msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:245 +#: src/renderer/components/+add-cluster/add-cluster.tsx:230 msgid "Paste as text" msgstr "" @@ -1831,7 +1843,6 @@ msgstr "" #: src/renderer/components/+workloads/workloads.tsx:37 #: src/renderer/components/+workloads-daemonsets/daemonsets.tsx:47 #: src/renderer/components/+workloads-deployments/deployments.tsx:60 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:42 #: src/renderer/components/+workloads-pods/pod-details-list.tsx:89 #: src/renderer/components/+workloads-pods/pods.tsx:73 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:52 @@ -1882,7 +1893,7 @@ msgstr "" #~ msgid "Pro-Tip: paste kubeconfig to collect available contexts" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:263 +#: src/renderer/components/+add-cluster/add-cluster.tsx:248 msgid "Pro-Tip: paste kubeconfig to get available contexts" msgstr "" @@ -1890,7 +1901,7 @@ msgstr "" #~ msgid "Pro-Tip: paste kubeconfig to parse available contexts" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:254 +#: src/renderer/components/+add-cluster/add-cluster.tsx:239 msgid "Pro-Tip: you can also drag-n-drop kubeconfig file to this area" msgstr "" @@ -1907,11 +1918,11 @@ msgstr "" msgid "Provisioner" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:150 +#: src/renderer/components/+preferences/preferences.tsx:140 msgid "Proxy is used only for non-cluster communication." msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:308 +#: src/renderer/components/+add-cluster/add-cluster.tsx:293 msgid "Proxy settings" msgstr "" @@ -1991,10 +2002,10 @@ msgstr "" msgid "Releases" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:139 +#: src/renderer/components/+preferences/preferences.tsx:152 #: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:60 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:74 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:80 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:76 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:82 #: src/renderer/components/item-object-list/item-list-layout.tsx:179 #: src/renderer/components/menu/menu-actions.tsx:49 #: src/renderer/components/menu/menu-actions.tsx:85 @@ -2005,7 +2016,7 @@ msgstr "" msgid "Remove <0>{releaseNames}?" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:51 +#: src/renderer/components/+workspaces/workspaces.tsx:52 msgid "Remove Workspace" msgstr "" @@ -2033,7 +2044,7 @@ msgstr "" msgid "Remove {resourceKind} <0>{resourceName}?" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:114 +#: src/renderer/components/+preferences/preferences.tsx:122 msgid "Removing helm branch <0>{0} has failed: {1}" msgstr "" @@ -2057,7 +2068,7 @@ msgstr "" msgid "Repo/Name" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:133 +#: src/renderer/components/+preferences/preferences.tsx:146 msgid "Repositories" msgstr "" @@ -2092,7 +2103,7 @@ msgstr "" msgid "Required field" msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:250 +#: src/renderer/components/+add-cluster/add-cluster.tsx:235 #: src/renderer/components/item-object-list/page-filters-list.tsx:31 msgid "Reset" msgstr "" @@ -2235,7 +2246,7 @@ msgstr "" #: src/renderer/components/+config-maps/config-map-details.tsx:78 #: src/renderer/components/+config-secrets/secret-details.tsx:97 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216 -#: src/renderer/components/+workspaces/workspaces.tsx:120 +#: src/renderer/components/+workspaces/workspaces.tsx:132 #: src/renderer/components/dock/edit-resource.tsx:88 msgid "Save" msgstr "" @@ -2324,13 +2335,13 @@ msgstr "" #~ msgid "Select context(s)" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:272 -#~ msgid "Select contexts" -#~ msgstr "" +#: src/renderer/components/+add-cluster/add-cluster.tsx:257 +msgid "Select contexts" +msgstr "" #: src/renderer/components/+add-cluster/add-cluster.tsx:272 -msgid "Select contexts (available: {0})" -msgstr "" +#~ msgid "Select contexts (available: {0})" +#~ msgstr "" #: src/renderer/components/+add-cluster/add-cluster.tsx:76 #: src/renderer/components/+add-cluster/add-cluster.tsx:76 @@ -2354,7 +2365,7 @@ msgstr "" #~ msgid "Select kubeconfig" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:244 +#: src/renderer/components/+add-cluster/add-cluster.tsx:229 msgid "Select kubeconfig file" msgstr "" @@ -2382,7 +2393,7 @@ msgstr "" #~ msgid "Selected contexts ({0}): <0>{1}" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:271 +#: src/renderer/components/+add-cluster/add-cluster.tsx:256 msgid "Selected contexts: <0>{0}" msgstr "" @@ -2486,7 +2497,6 @@ msgid "Stateful Sets" msgstr "" #: src/renderer/components/+workloads/workloads.tsx:61 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:52 msgid "StatefulSets" msgstr "" @@ -2588,11 +2598,11 @@ msgstr "" msgid "Taints" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:161 +#: src/renderer/components/+preferences/preferences.tsx:168 msgid "Telemetry & Usage Tracking" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:164 +#: src/renderer/components/+preferences/preferences.tsx:171 msgid "Telemetry & usage data is collected to continuously improve the Lens experience." msgstr "" @@ -2612,15 +2622,19 @@ msgstr "" msgid "There are no logs available." msgstr "" -#: src/renderer/components/input/input.validators.ts:5 +#: src/renderer/components/input/input.validators.ts:6 msgid "This field is required" msgstr "" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:106 +#: src/renderer/components/input/input.validators.ts:31 +msgid "This field must be a valid path" +msgstr "" + +#: src/renderer/components/+landing-page/landing-page.tsx:25 msgid "This is the quick launch menu." msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:156 +#: src/renderer/components/+preferences/preferences.tsx:163 msgid "This will make Lens to trust ANY certificate authority without any validations." msgstr "" @@ -2644,13 +2658,13 @@ msgstr "" msgid "Transmit" msgstr "" -#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:107 +#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:106 #: src/renderer/components/+workloads-cronjobs/cronjobs.tsx:79 #: src/renderer/components/+workloads-cronjobs/cronjobs.tsx:80 msgid "Trigger" msgstr "" -#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:103 +#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:102 msgid "Trigger CronJob <0>{cronjobName}" msgstr "" @@ -2673,7 +2687,7 @@ msgstr "" msgid "Type" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:148 +#: src/renderer/components/+preferences/preferences.tsx:138 msgid "Type HTTP proxy url (example: http://proxy.acme.org:8080)" msgstr "" @@ -2810,11 +2824,11 @@ msgstr "" msgid "Warnings: {0}" msgstr "" -#: src/renderer/components/+landing-page/landing-page.tsx:20 +#: src/renderer/components/+landing-page/landing-page.tsx:34 msgid "Welcome!" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:79 +#: src/renderer/components/+workspaces/workspaces.tsx:88 msgid "What is a Workspace?" msgstr "" @@ -2827,19 +2841,19 @@ msgid "Workloads" msgstr "" #: src/renderer/components/+workspaces/workspace-menu.tsx:39 -#: src/renderer/components/+workspaces/workspaces.tsx:91 +#: src/renderer/components/+workspaces/workspaces.tsx:100 msgid "Workspaces" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:81 +#: src/renderer/components/+workspaces/workspaces.tsx:90 msgid "Workspaces are used to organize number of clusters into logical groups." msgstr "" -#: src/renderer/components/input/input.validators.ts:10 +#: src/renderer/components/input/input.validators.ts:11 msgid "Wrong email format" msgstr "" -#: src/renderer/components/input/input.validators.ts:25 +#: src/renderer/components/input/input.validators.ts:26 msgid "Wrong url format" msgstr "" @@ -2898,7 +2912,7 @@ msgstr "" msgid "never" msgstr "" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:121 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:133 msgid "new" msgstr "" diff --git a/locales/ru/messages.po b/locales/ru/messages.po index e3a021d837..ea3d5a9731 100644 --- a/locales/ru/messages.po +++ b/locales/ru/messages.po @@ -26,7 +26,7 @@ msgstr "" msgid "(as a percentage of request)" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:108 +#: src/renderer/components/+workspaces/workspaces.tsx:121 msgid "(current)" msgstr "" @@ -58,11 +58,11 @@ msgstr "" #~ msgid "A HTTP proxy server URL (format: http://
:)" #~ msgstr "" -#: src/renderer/components/input/input.validators.ts:40 +#: src/renderer/components/input/input.validators.ts:46 msgid "A System Name must be lowercase DNS labels separated by dots. DNS labels are alphanumerics and dashes enclosed by alphanumerics." msgstr "Это поле может содержать только латинские буквы в нижнем регистре, номера и дефис." -#: src/renderer/components/+workspaces/workspaces.tsx:84 +#: src/renderer/components/+workspaces/workspaces.tsx:93 msgid "A single workspaces contains a list of clusters and their full configuration." msgstr "" @@ -88,8 +88,8 @@ msgstr "Название аккаунта" msgid "Active" msgstr "Активный" -#: src/renderer/components/+add-cluster/add-cluster.tsx:303 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:118 +#: src/renderer/components/+add-cluster/add-cluster.tsx:288 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:130 msgid "Add Cluster" msgstr "" @@ -101,7 +101,7 @@ msgstr "Добавить Namespace" msgid "Add RoleBinding" msgstr "Добавить привязку ролей" -#: src/renderer/components/+workspaces/workspaces.tsx:125 +#: src/renderer/components/+workspaces/workspaces.tsx:138 msgid "Add Workspace" msgstr "" @@ -113,7 +113,7 @@ msgstr "Добавить привязки к {name}" #~ msgid "Add cluster" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:320 +#: src/renderer/components/+add-cluster/add-cluster.tsx:305 msgid "Add cluster(s)" msgstr "" @@ -137,7 +137,7 @@ msgstr "Добавить поле" #~ msgid "Adding clusters: <0>{0}" #~ msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:103 +#: src/renderer/components/+preferences/preferences.tsx:111 msgid "Adding helm branch <0>{0} has failed: {1}" msgstr "" @@ -192,7 +192,7 @@ msgstr "Аффинитеты" msgid "Age" msgstr "Возраст" -#: src/renderer/components/+workspaces/workspaces.tsx:64 +#: src/renderer/components/+workspaces/workspaces.tsx:65 msgid "All clusters within workspace will be cleared as well" msgstr "" @@ -220,11 +220,11 @@ msgstr "" msgid "Allow Privilege Escalation" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:162 +#: src/renderer/components/+preferences/preferences.tsx:169 msgid "Allow telemetry & usage tracking" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:154 +#: src/renderer/components/+preferences/preferences.tsx:161 msgid "Allow untrusted Certificate Authorities" msgstr "" @@ -282,7 +282,7 @@ msgstr "Применение.." msgid "Apps" msgstr "Приложения" -#: src/renderer/components/+workspaces/workspaces.tsx:61 +#: src/renderer/components/+workspaces/workspaces.tsx:62 msgid "Are you sure you want remove workspace <0>{0}?" msgstr "" @@ -294,7 +294,7 @@ msgstr "Выполнить команду drain для ноды <0>{nodeName}{from} до <1>{to}" msgid "Fs Group" msgstr "" -#: src/renderer/components/+landing-page/landing-page.tsx:23 +#: src/renderer/components/+landing-page/landing-page.tsx:37 msgid "Get started by associating one or more clusters to Lens." msgstr "" @@ -1023,7 +1032,7 @@ msgstr "Группы" msgid "HPA" msgstr "HPA" -#: src/renderer/components/+preferences/preferences.tsx:147 +#: src/renderer/components/+preferences/preferences.tsx:137 msgid "HTTP Proxy" msgstr "" @@ -1031,7 +1040,7 @@ msgstr "" #~ msgid "HTTP Proxy server. Used for communicating with Kubernetes API." #~ msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:132 +#: src/renderer/components/+preferences/preferences.tsx:145 msgid "Helm" msgstr "" @@ -1051,7 +1060,7 @@ msgstr "Helm установка: {repo}/{name}" msgid "Helm Upgrade: {0}" msgstr "Helm обновление: {0}" -#: src/renderer/components/+preferences/preferences.tsx:47 +#: src/renderer/components/+preferences/preferences.tsx:51 msgid "Helm branch <0>{0} already in use" msgstr "" @@ -1158,11 +1167,11 @@ msgstr "Установка завершена!" msgid "Installing..." msgstr "Установка.." -#: src/renderer/components/input/input.validators.ts:44 +#: src/renderer/components/input/input.validators.ts:50 msgid "Invalid account ID" msgstr "Неверный ID аккаунта" -#: src/renderer/components/input/input.validators.ts:15 +#: src/renderer/components/input/input.validators.ts:16 msgid "Invalid number" msgstr "Неверный номер" @@ -1198,7 +1207,6 @@ msgstr "" #: src/renderer/components/+workloads/workloads.tsx:69 #: src/renderer/components/+workloads-cronjobs/cronjob-details.tsx:62 #: src/renderer/components/+workloads-jobs/jobs.tsx:36 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:62 msgid "Jobs" msgstr "Jobs" @@ -1242,6 +1250,10 @@ msgstr "Файл конфигурации" msgid "Kubeconfig File" msgstr "Файл конфигурации" +#: src/renderer/components/+preferences/kubectl-binaries.tsx:35 +msgid "Kubectl Binary" +msgstr "" + #: src/renderer/components/+nodes/node-details.tsx:98 msgid "Kubelet version" msgstr "Версия Kubelet" @@ -1358,7 +1370,7 @@ msgstr "Макс. подов" msgid "Max Unavailable" msgstr "" -#: src/renderer/components/input/input.validators.ts:35 +#: src/renderer/components/input/input.validators.ts:41 msgid "Maximum length is {maxLength}" msgstr "Максимальная длина {maxLength}" @@ -1434,7 +1446,7 @@ msgstr "Мин. подов" msgid "Minimize" msgstr "Минимизировать" -#: src/renderer/components/input/input.validators.ts:30 +#: src/renderer/components/input/input.validators.ts:36 msgid "Minimum length is {minLength}" msgstr "Минимальная длина {minLength}" @@ -1498,7 +1510,7 @@ msgstr "Установки" #: src/renderer/components/+workloads-pods/pods.tsx:74 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:50 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40 -#: src/renderer/components/+workspaces/workspaces.tsx:117 +#: src/renderer/components/+workspaces/workspaces.tsx:130 #: src/renderer/components/dock/edit-resource.tsx:90 #: src/renderer/components/kube-object/kube-object-meta.tsx:20 msgid "Name" @@ -1566,7 +1578,7 @@ msgstr "Namespaces" msgid "Namespaces: {0}" msgstr "Namespaces: {0}" -#: src/renderer/components/+preferences/preferences.tsx:157 +#: src/renderer/components/+preferences/preferences.tsx:164 msgid "Needed with some corporate proxies that do certificate re-writing." msgstr "" @@ -1627,7 +1639,7 @@ msgstr "Нет доступных нод." #~ msgid "No contexts available or they already added" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:275 +#: src/renderer/components/+add-cluster/add-cluster.tsx:260 msgid "No contexts available or they have been added already" msgstr "" @@ -1743,7 +1755,7 @@ msgid "Organization" msgstr "Организация" #: src/renderer/components/+workloads/workloads.tsx:29 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:35 +#: src/renderer/components/+workloads-overview/overview-statuses.tsx:45 msgid "Overview" msgstr "Обзор" @@ -1759,7 +1771,7 @@ msgstr "Параллелизм" msgid "Parameters" msgstr "Параметры" -#: src/renderer/components/+add-cluster/add-cluster.tsx:245 +#: src/renderer/components/+add-cluster/add-cluster.tsx:230 msgid "Paste as text" msgstr "" @@ -1849,7 +1861,6 @@ msgstr "Командная строка пода" #: src/renderer/components/+workloads/workloads.tsx:37 #: src/renderer/components/+workloads-daemonsets/daemonsets.tsx:47 #: src/renderer/components/+workloads-deployments/deployments.tsx:60 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:42 #: src/renderer/components/+workloads-pods/pod-details-list.tsx:89 #: src/renderer/components/+workloads-pods/pods.tsx:73 #: src/renderer/components/+workloads-replicasets/replicasets.tsx:52 @@ -1900,7 +1911,7 @@ msgstr "" #~ msgid "Pro-Tip: paste kubeconfig to collect available contexts" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:263 +#: src/renderer/components/+add-cluster/add-cluster.tsx:248 msgid "Pro-Tip: paste kubeconfig to get available contexts" msgstr "" @@ -1908,7 +1919,7 @@ msgstr "" #~ msgid "Pro-Tip: paste kubeconfig to parse available contexts" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:254 +#: src/renderer/components/+add-cluster/add-cluster.tsx:239 msgid "Pro-Tip: you can also drag-n-drop kubeconfig file to this area" msgstr "" @@ -1925,11 +1936,11 @@ msgstr "" msgid "Provisioner" msgstr "Комиссия" -#: src/renderer/components/+preferences/preferences.tsx:150 +#: src/renderer/components/+preferences/preferences.tsx:140 msgid "Proxy is used only for non-cluster communication." msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:308 +#: src/renderer/components/+add-cluster/add-cluster.tsx:293 msgid "Proxy settings" msgstr "" @@ -2009,10 +2020,10 @@ msgstr "Установка: {0}" msgid "Releases" msgstr "Релизы" -#: src/renderer/components/+preferences/preferences.tsx:139 +#: src/renderer/components/+preferences/preferences.tsx:152 #: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:60 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:74 -#: src/renderer/components/cluster-manager/clusters-menu.tsx:80 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:76 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:82 #: src/renderer/components/item-object-list/item-list-layout.tsx:179 #: src/renderer/components/menu/menu-actions.tsx:49 #: src/renderer/components/menu/menu-actions.tsx:85 @@ -2023,7 +2034,7 @@ msgstr "Удалить" msgid "Remove <0>{releaseNames}?" msgstr "Удалить <0>{releaseNames}?" -#: src/renderer/components/+workspaces/workspaces.tsx:51 +#: src/renderer/components/+workspaces/workspaces.tsx:52 msgid "Remove Workspace" msgstr "" @@ -2051,7 +2062,7 @@ msgstr "Удалить выбранные элементы ({0})" msgid "Remove {resourceKind} <0>{resourceName}?" msgstr "Удалить {resourceKind} <0>{resourceName}?" -#: src/renderer/components/+preferences/preferences.tsx:114 +#: src/renderer/components/+preferences/preferences.tsx:122 msgid "Removing helm branch <0>{0} has failed: {1}" msgstr "" @@ -2075,7 +2086,7 @@ msgstr "Реплики" msgid "Repo/Name" msgstr "Репозиторий/Имя" -#: src/renderer/components/+preferences/preferences.tsx:133 +#: src/renderer/components/+preferences/preferences.tsx:146 msgid "Repositories" msgstr "" @@ -2110,7 +2121,7 @@ msgstr "" msgid "Required field" msgstr "Обязательное поле" -#: src/renderer/components/+add-cluster/add-cluster.tsx:250 +#: src/renderer/components/+add-cluster/add-cluster.tsx:235 #: src/renderer/components/item-object-list/page-filters-list.tsx:31 msgid "Reset" msgstr "Сбросить" @@ -2253,7 +2264,7 @@ msgstr "" #: src/renderer/components/+config-maps/config-map-details.tsx:78 #: src/renderer/components/+config-secrets/secret-details.tsx:97 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216 -#: src/renderer/components/+workspaces/workspaces.tsx:120 +#: src/renderer/components/+workspaces/workspaces.tsx:132 #: src/renderer/components/dock/edit-resource.tsx:88 msgid "Save" msgstr "Сохранить" @@ -2342,13 +2353,13 @@ msgstr "Выберите квоту..." #~ msgid "Select context(s)" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:272 -#~ msgid "Select contexts" -#~ msgstr "" +#: src/renderer/components/+add-cluster/add-cluster.tsx:257 +msgid "Select contexts" +msgstr "" #: src/renderer/components/+add-cluster/add-cluster.tsx:272 -msgid "Select contexts (available: {0})" -msgstr "" +#~ msgid "Select contexts (available: {0})" +#~ msgstr "" #: src/renderer/components/+add-cluster/add-cluster.tsx:76 #: src/renderer/components/+add-cluster/add-cluster.tsx:76 @@ -2372,7 +2383,7 @@ msgstr "" #~ msgid "Select kubeconfig" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:244 +#: src/renderer/components/+add-cluster/add-cluster.tsx:229 msgid "Select kubeconfig file" msgstr "" @@ -2400,7 +2411,7 @@ msgstr "Выбрать сервисные аккаунты" #~ msgid "Selected contexts ({0}): <0>{1}" #~ msgstr "" -#: src/renderer/components/+add-cluster/add-cluster.tsx:271 +#: src/renderer/components/+add-cluster/add-cluster.tsx:256 msgid "Selected contexts: <0>{0}" msgstr "" @@ -2504,7 +2515,6 @@ msgid "Stateful Sets" msgstr "" #: src/renderer/components/+workloads/workloads.tsx:61 -#: src/renderer/components/+workloads-overview/overview-statuses.tsx:52 msgid "StatefulSets" msgstr "StatefulSets" @@ -2606,11 +2616,11 @@ msgstr "TLS" msgid "Taints" msgstr "Метки блокировки" -#: src/renderer/components/+preferences/preferences.tsx:161 +#: src/renderer/components/+preferences/preferences.tsx:168 msgid "Telemetry & Usage Tracking" msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:164 +#: src/renderer/components/+preferences/preferences.tsx:171 msgid "Telemetry & usage data is collected to continuously improve the Lens experience." msgstr "" @@ -2630,15 +2640,19 @@ msgstr "Для контейнера нет логов." msgid "There are no logs available." msgstr "Логи отсутствуют." -#: src/renderer/components/input/input.validators.ts:5 +#: src/renderer/components/input/input.validators.ts:6 msgid "This field is required" msgstr "Это обязательное поле" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:106 +#: src/renderer/components/input/input.validators.ts:31 +msgid "This field must be a valid path" +msgstr "" + +#: src/renderer/components/+landing-page/landing-page.tsx:25 msgid "This is the quick launch menu." msgstr "" -#: src/renderer/components/+preferences/preferences.tsx:156 +#: src/renderer/components/+preferences/preferences.tsx:163 msgid "This will make Lens to trust ANY certificate authority without any validations." msgstr "" @@ -2662,13 +2676,13 @@ msgstr "Толерантности" msgid "Transmit" msgstr "Транзит" -#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:107 +#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:106 #: src/renderer/components/+workloads-cronjobs/cronjobs.tsx:79 #: src/renderer/components/+workloads-cronjobs/cronjobs.tsx:80 msgid "Trigger" msgstr "" -#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:103 +#: src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx:102 msgid "Trigger CronJob <0>{cronjobName}" msgstr "" @@ -2691,7 +2705,7 @@ msgstr "" msgid "Type" msgstr "Тип" -#: src/renderer/components/+preferences/preferences.tsx:148 +#: src/renderer/components/+preferences/preferences.tsx:138 msgid "Type HTTP proxy url (example: http://proxy.acme.org:8080)" msgstr "" @@ -2828,11 +2842,11 @@ msgstr "Ожидание запуска сервисов" msgid "Warnings: {0}" msgstr "Предупреждения: {0}" -#: src/renderer/components/+landing-page/landing-page.tsx:20 +#: src/renderer/components/+landing-page/landing-page.tsx:34 msgid "Welcome!" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:79 +#: src/renderer/components/+workspaces/workspaces.tsx:88 msgid "What is a Workspace?" msgstr "" @@ -2845,19 +2859,19 @@ msgid "Workloads" msgstr "Ресурсы" #: src/renderer/components/+workspaces/workspace-menu.tsx:39 -#: src/renderer/components/+workspaces/workspaces.tsx:91 +#: src/renderer/components/+workspaces/workspaces.tsx:100 msgid "Workspaces" msgstr "" -#: src/renderer/components/+workspaces/workspaces.tsx:81 +#: src/renderer/components/+workspaces/workspaces.tsx:90 msgid "Workspaces are used to organize number of clusters into logical groups." msgstr "" -#: src/renderer/components/input/input.validators.ts:10 +#: src/renderer/components/input/input.validators.ts:11 msgid "Wrong email format" msgstr "Неверный формат электронной почты" -#: src/renderer/components/input/input.validators.ts:25 +#: src/renderer/components/input/input.validators.ts:26 msgid "Wrong url format" msgstr "Неверный url формат" @@ -2916,7 +2930,7 @@ msgstr "" msgid "never" msgstr "" -#: src/renderer/components/cluster-manager/clusters-menu.tsx:121 +#: src/renderer/components/cluster-manager/clusters-menu.tsx:133 msgid "new" msgstr "" diff --git a/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts b/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts index 3e9acdd036..dd59aad8ff 100644 --- a/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts +++ b/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts @@ -11,11 +11,9 @@ export class DaemonSetStore extends KubeObjectStore { @observable metrics: IPodMetrics = null; - loadMetrics(daemonSet: DaemonSet) { + async loadMetrics(daemonSet: DaemonSet) { const pods = this.getChildPods(daemonSet); - return podsApi.getMetrics(pods, daemonSet.getNs(), "").then(metrics => - this.metrics = metrics - ); + this.metrics = await podsApi.getMetrics(pods, daemonSet.getNs(), ""); } getChildPods(daemonSet: DaemonSet): Pod[] { diff --git a/src/renderer/components/+workloads-deployments/deployments.store.ts b/src/renderer/components/+workloads-deployments/deployments.store.ts index 59acd6c100..07fc095629 100644 --- a/src/renderer/components/+workloads-deployments/deployments.store.ts +++ b/src/renderer/components/+workloads-deployments/deployments.store.ts @@ -16,11 +16,9 @@ export class DeploymentStore extends KubeObjectStore { ], "desc"); } - loadMetrics(deployment: Deployment) { + async loadMetrics(deployment: Deployment) { const pods = this.getChildPods(deployment); - return podsApi.getMetrics(pods, deployment.getNs(), "").then(metrics => - this.metrics = metrics - ); + this.metrics = await podsApi.getMetrics(pods, deployment.getNs(), ""); } getStatuses(deployments?: Deployment[]) { diff --git a/src/renderer/components/+workloads-overview/overview-statuses.tsx b/src/renderer/components/+workloads-overview/overview-statuses.tsx index be770cd39a..ca6ad0d9ba 100644 --- a/src/renderer/components/+workloads-overview/overview-statuses.tsx +++ b/src/renderer/components/+workloads-overview/overview-statuses.tsx @@ -5,72 +5,54 @@ import { observer } from "mobx-react"; import { Trans } from "@lingui/macro"; import { OverviewWorkloadStatus } from "./overview-workload-status"; import { Link } from "react-router-dom"; -import { cronJobsURL, daemonSetsURL, deploymentsURL, jobsURL, podsURL, statefulSetsURL } from "../+workloads"; -import { podsStore } from "../+workloads-pods/pods.store"; -import { deploymentStore } from "../+workloads-deployments/deployments.store"; -import { daemonSetStore } from "../+workloads-daemonsets/daemonsets.store"; -import { statefulSetStore } from "../+workloads-statefulsets/statefulset.store"; -import { jobStore } from "../+workloads-jobs/job.store"; -import { cronJobStore } from "../+workloads-cronjobs/cronjob.store"; +import { workloadURL, workloadStores } from "../+workloads"; import { namespaceStore } from "../+namespaces/namespace.store"; import { PageFiltersList } from "../item-object-list/page-filters-list"; import { NamespaceSelectFilter } from "../+namespaces/namespace-select"; -import { isAllowedResource } from "../../../common/rbac"; +import { isAllowedResource, KubeResource } from "../../../common/rbac"; +import { ResourceNames } from "../../../renderer/utils/rbac"; +import { autobind } from "../../utils"; +import { _i18n } from "../../i18n"; + +const resources: KubeResource[] = [ + "pods", + "deployments", + "statefulsets", + "daemonsets", + "jobs", + "cronjobs", +] @observer export class OverviewStatuses extends React.Component { + @autobind() + renderWorkload(resource: KubeResource): React.ReactElement { + const store = workloadStores[resource]; + const items = store.getAllByNs(namespaceStore.contextNs) + return ( +
+
+ {ResourceNames[resource]} ({items.length}) +
+ +
+ ) + } + render() { - const { contextNs } = namespaceStore; - const pods = isAllowedResource("pods") ? podsStore.getAllByNs(contextNs) : []; - const deployments = isAllowedResource("deployments") ? deploymentStore.getAllByNs(contextNs) : []; - const statefulSets = isAllowedResource("statefulsets") ? statefulSetStore.getAllByNs(contextNs) : []; - const daemonSets = isAllowedResource("daemonsets") ? daemonSetStore.getAllByNs(contextNs) : []; - const jobs = isAllowedResource("jobs") ? jobStore.getAllByNs(contextNs) : []; - const cronJobs = isAllowedResource("cronjobs") ? cronJobStore.getAllByNs(contextNs) : []; + const workloads = resources + .filter(isAllowedResource) + .map(this.renderWorkload); + return (
Overview
- +
- +
- {isAllowedResource("pods") && -
-
Pods ({pods.length})
- -
- } - {isAllowedResource("deployments") && -
-
Deployments ({deployments.length})
- -
- } - {isAllowedResource("statefulsets") && -
-
StatefulSets ({statefulSets.length})
- -
- } - {isAllowedResource("daemonsets") && -
-
DaemonSets ({daemonSets.length})
- -
- } - {isAllowedResource("jobs") && -
-
Jobs ({jobs.length})
- -
- } - {isAllowedResource("cronjobs") && -
-
CronJobs ({cronJobs.length})
- -
- } + {workloads}
) diff --git a/src/renderer/components/+workloads-replicasets/replicasets.store.ts b/src/renderer/components/+workloads-replicasets/replicasets.store.ts index cf658e36f7..3b91999699 100644 --- a/src/renderer/components/+workloads-replicasets/replicasets.store.ts +++ b/src/renderer/components/+workloads-replicasets/replicasets.store.ts @@ -10,11 +10,9 @@ export class ReplicaSetStore extends KubeObjectStore { api = replicaSetApi @observable metrics: IPodMetrics = null; - loadMetrics(replicaSet: ReplicaSet) { + async loadMetrics(replicaSet: ReplicaSet) { const pods = this.getChildPods(replicaSet); - return podsApi.getMetrics(pods, replicaSet.getNs(), "").then(metrics => - this.metrics = metrics - ); + this.metrics = await podsApi.getMetrics(pods, replicaSet.getNs(), ""); } getChildPods(replicaSet: ReplicaSet) { diff --git a/src/renderer/components/+workloads-statefulsets/statefulset.store.ts b/src/renderer/components/+workloads-statefulsets/statefulset.store.ts index 5119ce6e00..5bca0a19b6 100644 --- a/src/renderer/components/+workloads-statefulsets/statefulset.store.ts +++ b/src/renderer/components/+workloads-statefulsets/statefulset.store.ts @@ -10,11 +10,9 @@ export class StatefulSetStore extends KubeObjectStore { api = statefulSetApi @observable metrics: IPodMetrics = null; - loadMetrics(statefulSet: StatefulSet) { + async loadMetrics(statefulSet: StatefulSet) { const pods = this.getChildPods(statefulSet); - return podsApi.getMetrics(pods, statefulSet.getNs(), "").then(metrics => - this.metrics = metrics - ); + this.metrics = await podsApi.getMetrics(pods, statefulSet.getNs(), ""); } getChildPods(statefulSet: StatefulSet) { diff --git a/src/renderer/components/+workloads/index.ts b/src/renderer/components/+workloads/index.ts index 300747c6af..1f2ae11149 100644 --- a/src/renderer/components/+workloads/index.ts +++ b/src/renderer/components/+workloads/index.ts @@ -1,3 +1,3 @@ export * from "./workloads.route" export * from "./workloads" - +export * from "./workloads.stores" diff --git a/src/renderer/components/+workloads/workloads.route.ts b/src/renderer/components/+workloads/workloads.route.ts index 94a7afd6ba..5586102faf 100644 --- a/src/renderer/components/+workloads/workloads.route.ts +++ b/src/renderer/components/+workloads/workloads.route.ts @@ -1,6 +1,7 @@ import { RouteProps } from "react-router" import { Workloads } from "./workloads"; import { buildURL, IURLParams } from "../../navigation"; +import { KubeResource } from "../../../common/rbac"; export const workloadsRoute: RouteProps = { get path() { @@ -62,3 +63,12 @@ export const daemonSetsURL = buildURL(daemonSetsRoute.pa export const statefulSetsURL = buildURL(statefulSetsRoute.path) export const jobsURL = buildURL(jobsRoute.path) export const cronJobsURL = buildURL(cronJobsRoute.path) + +export const workloadURL: Partial>> = { + "pods": podsURL, + "deployments": deploymentsURL, + "daemonsets": daemonSetsURL, + "statefulsets": statefulSetsURL, + "jobs": jobsURL, + "cronjobs": cronJobsURL, +} diff --git a/src/renderer/components/+workloads/workloads.stores.ts b/src/renderer/components/+workloads/workloads.stores.ts new file mode 100644 index 0000000000..998075140d --- /dev/null +++ b/src/renderer/components/+workloads/workloads.stores.ts @@ -0,0 +1,17 @@ +import { KubeObjectStore } from "../../kube-object.store"; +import { podsStore } from "../+workloads-pods/pods.store"; +import { deploymentStore } from "../+workloads-deployments/deployments.store"; +import { daemonSetStore } from "../+workloads-daemonsets/daemonsets.store"; +import { statefulSetStore } from "../+workloads-statefulsets/statefulset.store"; +import { jobStore } from "../+workloads-jobs/job.store"; +import { cronJobStore } from "../+workloads-cronjobs/cronjob.store"; +import { KubeResource } from "../../../common/rbac"; + +export const workloadStores: Partial> = { + "pods": podsStore, + "deployments": deploymentStore, + "daemonsets": daemonSetStore, + "statefulsets": statefulSetStore, + "jobs": jobStore, + "cronjobs": cronJobStore, +} diff --git a/src/renderer/kube-object.store.ts b/src/renderer/kube-object.store.ts index 0f647ced6d..16c5f0e9d0 100644 --- a/src/renderer/kube-object.store.ts +++ b/src/renderer/kube-object.store.ts @@ -19,6 +19,8 @@ export abstract class KubeObjectStore extends ItemSt kubeWatchApi.addListener(this, this.onWatchApiEvent); } + getStatuses?(items: T[]): Record; + getAllByNs(namespace: string | string[], strict = false): T[] { const namespaces: string[] = [].concat(namespace); if (namespaces.length) { diff --git a/src/renderer/utils/rbac.ts b/src/renderer/utils/rbac.ts new file mode 100644 index 0000000000..9f4ba97943 --- /dev/null +++ b/src/renderer/utils/rbac.ts @@ -0,0 +1,28 @@ +import { KubeResource } from "../../common/rbac"; +import { _i18n } from "../i18n"; + +export const ResourceNames: Record = { + "namespaces": _i18n._("Namespaces"), + "nodes": _i18n._("Nodes"), + "events": _i18n._("Events"), + "resourcequotas": _i18n._("Resource Quotas"), + "services": _i18n._("Services"), + "secrets": _i18n._("Secrets"), + "configmaps": _i18n._("Config Maps"), + "ingresses": _i18n._("Ingresses"), + "networkpolicies": _i18n._("Network Policies"), + "persistentvolumes": _i18n._("Persistent Volumes"), + "storageclasses": _i18n._("Storage Classes"), + "pods": _i18n._("Pods"), + "daemonsets": _i18n._("Daemon Sets"), + "deployments": _i18n._("Deployments"), + "statefulsets": _i18n._("Stateful Sets"), + "replicasets": _i18n._("Replica Sets"), + "jobs": _i18n._("Jobs"), + "cronjobs": _i18n._("Cron Jobs"), + "endpoints": _i18n._("Endpoints"), + "customresourcedefinitions": _i18n._("Custom Resource Definitions"), + "horizontalpodautoscalers": _i18n._("Horizontal Pod Autoscalers"), + "podsecuritypolicies": _i18n._("Pod Security Policies"), + "poddisruptionbudgets": _i18n._("Pod Disruption Budgets"), +}