mirror of https://github.com/rancher/ui.git
Merge pull request #2675 from vincent99/master
Cleanup custom cluster drivers
This commit is contained in:
commit
6b7005d46f
|
|
@ -281,9 +281,9 @@ const rootNav = [
|
||||||
{
|
{
|
||||||
scope: 'global',
|
scope: 'global',
|
||||||
id: 'nodes-node-drivers',
|
id: 'nodes-node-drivers',
|
||||||
localizedLabel: 'nav.admin.nodeDrivers',
|
localizedLabel: 'nav.admin.drivers',
|
||||||
route: 'nodes.custom-drivers',
|
route: 'nodes.custom-drivers',
|
||||||
resource: ['nodedriver', 'kontainerDriver'],
|
resource: ['nodedriver', 'kontainerdriver'],
|
||||||
resourceScope: 'global',
|
resourceScope: 'global',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
$btn-padding: 8px 15px;
|
$btn-padding: 8px 15px;
|
||||||
$xs-padding: 2px 3px;
|
$xs-padding: 2px 3px;
|
||||||
$sm-padding: 6px 10px 4px 10px;
|
$sm-padding: 5px 10px 3px 10px;
|
||||||
$lg-padding: 18px 30px;
|
$lg-padding: 18px 30px;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,13 @@
|
||||||
&.alidns { @include alidns; }
|
&.alidns { @include alidns; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.machine-driver-empty {
|
||||||
|
height: 100px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 50px;
|
||||||
|
color: $text-muted;
|
||||||
|
}
|
||||||
|
|
||||||
.error-loading-driver {
|
.error-loading-driver {
|
||||||
border: 2px solid red !important;
|
border: 2px solid red !important;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
<section class="header clearfix">
|
<section class="header has-tabs clearfix p-0">
|
||||||
|
<ul class="tab-nav">
|
||||||
|
<li>
|
||||||
|
{{#link-to "custom-drivers.cluster-drivers"}}{{t 'customDrivers.clusters'}}{{/link-to}}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
{{#link-to "custom-drivers.node-drivers"}}{{t 'customDrivers.nodes'}}{{/link-to}}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
<div class="right-buttons">
|
<div class="right-buttons">
|
||||||
{{!-- <button disabled={{rbac-prevents resource="kontainerDriver" scope="global" permission="create"}} class="btn btn-sm bg-primary right-divider-btn" {{action 'addNewDriver'}}>{{t 'machinePage.add'}}</button> --}}
|
<button disabled={{rbac-prevents resource="kontainerdriver" scope="global" permission="create"}} class="btn btn-sm bg-primary right-divider-btn" {{action 'addNewDriver'}}>{{t 'clusterDrivers.add'}}</button>
|
||||||
<button class="btn btn-sm bg-primary right-divider-btn" {{action 'addNewDriver'}}>{{t 'clusterDrivers.add'}}</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1>{{t 'clusterDrivers.title'}}</h1>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{{#sortable-table
|
{{#sortable-table
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import Route from '@ember/routing/route';
|
||||||
export default Route.extend({
|
export default Route.extend({
|
||||||
redirect(model, transition) {
|
redirect(model, transition) {
|
||||||
if (transition.targetName === 'nodes.custom-drivers.index') {
|
if (transition.targetName === 'nodes.custom-drivers.index') {
|
||||||
this.replaceWith('custom-drivers.node-drivers');
|
this.replaceWith('custom-drivers.cluster-drivers');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,15 @@
|
||||||
<section class="header clearfix">
|
<section class="header has-tabs clearfix p-0">
|
||||||
|
<ul class="tab-nav">
|
||||||
|
<li>
|
||||||
|
{{#link-to "custom-drivers.cluster-drivers"}}{{t 'customDrivers.clusters'}}{{/link-to}}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
{{#link-to "custom-drivers.node-drivers"}}{{t 'customDrivers.nodes'}}{{/link-to}}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
<div class="right-buttons">
|
<div class="right-buttons">
|
||||||
<button disabled={{rbac-prevents resource="nodedriver" scope="global" permission="create"}} class="btn btn-sm bg-primary right-divider-btn" {{action 'addNewDriver'}}>{{t 'machinePage.add'}}</button>
|
<button disabled={{rbac-prevents resource="nodedriver" scope="global" permission="create"}} class="btn btn-sm bg-primary right-divider-btn" {{action 'addNewDriver'}}>{{t 'machinePage.add'}}</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1>{{t 'machinePage.header'}}</h1>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{{#sortable-table
|
{{#sortable-table
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1 @@
|
||||||
<section class="header has-tabs clearfix pb-0">
|
|
||||||
<ul class="tab-nav">
|
|
||||||
<li>
|
|
||||||
{{#link-to "custom-drivers.cluster-drivers"}}{{t 'customDrivers.clusters'}}{{/link-to}}
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
{{#link-to "custom-drivers.node-drivers"}}{{t 'customDrivers.nodes'}}{{/link-to}}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
{{outlet}}
|
{{outlet}}
|
||||||
|
|
@ -2,9 +2,9 @@ import buildRoutes from 'ember-engines/routes';
|
||||||
|
|
||||||
export default buildRoutes(function() {
|
export default buildRoutes(function() {
|
||||||
// Define your engine's route map here
|
// Define your engine's route map here
|
||||||
this.route('custom-drivers', { path: '/custom-drivers' }, function() {
|
this.route('custom-drivers', { path: '/drivers' }, function() {
|
||||||
this.route('node-drivers', { path: '/node-drivers' });
|
this.route('node-drivers', { path: '/node' });
|
||||||
this.route('cluster-drivers', { path: '/cluster-drivers' });
|
this.route('cluster-drivers', { path: '/cluster' });
|
||||||
});
|
});
|
||||||
this.route('node-templates');
|
this.route('node-templates');
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ export default Component.extend(ViewNewEdit, ChildHook, {
|
||||||
driver: get(c, 'name'),
|
driver: get(c, 'name'),
|
||||||
kontainerId: get(c, 'id'),
|
kontainerId: get(c, 'id'),
|
||||||
name: get(c, 'name'),
|
name: get(c, 'name'),
|
||||||
nodeWhich: 'external',
|
genericIcon: true, // @TODO should have a way for drivers to provide an icon
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
set(this, 'needReloadSchema', true);
|
set(this, 'needReloadSchema', true);
|
||||||
|
|
@ -203,6 +203,8 @@ export default Component.extend(ViewNewEdit, ChildHook, {
|
||||||
out = out.filterBy('driver', 'rke');
|
out = out.filterBy('driver', 'rke');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
out.sortBy('name');
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|
@ -212,7 +214,6 @@ export default Component.extend(ViewNewEdit, ChildHook, {
|
||||||
const cloudGroup = [];
|
const cloudGroup = [];
|
||||||
const customGroup = [];
|
const customGroup = [];
|
||||||
const importGroup = [];
|
const importGroup = [];
|
||||||
const externalGroup = [];
|
|
||||||
|
|
||||||
choices.forEach((item) => {
|
choices.forEach((item) => {
|
||||||
if (get(item, 'driver') === 'rke' && get(item, 'name') !== 'custom') {
|
if (get(item, 'driver') === 'rke' && get(item, 'name') !== 'custom') {
|
||||||
|
|
@ -221,8 +222,6 @@ export default Component.extend(ViewNewEdit, ChildHook, {
|
||||||
importGroup.pushObject(item);
|
importGroup.pushObject(item);
|
||||||
} else if (get(item, 'name') === 'custom') {
|
} else if (get(item, 'name') === 'custom') {
|
||||||
customGroup.pushObject(item);
|
customGroup.pushObject(item);
|
||||||
} else if (get(item, 'nodeWhich') === 'external') {
|
|
||||||
externalGroup.pushObject(item)
|
|
||||||
} else {
|
} else {
|
||||||
cloudGroup.pushObject(item);
|
cloudGroup.pushObject(item);
|
||||||
}
|
}
|
||||||
|
|
@ -231,7 +230,6 @@ export default Component.extend(ViewNewEdit, ChildHook, {
|
||||||
return {
|
return {
|
||||||
cloudGroup,
|
cloudGroup,
|
||||||
customGroup,
|
customGroup,
|
||||||
externalGroup,
|
|
||||||
importGroup,
|
importGroup,
|
||||||
rkeGroup,
|
rkeGroup,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -13,113 +13,75 @@
|
||||||
{{#unless initialProvider}}
|
{{#unless initialProvider}}
|
||||||
|
|
||||||
<div class="row nav nav-boxes checked-active inline-form">
|
<div class="row nav nav-boxes checked-active inline-form">
|
||||||
<div class="col span-8 col-inline mt-0 mb-0">
|
<div class="col span-8 col-inline mb-0">
|
||||||
{{#if (gte providerGroups.cloudGroup.length 1)}}
|
<div>
|
||||||
<div class="row nav checked-active inline-form">
|
<label class="acc-label">{{t 'clusterNew.driverLabels.cloud'}}</label>
|
||||||
<div>
|
</div>
|
||||||
<label class="acc-label">{{t 'clusterNew.driverLabels.cloud'}}</label>
|
{{#each (get providerGroups "cloudGroup") as |choice|}}
|
||||||
|
{{#unless choice.scriptError}}
|
||||||
|
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-3 col-inline nav-box-item driver " choice.name)}}
|
||||||
|
<div class="machine-driver {{if choice.genericIcon 'generic'}} {{choice.name}}"></div>
|
||||||
|
<p class="driver-name">{{driver-name choice.name}}</p>
|
||||||
|
{{/link-to}}
|
||||||
|
{{else}}
|
||||||
|
<div class={{concat "disabled error-loading-driver mb-20 mt-10 col span-3 col-inline nav-box-item driver " choice.name}}>
|
||||||
|
{{#tooltip-element type="tooltip-basic" model=choice.scriptError tooltipTemplate='tooltip-static' aria-describedby="tooltip-base" tooltipFor="tooltipDriverError"}}
|
||||||
|
<span class="icon icon-alert"></span>
|
||||||
|
{{/tooltip-element}}
|
||||||
|
<div class="machine-driver {{choice.name}}"></div>
|
||||||
|
<p class="driver-name">{{driver-name choice.name}}</p>
|
||||||
</div>
|
</div>
|
||||||
{{#each (get providerGroups "cloudGroup") as |choice|}}
|
{{/unless}}
|
||||||
{{#unless choice.scriptError}}
|
{{else}}
|
||||||
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-3 col-inline nav-box-item driver " choice.name)}}
|
<div class="machine-driver-empty">{{t 'clusterNew.driverLabels.noCloud'}}</div>
|
||||||
<div class="machine-driver {{choice.name}}"></div>
|
{{/each}}
|
||||||
<p class="driver-name">{{driver-name choice.name}}</p>
|
|
||||||
{{#if choice.genericIcon}}
|
|
||||||
<p class="text-link text-bold">{{driver-name choice.name}}</p>
|
|
||||||
{{/if}}
|
|
||||||
{{/link-to}}
|
|
||||||
{{else}}
|
|
||||||
<div
|
|
||||||
class={{concat "disabled error-loading-driver mb-20 mt-10 col span-3 col-inline nav-box-item driver " choice.name}}>
|
|
||||||
{{#tooltip-element type="tooltip-basic" model=choice.scriptError tooltipTemplate='tooltip-static' aria-describedby="tooltip-base" tooltipFor="tooltipDriverError"}}
|
|
||||||
<span class="icon icon-alert"></span>
|
|
||||||
{{/tooltip-element}}
|
|
||||||
<div class="machine-driver {{choice.name}}"></div>
|
|
||||||
<p class="driver-name">{{driver-name choice.name}}</p>
|
|
||||||
{{#if choice.genericIcon}}
|
|
||||||
<p class="text-link text-bold">{{driver-name choice.name}}</p>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
{{/unless}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if (gte providerGroups.rkeGroup.length 1)}}
|
|
||||||
<div class="row">
|
|
||||||
<div>
|
|
||||||
<label class="acc-label">{{t 'clusterNew.driverLabels.infra'}}</label>
|
|
||||||
</div>
|
|
||||||
{{#each (get providerGroups "rkeGroup") as |choice|}}
|
|
||||||
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-3 col-inline nav-box-item driver " choice.name)}}
|
|
||||||
<div class="machine-driver {{if choice.genericIcon 'generic'}} {{choice.name}}"></div>
|
|
||||||
<p class="driver-name">{{driver-name choice.name}}</p>
|
|
||||||
{{/link-to}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if (gte providerGroups.externalGroup.length 1)}}
|
|
||||||
<div class="row">
|
|
||||||
<div>
|
|
||||||
<label class="acc-label">{{t 'clusterNew.driverLabels.external'}}</label>
|
|
||||||
</div>
|
|
||||||
{{#each (get providerGroups "externalGroup") as |choice|}}
|
|
||||||
{{#unless choice.scriptError}}
|
|
||||||
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-3 col-inline nav-box-item driver " choice.name)}}
|
|
||||||
<div class="machine-driver {{choice.name}}"></div>
|
|
||||||
<p class="driver-name">{{driver-name choice.name}}</p>
|
|
||||||
{{#if choice.genericIcon}}
|
|
||||||
<p class="text-link text-bold">{{driver-name choice.name}}</p>
|
|
||||||
{{/if}}
|
|
||||||
{{/link-to}}
|
|
||||||
{{else}}
|
|
||||||
<div
|
|
||||||
class={{concat "disabled error-loading-driver mb-20 mt-10 col span-3 col-inline nav-box-item driver " choice.name}}>
|
|
||||||
{{#tooltip-element type="tooltip-basic" model=choice.scriptError tooltipTemplate='tooltip-static' aria-describedby="tooltip-base" tooltipFor="tooltipDriverError"}}
|
|
||||||
<span class="icon icon-alert"></span>
|
|
||||||
{{/tooltip-element}}
|
|
||||||
<div class="machine-driver {{choice.name}}"></div>
|
|
||||||
<p class="driver-name">{{driver-name choice.name}}</p>
|
|
||||||
{{#if choice.genericIcon}}
|
|
||||||
<p class="text-link text-bold">{{driver-name choice.name}}</p>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
|
||||||
{{/unless}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col span-2 col-inline mt-0 mb-0">
|
|
||||||
<div class="row">
|
|
||||||
<div>
|
|
||||||
<label class="acc-label">{{t 'clusterNew.driverLabels.import'}}</label>
|
|
||||||
</div>
|
|
||||||
{{#each (get providerGroups "importGroup") as |choice|}}
|
|
||||||
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-12 col-inline nav-box-item driver " choice.name)}}
|
|
||||||
<div class="machine-driver {{choice.name}}"></div>
|
|
||||||
<p class="driver-name">{{driver-name choice.name}}</p>
|
|
||||||
{{#if choice.genericIcon}}
|
|
||||||
<p class="text-link text-bold">{{driver-name choice.name}}</p>
|
|
||||||
{{/if}}
|
|
||||||
{{/link-to}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="col span-2 col-inline mb-0">
|
||||||
<div>
|
<div>
|
||||||
<label class="acc-label">{{t 'clusterNew.driverLabels.custom'}}</label>
|
<label class="acc-label">{{t 'clusterNew.driverLabels.import'}}</label>
|
||||||
</div>
|
|
||||||
{{#each (get providerGroups "customGroup") as |choice|}}
|
|
||||||
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-12 col-inline nav-box-item driver " choice.name)}}
|
|
||||||
<div class="machine-driver {{choice.name}}"></div>
|
|
||||||
<p class="driver-name">{{driver-name choice.name}}</p>
|
|
||||||
{{#if choice.genericIcon}}
|
|
||||||
<p class="text-link text-bold">{{driver-name choice.name}}</p>
|
|
||||||
{{/if}}
|
|
||||||
{{/link-to}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
</div>
|
||||||
|
{{#each (get providerGroups "importGroup") as |choice|}}
|
||||||
|
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-12 col-inline nav-box-item driver " choice.name)}}
|
||||||
|
<div class="machine-driver {{choice.name}}"></div>
|
||||||
|
<p class="driver-name">{{driver-name choice.name}}</p>
|
||||||
|
{{#if choice.genericIcon}}
|
||||||
|
<p class="text-link text-bold">{{driver-name choice.name}}</p>
|
||||||
|
{{/if}}
|
||||||
|
{{/link-to}}
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row nav nav-boxes checked-active inline-form">
|
||||||
|
<div class="col span-8 col-inline mt-0">
|
||||||
|
<div>
|
||||||
|
<label class="acc-label">{{t 'clusterNew.driverLabels.infra'}}</label>
|
||||||
|
</div>
|
||||||
|
{{#each (get providerGroups "rkeGroup") as |choice|}}
|
||||||
|
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-3 col-inline nav-box-item driver " choice.name)}}
|
||||||
|
<div class="machine-driver {{if choice.genericIcon 'generic'}} {{choice.name}}"></div>
|
||||||
|
<p class="driver-name">{{driver-name choice.name}}</p>
|
||||||
|
{{/link-to}}
|
||||||
|
{{else}}
|
||||||
|
<div class="machine-driver-empty">{{t 'clusterNew.driverLabels.noInfra'}}</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col span-2 col-inline mt-0">
|
||||||
|
<div>
|
||||||
|
<label class="acc-label">{{t 'clusterNew.driverLabels.custom'}}</label>
|
||||||
|
</div>
|
||||||
|
{{#each (get providerGroups "customGroup") as |choice|}}
|
||||||
|
{{#link-to (query-params provider=choice.name) class=(concat "mb-20 mt-10 col span-12 col-inline nav-box-item driver " choice.name)}}
|
||||||
|
<div class="machine-driver {{choice.name}}"></div>
|
||||||
|
<p class="driver-name">{{driver-name choice.name}}</p>
|
||||||
|
{{#if choice.genericIcon}}
|
||||||
|
<p class="text-link text-bold">{{driver-name choice.name}}</p>
|
||||||
|
{{/if}}
|
||||||
|
{{/link-to}}
|
||||||
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
|
|
||||||
|
|
@ -23,21 +23,39 @@ module.exports = function(app, options) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
proxyLog('WS', req);
|
|
||||||
|
|
||||||
if ( socket.ssl ) {
|
if ( socket.ssl ) {
|
||||||
req.headers['x-forwarded-proto'] = 'https';
|
req.headers['x-forwarded-proto'] = 'https';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let targetHost = config.apiServer.replace(/^https?:\/\//, '');
|
let targetHost = config.apiServer.replace(/^https?:\/\//, '');
|
||||||
|
let host = req.headers['host'];
|
||||||
|
let port;
|
||||||
|
|
||||||
req.headers['x-forwarded-host'] = req.headers['host'];
|
if ( socket.ssl ) {
|
||||||
|
req.headers['x-forwarded-proto'] = 'https';
|
||||||
|
port = 443;
|
||||||
|
} else {
|
||||||
|
req.headers['x-forwarded-proto'] = 'http';
|
||||||
|
port = 80;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( host ) {
|
||||||
|
idx = host.lastIndexOf(':');
|
||||||
|
if ( ( host.startsWith('[') && host.includes(']:') || !host.startsWith('[') ) && idx > 0 ){
|
||||||
|
port = host.substr(idx+1);
|
||||||
|
host = host.substr(0, host.lastIndexOf(':'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
req.headers['x-forwarded-host'] = host;
|
||||||
|
req.headers['x-forwarded-port'] = port;
|
||||||
req.headers['host'] = targetHost;
|
req.headers['host'] = targetHost;
|
||||||
req.headers['origin'] = config.apiServer;
|
req.headers['origin'] = config.apiServer;
|
||||||
req.socket.servername = targetHost;
|
req.socket.servername = targetHost;
|
||||||
|
|
||||||
|
proxyLog('WS', req);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
proxy.ws(req, socket, head);
|
proxy.ws(req, socket, head);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
@ -113,5 +131,5 @@ function onProxyError(err, req, res) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function proxyLog(label, req) {
|
function proxyLog(label, req) {
|
||||||
console.log(`[${ label }][${ req._source }]`, req.method, req.url);
|
console.log(`[${ label }]`, req.method, req.url);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2118,9 +2118,10 @@ clusterNew:
|
||||||
driverLabels:
|
driverLabels:
|
||||||
cloud: In a hosted Kubernetes provider
|
cloud: In a hosted Kubernetes provider
|
||||||
custom: From my own existing nodes
|
custom: From my own existing nodes
|
||||||
external: User Provided
|
|
||||||
import: Import existing cluster
|
import: Import existing cluster
|
||||||
infra: From nodes in an infrastructure provider
|
infra: From nodes in an infrastructure provider
|
||||||
|
noCloud: There are no cluster drivers enabled.
|
||||||
|
noInfra: There are no node drivers enabled.
|
||||||
externalError: 'Component could not be loaded. Check URL.'
|
externalError: 'Component could not be loaded. Check URL.'
|
||||||
members:
|
members:
|
||||||
label: Member Roles
|
label: Member Roles
|
||||||
|
|
@ -5866,7 +5867,6 @@ customDrivers:
|
||||||
clusters: Cluster Drivers
|
clusters: Cluster Drivers
|
||||||
|
|
||||||
clusterDrivers:
|
clusterDrivers:
|
||||||
title: Cluster Drivers
|
|
||||||
add: Add Cluster Driver
|
add: Add Cluster Driver
|
||||||
builtIn: Built-In
|
builtIn: Built-In
|
||||||
table:
|
table:
|
||||||
|
|
@ -6983,7 +6983,7 @@ nav:
|
||||||
accounts: Users
|
accounts: Users
|
||||||
clusters: Clusters
|
clusters: Clusters
|
||||||
machines: Nodes
|
machines: Nodes
|
||||||
nodeDrivers: Custom Drivers
|
drivers: Drivers
|
||||||
catalogs: Catalogs
|
catalogs: Catalogs
|
||||||
globalDns: Global DNS
|
globalDns: Global DNS
|
||||||
globalDnsEntries: Entries
|
globalDnsEntries: Entries
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue