mirror of https://github.com/rancher/dashboard.git
Spelling (#4994)
* spelling: accommodate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: additional Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: address Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: array Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: async Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: attributes Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: automatically Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: available Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: awesomeness Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: because Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: behaviour Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: bootstrapping Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: calculated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: callback Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: codemirror Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: config Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: configurable Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: constraints Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: default Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: deux Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: different Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: dissimilar Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: ensure Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: evaluate Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: example Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: existence Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: falsy Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: getter Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: global Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: grafana Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: image Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: integer Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: manifest Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: microservices Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: milli Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: mismatch Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: modifier Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: namespace Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: navigation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: nullable Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: occurred Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: package Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: param Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: permissions Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: portion Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: potentially Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: powershell Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: recipient Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: records Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: representation Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: request Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: required Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: returns Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: separated Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: should Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: software Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: substitute Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: support Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: their Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: unknown Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: upfront Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: upgrade Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: useful Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> * spelling: validator Signed-off-by: Josh Soref <jsoref@users.noreply.github.com> Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
This commit is contained in:
parent
f0b50f0766
commit
2256ee3acf
|
|
@ -28,7 +28,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
// FontAwesomness
|
||||
// FontAwesomeness
|
||||
$icon-li-width: math.div(30em, 14) !default;
|
||||
$icon-inverse: #fff !default;
|
||||
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ product:
|
|||
|
||||
suffix:
|
||||
percent: "%"
|
||||
milliCpus: mili CPUs
|
||||
milliCpus: milli CPUs
|
||||
cores: Cores
|
||||
cpus: CPUs
|
||||
ib: iB
|
||||
|
|
@ -285,7 +285,7 @@ authConfig:
|
|||
app:
|
||||
label: Application name
|
||||
value: 'Anything you like, e.g. My {vendor}'
|
||||
calllback:
|
||||
callback:
|
||||
label: Authorization callback URL
|
||||
description:
|
||||
label: Application description
|
||||
|
|
@ -869,7 +869,7 @@ changePassword:
|
|||
label: Generated Password
|
||||
newGeneratedPassword: Suggest a password
|
||||
errors:
|
||||
missmatchedPassword: Passwords do not match
|
||||
mismatchedPassword: Passwords do not match
|
||||
failedToChange: Failed to change password
|
||||
failedDeleteKey: Failed to delete key
|
||||
failedDeleteKeys: Failed to delete keys
|
||||
|
|
@ -983,7 +983,7 @@ cluster:
|
|||
registrationCommand:
|
||||
label: Registration Command
|
||||
linuxDetail: Run this command on each of the existing Linux machines you want to register.
|
||||
windowsDetail: Run this command in Powershell on each of the existing Windows machines you want to register. Windows nodes can only be workers.
|
||||
windowsDetail: Run this command in PowerShell on each of the existing Windows machines you want to register. Windows nodes can only be workers.
|
||||
windowsNotReady: The cluster must be up and running with Linux etcd, control plane, and worker nodes before the registration command for adding Windows workers will display.
|
||||
windowsWarning: Workload pods, including some deployed by Rancher charts, will be scheduled on both Linux and Windows nodes by default. Edit NodeSelector in the chart to direct them to be placed onto a compatible node.
|
||||
insecure: "Insecure: Select this to skip TLS verification if your server has a self-signed certificate."
|
||||
|
|
@ -1169,7 +1169,7 @@ cluster:
|
|||
availabilitySet:
|
||||
label: Availability Set (unmanaged)
|
||||
dns:
|
||||
help: A unique DNS label for the public IP adddress.
|
||||
help: A unique DNS label for the public IP address.
|
||||
label: DNS Label
|
||||
environment:
|
||||
label: Environment
|
||||
|
|
@ -1373,7 +1373,7 @@ cluster:
|
|||
addOns:
|
||||
additionalManifest:
|
||||
title: Additional Manifest
|
||||
tooltip: 'Additional Kubernetes Manifet YAML to be applied to the cluster on startup.'
|
||||
tooltip: 'Additional Kubernetes Manifest YAML to be applied to the cluster on startup.'
|
||||
advanced:
|
||||
argInfo:
|
||||
title: Additional Kubelet Args
|
||||
|
|
@ -1660,7 +1660,7 @@ clusterIndexPage:
|
|||
buttonText: Configure Gatekeeper
|
||||
disabled: OPA Gatekeeper is not configured.
|
||||
label: OPA Gatekeeper Constraint Violations
|
||||
noRows: There are no contraints with violations to show.
|
||||
noRows: There are no constraints with violations to show.
|
||||
nodes:
|
||||
label: Unhealthy Nodes
|
||||
noRows: There are no unhealthy nodes to show.
|
||||
|
|
@ -2496,10 +2496,10 @@ login:
|
|||
serverError:
|
||||
authFailedCreds: "Logging in failed: Check credentials, or your account may not be authorized to log in."
|
||||
authFailed: "Logging in failed: Your account may not be authorized to log in."
|
||||
unknown: "An unknown error occured while attempting to login. Please contact your system administrator."
|
||||
unknown: "An unknown error occurred while attempting to login. Please contact your system administrator."
|
||||
invalidSamlAttrs: "Invalid saml attributes"
|
||||
noResponse: "No response received"
|
||||
error: An error occured logging in. Please try again.
|
||||
error: An error occurred logging in. Please try again.
|
||||
clientError: Invalid username or password. Please try again.
|
||||
useLocal: Use a local user
|
||||
loginWithProvider: Log in with {provider}
|
||||
|
|
@ -2556,7 +2556,7 @@ monitoring:
|
|||
tip: 'Adds labels to the ClusterRoles deployed by the Monitoring chart to <a target="_blank" rel="noopener nofollow noreferrer" href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles"> aggregate to the corresponding default k8s admin, edit, and view ClusterRoles.</a>'
|
||||
alerting:
|
||||
config:
|
||||
label: Alert Manager Cofig
|
||||
label: Alert Manager Config
|
||||
enable:
|
||||
label: Deploy Alertmanager
|
||||
secrets:
|
||||
|
|
@ -3282,7 +3282,7 @@ probe:
|
|||
port:
|
||||
label: Check Port
|
||||
placeholder: e.g. 80
|
||||
placeholderDuex: e.g. 25
|
||||
placeholderDeux: e.g. 25
|
||||
initialDelay:
|
||||
label: Initial Delay
|
||||
placeholder: 'Default: 0'
|
||||
|
|
@ -4455,7 +4455,7 @@ validation:
|
|||
This screen has been updated to reflect the current values on the cluster. Review and reapply the changes you wanted to make, then Save again.
|
||||
Conflicting {fieldCount, plural, =1 {field} other {fields}}: {fields}
|
||||
custom:
|
||||
missing: 'No validtor exists for { validatorName }! Does the validtor exist in custom-validtors? Is the name spelled correctly?'
|
||||
missing: 'No validator exists for { validatorName }! Does the validator exist in custom-validators? Is the name spelled correctly?'
|
||||
dns:
|
||||
doubleHyphen: '"{key}" Cannot contain two or more consecutive hyphens'
|
||||
hostname:
|
||||
|
|
@ -4535,10 +4535,10 @@ validation:
|
|||
name:
|
||||
required: 'Port Rule [{position}] - Name is required.'
|
||||
nodePort:
|
||||
requriedInt: 'Port Rule [{position}] - Node Port must be interger values if included.'
|
||||
requiredInt: 'Port Rule [{position}] - Node Port must be integer values if included.'
|
||||
port:
|
||||
required: 'Port Rule [{position}] - Port is required.'
|
||||
requriedInt: 'Port Rule [{position}] - Port must be interger values if included.'
|
||||
requiredInt: 'Port Rule [{position}] - Port must be integer values if included.'
|
||||
targetPort:
|
||||
between: 'Port Rule [{position}] - Target Port must be between 1 and 65535'
|
||||
iana: 'Port Rule [{position}] - Target Port must be an IANA Service Name or Integer'
|
||||
|
|
@ -5740,7 +5740,7 @@ typeDescription:
|
|||
cis.cattle.io.clusterscanprofile: A profile is the configuration for the CIS scan, which is the benchmark versions to use and any specific tests to skip in that benchmark.
|
||||
cis.cattle.io.clusterscan: A scan is created to trigger a CIS scan on the cluster based on the defined profile. A report is created after the scan is completed.
|
||||
cis.cattle.io.clusterscanreport: A report is the result of a CIS scan of the cluster.
|
||||
management.cattle.io.feature: Feature Flags allow certain {vendor} features to be toggled on and off. Features that are off by default shoud be considered experimental functionality.
|
||||
management.cattle.io.feature: Feature Flags allow certain {vendor} features to be toggled on and off. Features that are off by default should be considered experimental functionality.
|
||||
cluster.x-k8s.io.machine: A Machine encapsulates the configuration of a Kubernetes Node. Use this view to see what happens after updating a cluster.
|
||||
cluster.x-k8s.io.machinedeployment: A Machine Deployment orchestrates deployments via templates over a collection of Machine Sets (similar to a Deployment). Use this view to see what happens after updating a cluster.
|
||||
cluster.x-k8s.io.machineset: A Machine Set ensures the desired number of Machine resources are up and running at all times (similar to a ReplicaSet). Use this view to see what happens after updating a cluster.
|
||||
|
|
@ -5759,7 +5759,7 @@ typeDescription:
|
|||
catalog.cattle.io.app: An installed application is a Helm 3 chart that was installed either via our charts or through the Helm CLI.
|
||||
logging.banzaicloud.io.clusterflow: Logs from the cluster will be collected and logged to the selected Cluster Output.
|
||||
logging.banzaicloud.io.clusteroutput: A cluster output defines which logging providers that logs can be sent to and is only effective when deployed in the namespace that the logging operator is in.
|
||||
logging.banzaicloud.io.flow: A flow defines which logs to collect and filter as well as which output to send the logs. The flow is a namespaced resource, which means logs will only be collected from the namepsace that the flow is deployed in.
|
||||
logging.banzaicloud.io.flow: A flow defines which logs to collect and filter as well as which output to send the logs. The flow is a namespaced resource, which means logs will only be collected from the namespace that the flow is deployed in.
|
||||
logging.banzaicloud.io.output: An output defines which logging providers that logs can be sent to. The output needs to be in the same namespace as the flow that is using it.
|
||||
group.principal: Assigning global roles to a group only works with external auth providers that support groups. Local authorization does not support groups.
|
||||
|
||||
|
|
@ -6177,7 +6177,7 @@ featureFlags:
|
|||
label: Feature Flags
|
||||
warning: |-
|
||||
Feature flags allow {vendor} to gate certain features behind flags.
|
||||
Features that are off by defult shoud be considered experimental functionality.
|
||||
Features that are off by default should be considered experimental functionality.
|
||||
Some features require a restart of the {vendor} server to change.
|
||||
This will result in a short outage of the API and UI, but not affect running clusters or workloads.
|
||||
promptActivate: Please confirm that you want to activate the feature flag "{flag}"
|
||||
|
|
@ -6258,7 +6258,7 @@ resourceQuota:
|
|||
projectLimit: Project Limit
|
||||
projectResourceAvailability: Project Resource Availability
|
||||
resourceType: Resource Type
|
||||
helpText: Configure how much of the resources the namesapce as a whole can consume.
|
||||
helpText: Configure how much of the resources the namespace as a whole can consume.
|
||||
helpTextDetail: The amount of resources the namespace as a whole can consume.
|
||||
configMaps: Config Maps
|
||||
limitsCpu: CPU Limit
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ product:
|
|||
|
||||
suffix:
|
||||
percent: "%"
|
||||
milliCpus: mili CPU
|
||||
milliCpus: milli CPU
|
||||
cores: 核心
|
||||
cpus: CPU
|
||||
ib: iB
|
||||
|
|
@ -289,7 +289,7 @@ authConfig:
|
|||
app:
|
||||
label: 应用名称
|
||||
value: '输入一个应用名称,例如:我的 {vendor}'
|
||||
calllback:
|
||||
callback:
|
||||
label: 授权回调 URL
|
||||
description:
|
||||
label: 应用描述
|
||||
|
|
@ -880,7 +880,7 @@ changePassword:
|
|||
label: 生成的密码
|
||||
newGeneratedPassword: 推荐密码
|
||||
errors:
|
||||
missmatchedPassword: 前后两次输入的密码不匹配
|
||||
mismatchedPassword: 前后两次输入的密码不匹配
|
||||
failedToChange: 无法修改密码
|
||||
failedDeleteKey: 无法删除单个 API 密钥
|
||||
failedDeleteKeys: 无法删除多个 API 密钥
|
||||
|
|
@ -994,7 +994,7 @@ cluster:
|
|||
registrationCommand:
|
||||
label: 注册命令
|
||||
linuxDetail: 在每台要注册的 Linux 机器上运行此命令。
|
||||
windowsDetail: 在每台要注册的 Windows 机器中的 Powershell 上运行此命令。Windows 节点只能充当 worker。
|
||||
windowsDetail: 在每台要注册的 Windows 机器中的 PowerShell 上运行此命令。Windows 节点只能充当 worker。
|
||||
windowsNotReady: 在用于添加 Windows worker 的注册命令显示之前,集群必须已启动并运行 Linux ETCD,Control Plane,以及 worker 节点。
|
||||
windowsWarning: 工作负载 Pod(包括由 Rancher Chart 部署的 Pod)将默认调度到 Linux 和 Windows 节点上。编辑 Chart 中的 NodeSelector 以将它们放置到兼容的节点上。
|
||||
insecure: "不安全:如果你的服务器具有自签名证书,选择此项以跳过 TLS 验证。"
|
||||
|
|
@ -3280,7 +3280,7 @@ probe:
|
|||
port:
|
||||
label: 检查端口
|
||||
placeholder: 例如:80
|
||||
placeholderDuex: 例如:25
|
||||
placeholderDeux: 例如:25
|
||||
initialDelay:
|
||||
label: 初始延迟
|
||||
placeholder: '默认值:0'
|
||||
|
|
@ -4557,10 +4557,10 @@ validation:
|
|||
name:
|
||||
required: '端口规则 [{position}] - 端口名称是必填项。'
|
||||
nodePort:
|
||||
requriedInt: '端口规则 [{position}] - 如果包含节点端口,节点端口必须是整数。'
|
||||
requiredInt: '端口规则 [{position}] - 如果包含节点端口,节点端口必须是整数。'
|
||||
port:
|
||||
required: '端口规则 [{position}] - 端口是必填项,'
|
||||
requriedInt: '端口规则 [{position}] - 如果包含端口,端口必须是整数。'
|
||||
requiredInt: '端口规则 [{position}] - 如果包含端口,端口必须是整数。'
|
||||
targetPort:
|
||||
between: '端口规则 [{position}] - 目标端口的取值范围是:1-65535'
|
||||
iana: '端口规则 [{position}] - 目标端口必须是 IANA 服务名称或整数'
|
||||
|
|
|
|||
|
|
@ -112,8 +112,8 @@ export default {
|
|||
},
|
||||
|
||||
watch: {
|
||||
// This method is not that disimilar to persistentStorageType in Grafan config
|
||||
// The reason for the divergence is that Grafna has a subkey on the chart
|
||||
// This method is not that dissimilar to persistentStorageType in Grafana config
|
||||
// The reason for the divergence is that Grafana has a subkey on the chart
|
||||
// where these keys are at the root of the chart. Vue complains about calling
|
||||
// this.$set(this, 'value', obj) as we need to do here to reset the values in bulk.
|
||||
// So rather than call each set on each line individually I give you this.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const WINDOW_MANAGER = 'windowmanager';
|
|||
|
||||
// Pages that we should intercept when loaded in the IFRAME and instead
|
||||
// navigate to a page in Cluster Dashboard
|
||||
// exmample if the Ember clusters page that is navigated to when the user presses cancel on some pages
|
||||
// example if the Ember clusters page that is navigated to when the user presses cancel on some pages
|
||||
// we intercept this and go the the vue Clusters page instead
|
||||
const INTERCEPTS = {
|
||||
'global-admin.clusters.index': {
|
||||
|
|
@ -220,7 +220,7 @@ export default {
|
|||
this.loaded = false;
|
||||
this.emberCheck = this.$axios.CancelToken.source();
|
||||
|
||||
// Make a head requst to a known asset of the Ember UI
|
||||
// Make a head request to a known asset of the Ember UI
|
||||
const pageUrl = `${ window.location.origin }/assets/images/logos/rke.svg`;
|
||||
const response = await this.$axios.head(pageUrl, {
|
||||
timeout: PAGE_CHECK_TIMEOUT,
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ export default {
|
|||
|
||||
let name = r[`${ this.direction }Id`];
|
||||
|
||||
// Skip things like toType/toNamspace+selector for now
|
||||
// Skip things like toType/toNamespace+selector for now
|
||||
if ( !name ) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ export const getters = {
|
|||
}
|
||||
|
||||
// Go through all the selected items and add the actions (which were already identified above)
|
||||
// as availalable for some (or all) of the selected nodes
|
||||
// as available for some (or all) of the selected nodes
|
||||
for ( const node of selected ) {
|
||||
if (node.availableActions) {
|
||||
for ( const act of node.availableActions ) {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import GraphCircle from '@/components/graph/Circle';
|
|||
import Banner from '@/components/Banner';
|
||||
|
||||
export default {
|
||||
name: 'SuppportBundle',
|
||||
name: 'SupportBundle',
|
||||
|
||||
components: {
|
||||
LabeledInput,
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ export default {
|
|||
passwordsMatch() {
|
||||
const match = this.passwordNew === this.passwordConfirm;
|
||||
|
||||
this.errorMessages = this.passwordConfirmBlurred && !match ? [this.t('changePassword.errors.missmatchedPassword')] : [];
|
||||
this.errorMessages = this.passwordConfirmBlurred && !match ? [this.t('changePassword.errors.mismatchedPassword')] : [];
|
||||
|
||||
return match;
|
||||
},
|
||||
|
|
@ -194,7 +194,7 @@ export default {
|
|||
}
|
||||
|
||||
if (this.isRandomGenerated) {
|
||||
// If we're not changing current user... and password is randomly generated... there'll be no new/confirm missmatch
|
||||
// If we're not changing current user... and password is randomly generated... there'll be no new/confirm mismatch
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -214,7 +214,7 @@ export default {
|
|||
const isValid = this.isValid();
|
||||
|
||||
if (isValid) {
|
||||
// Covers the case where we don't re-evaludate the error messages (don't need to at the time)
|
||||
// Covers the case where we don't re-evaluate the error messages (don't need to at the time)
|
||||
this.errorMessages = [];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ export default {
|
|||
},
|
||||
|
||||
// For asMap=false, preserve (copy) these keys from the original value into the emitted value.
|
||||
// Also usefule for valueFrom as above.
|
||||
// Also useful for valueFrom as above.
|
||||
preserveKeys: {
|
||||
type: Array,
|
||||
default: null,
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ export default {
|
|||
max="65535"
|
||||
:mode="mode"
|
||||
:label="t('probe.httpGet.port.label')"
|
||||
:placeholder="t('probe.httpGet.port.placeholderDuex')"
|
||||
:placeholder="t('probe.httpGet.port.placeholderDeux')"
|
||||
/>
|
||||
<div class="spacer-small" />
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -393,7 +393,7 @@ export default {
|
|||
privateField = 'password';
|
||||
break;
|
||||
default:
|
||||
throw new Error('Uknown type');
|
||||
throw new Error('Unknown type');
|
||||
}
|
||||
|
||||
secret._type = type;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ export default {
|
|||
}
|
||||
},
|
||||
/*
|
||||
userValue is a string respresentation of args array, with spaces between each array item and single quotes around any items with whitespace
|
||||
userValue is a string representation of args array, with spaces between each array item and single quotes around any items with whitespace
|
||||
value input of ["-c", "sleep 600"]
|
||||
is displayed as: "-c 'sleep 600'"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ export default {
|
|||
|
||||
props: {
|
||||
// Convert output to string
|
||||
// Output will also be a string regardless of this prop if outputModifer = true
|
||||
// Output will also be a string regardless of this prop if outputModifier = true
|
||||
outputAs: {
|
||||
type: String,
|
||||
default: 'number',
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ export default {
|
|||
// If the drop down content appears outside of the window then move it to be above the trigger
|
||||
// Do this is three steps
|
||||
// expanded: false & expanded-checked = false - Content does not appear in DOM
|
||||
// expanded: true & expanded-checked = false - Content appears in DOM (so it's location can be calcualated to be in or out of an area) but isn't visible (user doesn't see content blip from below to above trigger)
|
||||
// expanded: true & expanded-checked = false - Content appears in DOM (so it's location can be calculated to be in or out of an area) but isn't visible (user doesn't see content blip from below to above trigger)
|
||||
// expanded: true & expanded-checked = true - Content appears in DOM and is visible (it's final location is known so user can see)
|
||||
setTimeout(() => { // There be beasts without this (classes don't get applied... so drop down never gets shown)
|
||||
const dropdown = document.getElementById(this.id);
|
||||
|
|
@ -115,7 +115,7 @@ export default {
|
|||
return;
|
||||
}
|
||||
|
||||
// Ensire drop down will be inside of the window, otherwise show above the trigger
|
||||
// Ensure drop down will be inside of the window, otherwise show above the trigger
|
||||
const bounding = dropdown.getBoundingClientRect();
|
||||
const insideWindow = this.insideBounds(bounding, {
|
||||
top: 0,
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
// Cluster list number of items shown is configurbale via user preference
|
||||
// Cluster list number of items shown is configurable via user preference
|
||||
setClusterListHeight(maxToShow) {
|
||||
const el = this.$refs.clusterList;
|
||||
const max = Math.min(maxToShow, this.clusters.length);
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ export function init(store) {
|
|||
},
|
||||
{
|
||||
name: 'releaseNamespace',
|
||||
label: 'Tgt Namepsace',
|
||||
label: 'Tgt Namespace',
|
||||
sort: 'status.namespace',
|
||||
value: 'status.namespace',
|
||||
labelKey: 'catalog.operation.tableHeaders.releaseNamespace',
|
||||
|
|
|
|||
|
|
@ -315,7 +315,7 @@ export function init(store) {
|
|||
delimiter: { type: 'string' },
|
||||
delimiter_pattern: { type: 'string' },
|
||||
label_delimiter: { type: 'string' },
|
||||
multiline: { type: 'arrray[string]' },
|
||||
multiline: { type: 'array[string]' },
|
||||
patterns: { type: `array[${ LOGGING.SPOOFED.SINGLEPARSESECTION }]` },
|
||||
tracing_annotation_prefix: { type: 'string' },
|
||||
source_host_key_name: { type: 'string' },
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// --------------------------------------
|
||||
// 1. Provided by Steve and always potentialy available
|
||||
// 1. Provided by Steve and always potentially available
|
||||
// --------------------------------------
|
||||
|
||||
// Steve-specific virtual types
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ declare global {
|
|||
}
|
||||
|
||||
// TODO handle redirection errors better?
|
||||
// we see a lot of 'error nagivation cancelled' uncaught exceptions that don't actually break anything; ignore them here
|
||||
// we see a lot of 'error navigation cancelled' uncaught exceptions that don't actually break anything; ignore them here
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
// returning false here prevents Cypress from failing the test
|
||||
if (err.message.includes('navigation guard')) {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ export default {
|
|||
this.canSeeRoleTemplates = !!this.$store.getters[`management/canList`](MANAGEMENT.ROLE_TEMPLATE);
|
||||
|
||||
if (this.canSeeRoleTemplates) {
|
||||
// Upfront fetch, avoid aysnc computes
|
||||
// Upfront fetch, avoid async computes
|
||||
await Promise.all([
|
||||
await this.$store.dispatch('rancher/find', { type: NORMAN.USER, id: this.value.id }),
|
||||
await this.$store.dispatch('management/findAll', { type: MANAGEMENT.ROLE_TEMPLATE }),
|
||||
|
|
@ -160,7 +160,7 @@ export default {
|
|||
return out;
|
||||
} catch (e) {
|
||||
// Swallow the error. It's probably due to the user not having the correct permissions to read global roles
|
||||
console.error('Failed to fetch gobal role bindings: ', e); // eslint-disable-line no-console
|
||||
console.error('Failed to fetch global role bindings: ', e); // eslint-disable-line no-console
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ export default {
|
|||
const templateBindings = this.$store.getters['management/all'](MANAGEMENT.CLUSTER_ROLE_TEMPLATE_BINDING);
|
||||
const userTemplateBindings = templateBindings.filter(binding => binding.userName === userId);
|
||||
|
||||
// Upront load clusters
|
||||
// Upfront load clusters
|
||||
userTemplateBindings.map(b => this.$store.dispatch('management/find', { type: MANAGEMENT.CLUSTER, id: b.clusterName }));
|
||||
|
||||
return userTemplateBindings;
|
||||
|
|
@ -184,7 +184,7 @@ export default {
|
|||
return userTemplateBindings;
|
||||
},
|
||||
|
||||
// Global Permisions Helpers (brought over from ember)
|
||||
// Global Permissions Helpers (brought over from ember)
|
||||
hasPermission(globalRoleRules, permission) {
|
||||
return globalRoleRules.find((gRule) => {
|
||||
return ((gRule.apiGroups || []).includes('*') || (gRule.apiGroups || []).includes(permission.apiGroup)) &&
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ To gain familiarity with building and running container images, it may help to g
|
|||
|
||||
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
|
||||
|
||||
While it is possible to build a Kubernetes cluster on a single node managing a simple software application, that is not really what Kubernetes is intended for. Kubernetes is a complex solution intended to solve complex problems, and it is recommended for users who are running sofware applications that consist of at least twelve to fourteen microservices. When we say microservcices, we mean that the software is so complex that it needed to be divided into multiple independent parts that run in separate containers. If your software application can run in a single container, you probably don't need Kubernetes because it would be easier to manage it manually than to introduce the full complexity of Kubernetes to manage that container.
|
||||
While it is possible to build a Kubernetes cluster on a single node managing a simple software application, that is not really what Kubernetes is intended for. Kubernetes is a complex solution intended to solve complex problems, and it is recommended for users who are running software applications that consist of at least twelve to fourteen microservices. When we say microservices, we mean that the software is so complex that it needed to be divided into multiple independent parts that run in separate containers. If your software application can run in a single container, you probably don't need Kubernetes because it would be easier to manage it manually than to introduce the full complexity of Kubernetes to manage that container.
|
||||
|
||||
Kubernetes is too complex to document it all here, but a good starting point would be to go through the tutorials in the official [Kubernetes documentation.](https://kubernetes.io/docs/tutorials/) Minikube and K3d are examples of tools that let you play with Kubernetes in a sandbox environment for development and testing purposes.
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ See the [Running For Development](../../../README.md#running-for-development) se
|
|||
### Debugging the Dashboard
|
||||
|
||||
#### SSR vs SPA
|
||||
It's important to understand the difference between SSR and SPA modes described in the [Server-Side-Rendering (SSR)](../../../README.md#server-side-rendering-ssr) section. When running in the default SSR mode you will not be able to step through some methods such as Vue component's `async fetch`. It is therefore advised to switch to SPA mode before attempting to step through the code (see linked guide.. either start with `--spa` or load page with url parm `?spa` / `&spa`).
|
||||
It's important to understand the difference between SSR and SPA modes described in the [Server-Side-Rendering (SSR)](../../../README.md#server-side-rendering-ssr) section. When running in the default SSR mode you will not be able to step through some methods such as Vue component's `async fetch`. It is therefore advised to switch to SPA mode before attempting to step through the code (see linked guide.. either start with `--spa` or load page with url param `?spa` / `&spa`).
|
||||
|
||||
SSR adds additional complexity for the store and some component functions. More on this can be found in the `Resource` section of Development guide.
|
||||
|
||||
|
|
|
|||
|
|
@ -85,4 +85,4 @@ But normally you want to make a request using a Cloud Credential as the authoriz
|
|||
|
||||
If you have several different API calls to make or expensive information that can be cached after it's retrieved once, consider making a `store` with getters and actions to handle making your API calls and managing the caching. Most of the standard built-in drivers have these.
|
||||
|
||||
For more complicated providers (e.g. AWS) you can also consider importing their Javascript SDK and using their client to make calls. But unless there is an extension point to manipulate the request before they send it, you'll probably have to monkey patch their client to get the `X-Api-CattleAuth-Header` injected and the reqeust sent through the proxy instead of direct to them. The SDK should also be dynamically `import('…')`ed as needed at runtime so it's not loaded all the time. Regular `import … as …;` at the top of the file will become part of the basic app bundle js that's always loaded and has to be downloaded before the page can render. `store/aws.js` has examples of all of this.
|
||||
For more complicated providers (e.g. AWS) you can also consider importing their Javascript SDK and using their client to make calls. But unless there is an extension point to manipulate the request before they send it, you'll probably have to monkey patch their client to get the `X-Api-CattleAuth-Header` injected and the request sent through the proxy instead of direct to them. The SDK should also be dynamically `import('…')`ed as needed at runtime so it's not loaded all the time. Regular `import … as …;` at the top of the file will become part of the basic app bundle js that's always loaded and has to be downloaded before the page can render. `store/aws.js` has examples of all of this.
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ export default {
|
|||
<li><b>{{ t(`authConfig.${NAME}.form.app.label`) }}</b>: <span v-html="t(`authConfig.${NAME}.form.app.value`, tArgs, true)" /></li>
|
||||
<li><b>{{ t(`authConfig.${NAME}.form.homepage.label`) }}</b>: {{ serverUrl }} <CopyToClipboard label-as="tooltip" :text="serverUrl" class="icon-btn" action-color="bg-transparent" /></li>
|
||||
<li><b>{{ t(`authConfig.${NAME}.form.description.label`) }}</b>: <span v-html="t(`authConfig.${NAME}.form.description.value`, tArgs, true)" /></li>
|
||||
<li><b>{{ t(`authConfig.${NAME}.form.calllback.label`) }}</b>: {{ serverUrl }} <CopyToClipboard :text="serverUrl" label-as="tooltip" class="icon-btn" action-color="bg-transparent" /></li>
|
||||
<li><b>{{ t(`authConfig.${NAME}.form.callback.label`) }}</b>: {{ serverUrl }} <CopyToClipboard :text="serverUrl" label-as="tooltip" class="icon-btn" action-color="bg-transparent" /></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ export default {
|
|||
const expectedCurrentDefault = neu ? DEFAULT_NON_TLS_PORT : DEFAULT_TLS_PORT;
|
||||
const newDefault = neu ? DEFAULT_TLS_PORT : DEFAULT_NON_TLS_PORT;
|
||||
|
||||
// Note: The defualt port value is a number
|
||||
// Note: The default port value is a number
|
||||
// If the user edits this value, the type will be a string
|
||||
// Thus, we will only change the value when the user toggles the TLS flag if they have
|
||||
// NOT edited the port value in any way
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ export default {
|
|||
<LabeledSelect
|
||||
:label="t('gatekeeperConstraint.tab.namespaces.sub.scope.title')"
|
||||
:hover-tooltip="true"
|
||||
tooltip="Determines if cluster-scoped and/or namesapced-scoped resources are selected."
|
||||
tooltip="Determines if cluster-scoped and/or namespaced-scoped resources are selected."
|
||||
:value="value"
|
||||
:mode="mode"
|
||||
:options="SCOPE_OPTIONS"
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ export default {
|
|||
</div>
|
||||
<div class="row mb-20">
|
||||
<div class="col span-6">
|
||||
<LabeledInput v-model="value.to" :mode="mode" label="Default Recepient Address" placeholder="e.g. admin@example.com" />
|
||||
<LabeledInput v-model="value.to" :mode="mode" label="Default Recipient Address" placeholder="e.g. admin@example.com" />
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<Checkbox v-model="value.send_resolved" :mode="mode" class="mt-20" label="Enable send resolved alerts" />
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { mapGetters } from 'vuex';
|
|||
export default {
|
||||
components: { LabeledInput },
|
||||
props: {
|
||||
// volumeAttribtutes object
|
||||
// volumeAttributes object
|
||||
value: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { mapGetters } from 'vuex';
|
|||
export default {
|
||||
components: { LabeledInput, RadioGroup },
|
||||
props: {
|
||||
// volumeAttribtutes object
|
||||
// volumeAttributes object
|
||||
value: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ export default class CatalogApp extends SteveModel {
|
|||
// object = version available to upgrade to
|
||||
|
||||
if ( this.spec?.chart?.metadata?.annotations?.[FLEET.BUNDLE_ID] ) {
|
||||
// Things managed by fleet shouldn't show ugrade available even if there might be.
|
||||
// Things managed by fleet shouldn't show upgrade available even if there might be.
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import SteveModel from '@/plugins/steve/steve-class';
|
|||
import Vue from 'vue';
|
||||
|
||||
const OBSCURE_NAMESPACE_PREFIX = [
|
||||
'c-', // cluster namesapce
|
||||
'c-', // cluster namespace
|
||||
'p-', // project namespace
|
||||
'user-', // user namespace
|
||||
'local', // local namespace
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ export default class extends SteveModel {
|
|||
const constraints = this.constraints;
|
||||
|
||||
if ( constraints.length > 0 ) {
|
||||
return `There are still constaints using this template. You cannot delete this template while it's in use.`;
|
||||
return `There are still constraints using this template. You cannot delete this template while it's in use.`;
|
||||
}
|
||||
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ module.exports = {
|
|||
}
|
||||
}
|
||||
|
||||
// And substitue our own
|
||||
// And substitute our own
|
||||
config.module.rules.unshift({
|
||||
test: /\.(png|jpe?g|gif|svg|webp)$/,
|
||||
use: [
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export default {
|
|||
|
||||
async fetch() {
|
||||
if ( this.$store.getters['management/schemaFor'](SECRET) ) {
|
||||
// Having secrets allows showing the public poirtion of more types but not all users can see them.
|
||||
// Having secrets allows showing the public portion of more types but not all users can see them.
|
||||
await this.$store.dispatch('management/findAll', { type: SECRET });
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import jsyaml from 'js-yaml';
|
||||
|
||||
// Codemirrror yaml plugin expects to find it in window/globals.
|
||||
// CodeMirror yaml plugin expects to find it in window/globals.
|
||||
window.jsyaml = jsyaml;
|
||||
|
|
|
|||
|
|
@ -362,10 +362,10 @@ export default {
|
|||
|
||||
// opt:
|
||||
// filter: Filter by fields, e.g. {field: value, anotherField: anotherValue} (default: none)
|
||||
// limit: Number of reqords to return per page (default: 1000)
|
||||
// limit: Number of records to return per page (default: 1000)
|
||||
// sortBy: Sort by field
|
||||
// sortOrder: asc or desc
|
||||
// url: Use this specific URL instead of looking up the URL for the type/id. This should only be used for bootstraping schemas on startup.
|
||||
// url: Use this specific URL instead of looking up the URL for the type/id. This should only be used for bootstrapping schemas on startup.
|
||||
// @TODO depaginate: If the response is paginated, retrieve all the pages. (default: true)
|
||||
async find(ctx, { type, id, opt }) {
|
||||
const { getters, dispatch } = ctx;
|
||||
|
|
|
|||
|
|
@ -286,15 +286,15 @@ export default class Resource {
|
|||
get customValidationRules() {
|
||||
return [
|
||||
/**
|
||||
* Essentially a fake schema object with additonal params to extend validation
|
||||
* Essentially a fake schema object with additional params to extend validation
|
||||
*
|
||||
* @param {nullable} Value is nullabel
|
||||
* @param {nullable} Value is nullable
|
||||
* @param {path} Path on the resource to the value to validate
|
||||
* @param {required} Value required
|
||||
* @param {requiredIf} Value required if value at path not empty
|
||||
* @param {translationKey} Human readable display key for param in path e.g. metadata.name === Name
|
||||
* @param {type} Type of field to validate
|
||||
* @param {validators} array of strings where item is name of exported validator function in custom-validtors, args can be passed by prepending args seperated by colon. e.g maxLength:63
|
||||
* @param {validators} array of strings where item is name of exported validator function in custom-validators, args can be passed by prepending args separated by colon. e.g maxLength:63
|
||||
*/
|
||||
/* {
|
||||
nullable: false,
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ export const actions = {
|
|||
// Group loads into one loadMulti when possible
|
||||
toLoad.push(body);
|
||||
} else {
|
||||
// When we hit a differet kind of event, process all the previous loads, then the other event.
|
||||
// When we hit a different kind of event, process all the previous loads, then the other event.
|
||||
if ( toLoad.length ) {
|
||||
await dispatch('loadMulti', toLoad);
|
||||
toLoad = [];
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
// This script will add or remove the extra dependencies require for Storybook to the pacjage.json file
|
||||
// This script will add or remove the extra dependencies require for Storybook to the package.json file
|
||||
// It will perform a `yarn install` if the package.json file was updated
|
||||
|
||||
// Storybook adds a bit of weight to the yarn install process, so we only do it if we are using Storybook
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import { NAME as VIRTUAL } from '@/config/product/harvester';
|
|||
import { BACK_TO } from '@/config/local-storage';
|
||||
|
||||
// Disables strict mode for all store instances to prevent warning about changing state outside of mutations
|
||||
// becaues it's more efficient to do that sometimes.
|
||||
// because it's more efficient to do that sometimes.
|
||||
export const strict = false;
|
||||
|
||||
export const BLANK_CLUSTER = '_';
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ const driverToCloudProviderMap = {
|
|||
harvester: 'harvester',
|
||||
};
|
||||
|
||||
// Dynamically loaded drivers can call this eventually to register thier options
|
||||
// Dynamically loaded drivers can call this eventually to register their options
|
||||
export function configureCredential(name, opt) {
|
||||
credentialOptions[name] = opt;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
// spoofedType(obj) Create a fake type that can be treated like a normal type
|
||||
//
|
||||
// basicType( Mark type(s) as always shown in the top of the nav
|
||||
// type(s), -- Type name or arrry of type names
|
||||
// type(s), -- Type name or array of type names
|
||||
// group -- Group to show the type(s) under; false-y for top-level.
|
||||
// )
|
||||
// basicType( Mark all types in group as always shown in the top of the nav
|
||||
|
|
@ -544,7 +544,7 @@ export const getters = {
|
|||
const labelDisplay = highlightLabel(label, icon);
|
||||
|
||||
if ( !labelDisplay ) {
|
||||
// Search happens in highlight and retuns null if not found
|
||||
// Search happens in highlight and returns null if not found
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -955,7 +955,7 @@ export const getters = {
|
|||
// Note: you can't refactor these into one function that does `@/${kind}/${type}`,
|
||||
// because babel needs some hardcoded idea where to look for the dependency.
|
||||
//
|
||||
// Note 2: Yes these are editing state in a gettter for caching... it's ok, probably.
|
||||
// Note 2: Yes these are editing state in a getter for caching... it's ok, probably.
|
||||
// ------------------------------------
|
||||
hasCustomList(state, getters) {
|
||||
return (rawType) => {
|
||||
|
|
@ -1366,7 +1366,7 @@ export const mutations = {
|
|||
|
||||
// setGroupDefaultType({group: 'core', defaultType: 'name'});
|
||||
// By default when a group is clicked, the first item is selected - this allows
|
||||
// this behvaiour to be changed and a named child type can be chosen
|
||||
// this behaviour to be changed and a named child type can be chosen
|
||||
// These operate on group names *after* mapping but *before* translation
|
||||
setGroupDefaultType(state, { group, groups, defaultType }) {
|
||||
if ( !groups ) {
|
||||
|
|
@ -1690,7 +1690,7 @@ export function project(getters) {
|
|||
return project;
|
||||
}
|
||||
|
||||
// Convert the project namespaces into a map so we can check existtence easily
|
||||
// Convert the project namespaces into a map so we can check existence easily
|
||||
const prjNamespaceMap = project.namespaces.reduce((m, ns) => {
|
||||
m[ns.metadata.name] = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ If you run any of the targets:
|
|||
- yarn storybook
|
||||
- yarn build-storybook
|
||||
|
||||
the dependencies will be added to the `package.json` file and updated automactically.
|
||||
the dependencies will be added to the `package.json` file and updated automatically.
|
||||
|
||||
You can manually install them with the target:
|
||||
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ test('filterBy', (t) => {
|
|||
t.deepEqual(out, [obj3], 'Finds items with string truthiness');
|
||||
|
||||
out = filterBy(ary, 'bar', false);
|
||||
t.deepEqual(out, [obj2], 'Finds items with falsey values');
|
||||
t.deepEqual(out, [obj2], 'Finds items with falsy values');
|
||||
|
||||
out = filterBy(ary, 'foo', 'bar');
|
||||
t.deepEqual(out, [obj1], 'Finds items with string values');
|
||||
|
|
@ -175,7 +175,7 @@ test('findBy', (t) => {
|
|||
t.is(out, obj3, 'Finds items with string truthiness');
|
||||
|
||||
out = findBy(ary, 'bar', false);
|
||||
t.is(out, obj2, 'Finds items with falsey values');
|
||||
t.is(out, obj2, 'Finds items with falsy values');
|
||||
|
||||
out = findBy(ary, 'foo', 'bar');
|
||||
t.is(out, obj1, 'Finds items with string values');
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ export function createYaml(schemas, type, data, processAlwaysAdd = true, depth =
|
|||
if ( depth === 0 ) {
|
||||
const attr = schema.attributes || {};
|
||||
|
||||
// Default to data.apiVersion/kind to accomadate spoofed types that aggregate multiple types
|
||||
// Default to data.apiVersion/kind to accommodate spoofed types that aggregate multiple types
|
||||
data.apiVersion = (attr.group ? `${ attr.group }/${ attr.version }` : attr.version) || data.apiVersion;
|
||||
data.kind = attr.kind || data.kind;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ export async function haveV1MonitoringWorkloads(store) {
|
|||
|
||||
// Other ways we check for monitoring:
|
||||
|
||||
// (1) Using counts (requires RBAC permissinons)
|
||||
// (1) Using counts (requires RBAC permissions)
|
||||
// return !!this.clusterCounts?.[0]?.counts?.[CATALOG.APP]?.namespaces?.['cattle-monitoring-system'];
|
||||
|
||||
// (2) Retrieving all workloads and looking for containers with a given image
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ export function vmDisks(spec, getters, errors, validatorArgs, displayKey, value)
|
|||
const { type, typeValue } = getVolumeType(V, _volumeClaimTemplates);
|
||||
const prefix = V.name || idx + 1;
|
||||
|
||||
if (type === SOURCE_TYPE.IMAGE || type === SOURCE_TYPE.ATTACH_VOLUME) { // root iamge
|
||||
if (type === SOURCE_TYPE.IMAGE || type === SOURCE_TYPE.ATTACH_VOLUME) { // root image
|
||||
// const message = getters['i18n/t']('harvester.validation.vm.volume.needImageOrExisting');
|
||||
hasImageVolumeOrExistingVolume = true;
|
||||
// errors.push(message);
|
||||
|
|
|
|||
Loading…
Reference in New Issue