mirror of https://github.com/rancher/ui.git
New cluster work
This commit is contained in:
parent
69ca5838ca
commit
15dfc021f3
|
|
@ -0,0 +1,46 @@
|
|||
import EmberObject from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import C from 'ui/utils/constants';
|
||||
|
||||
export default Route.extend({
|
||||
clusterStore: service('cluster-store'),
|
||||
catalog: service(),
|
||||
settings: service(),
|
||||
|
||||
model() {
|
||||
// TODO - !!FORDEV!! removed for dev sake
|
||||
// let store = this.get('clusterStore');
|
||||
// let def = JSON.parse(this.get(`settings.${C.SETTING.CLUSTER_TEMPLATE}`)) || {};
|
||||
|
||||
// def.type = 'cluster';
|
||||
// def.systemStacks = (def.systemStacks||[]).map((stack) => {
|
||||
// stack.type = 'stackConfiguration';
|
||||
// return stack;
|
||||
// })
|
||||
|
||||
// let cluster = store.createRecord(def);
|
||||
|
||||
// return this.get('catalog').fetchTemplates({plusInfra: true}).then((templates) => {
|
||||
// return EmberObject.create({
|
||||
// cluster: cluster,
|
||||
// allTemplates: templates
|
||||
// });
|
||||
// });
|
||||
return EmberObject.create({cluster: {}, allTemplates: []});
|
||||
},
|
||||
// teardownForComponentState: on('deactivate', function(){
|
||||
// this.controller.setProperties({
|
||||
// catalogItem: null,
|
||||
// editCatalog: false,
|
||||
// selectedTemplateUrl: null,
|
||||
// catalogInfo: null,
|
||||
// _catalogInfoCache: null,
|
||||
// _prefetchInstance: null,
|
||||
// catalogId: 'all',
|
||||
// category: null,
|
||||
// viewCatalog: false,
|
||||
// newSystemStack: null,
|
||||
// });
|
||||
// })
|
||||
});
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<section class="header">
|
||||
<h1>Create a Cluster</h1>
|
||||
</section>
|
||||
<section>
|
||||
<div class="row">
|
||||
<div class="col span-4 text-center option option-primary">
|
||||
<h2>Create a RKE Cluster</h2>
|
||||
<div class="box-sm">
|
||||
<p>Rancher automatically deploys and manages Kubernetes.</p>
|
||||
<div class="links" style="top: auto; bottom: 30px;">
|
||||
{{#link-to "authenticated.clusters.new.rke" class="btn bg-primary"}}{{t 'clusterWelcome.select'}}{{/link-to}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="bubble bg-body round p-10"><img src="{{app.baseAssets}}assets/images/environment-standard.svg" class="mt-5" /></div>
|
||||
</div>
|
||||
<div class="col span-4 text-center option option-disabled">
|
||||
<h2>Create a Cloud Cluster</h2>
|
||||
<div class="box-sm">
|
||||
<p>Create and use a new cluster with in a cloud provider.</p>
|
||||
<div class="links" style="top: auto; bottom: 30px;">
|
||||
{{#link-to "authenticated.clusters.cluster.host-templates" scope.currentCluster.id class="btn bg-primary"}}{{t 'clusterWelcome.select'}}{{/link-to}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="bubble bg-body round p-10"><img src="{{app.baseAssets}}assets/images/cluster-key.svg" class="mt-5" /></div>
|
||||
</div>
|
||||
<div class="col span-4 text-center option option-disabled">
|
||||
<h2>Create a RKE Cluster</h2>
|
||||
<div class="box-sm">
|
||||
<p>Deploy containers into an existing Kubernetes installation using the hosts and networking it provides.</p>
|
||||
<div class="links" style="top: auto; bottom: 30px;">
|
||||
{{#link-to "authenticated.clusters.cluster.host-templates" scope.currentCluster.id class="btn bg-primary"}}{{t 'clusterWelcome.select'}}{{/link-to}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="bubble bg-body round p-10"><img src="{{app.baseAssets}}assets/images/environment-import.svg" class="mt-5" /></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
import Controller from '@ember/controller';
|
||||
import { copy } from '@ember/object/internals';
|
||||
import { get, set } from '@ember/object';
|
||||
|
||||
export default Controller.extend({
|
||||
step: null,
|
||||
loading: null,
|
||||
newHost: null,
|
||||
newOrReuse: null,
|
||||
clusterList: null,
|
||||
managementList: null,
|
||||
nodesList: null,
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
let newHost = {
|
||||
clusterName: '',
|
||||
hostName: '',
|
||||
ssh: '',
|
||||
}
|
||||
this.setProperties({
|
||||
step: 1,
|
||||
newHost: newHost,
|
||||
loading: false,
|
||||
newOrReuse: 'new',
|
||||
clusterList: [],
|
||||
managementList: [],
|
||||
nodesList: [],
|
||||
});
|
||||
},
|
||||
actions: {
|
||||
cancel(prev) {
|
||||
this.send('goToPrevious',prev);
|
||||
},
|
||||
go() {
|
||||
this.incrementProperty('step');
|
||||
},
|
||||
back() {
|
||||
this.decrementProperty('step');
|
||||
},
|
||||
addHost() {
|
||||
get(this, 'clusterList').pushObject(get(this, 'newHost'));
|
||||
set(this, 'newHost', {
|
||||
clusterName: '',
|
||||
hostName: '',
|
||||
ssh: '',
|
||||
});
|
||||
},
|
||||
removeHost(host, list) {
|
||||
get(this, list).removeObject(host);
|
||||
},
|
||||
useFor(host, list) {
|
||||
get(this, list).pushObject(host);
|
||||
},
|
||||
addManagementHost() {},
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
import Ember from 'ember';
|
||||
|
||||
export default Ember.Route.extend({
|
||||
});
|
||||
|
|
@ -0,0 +1,152 @@
|
|||
<section class="header">
|
||||
{{#if (eq step 1)}}
|
||||
<h1>Add RKE: Step 1 set up your ETCD cluster.</h1>
|
||||
{{else if (eq step 2) }}
|
||||
<h1>Add RKE: Step 2 Add Managment.</h1>
|
||||
{{else if (eq step 3) }}
|
||||
<h1>Add RKE: Step 3 Add Nodes.</h1>
|
||||
{{else}}
|
||||
step 4
|
||||
{{/if}}
|
||||
</section>
|
||||
<section>
|
||||
<div class="row">
|
||||
{{#if (eq step 1)}}
|
||||
<form class="form text-left">
|
||||
<div class="pt-15 pb-30">
|
||||
<span class="radio block mb-10">
|
||||
<label>{{radio-button selection=newOrReuse value="reuse"}} Specify your existing ETCD cluster</label>
|
||||
</span>
|
||||
<span class="radio block">
|
||||
<label>{{radio-button selection=newOrReuse value="new"}} Add new cluster</label>
|
||||
</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col span-6">
|
||||
<label>User</label>
|
||||
{{input type="text" value=newHost.clusterName }}
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<label>Host</label>
|
||||
{{input type="text" value=newHost.hostName }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-10 pb-15">
|
||||
<label>SSH Key</label>
|
||||
{{textarea value=newHost.sshkey classNames="form-control no-resize" rows="6"}}
|
||||
</div>
|
||||
<div class="row">
|
||||
<button {{action 'addHost'}} class="btn bg-primary mt-10 pull-right" name="submit">Add Cluster</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
{{#if clusterList.length }}
|
||||
<span>Minimum 1 host. 3 hosts recommended.</span>
|
||||
{{#each clusterList as | cluster |}}
|
||||
<div class="host col span-12 border">
|
||||
<div class="col span-6">
|
||||
<p>{{cluster.hostName}}</p>
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<button class="btn bg-transparent pull-right" {{action 'removeHost' cluster 'clusterList'}}> <i class="icon icon-close"></i>Remove</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="text-center">
|
||||
{{#if loading}}
|
||||
<button class="btn bg-primary mt-10 btn-disabled" disabled><i class="icon icon-spinner icon-spin"></i> {{t 'generic.loading'}}</button>
|
||||
{{else}}
|
||||
{{#if clusterList.length }}
|
||||
<button {{action 'go'}} class="btn bg-primary mt-10" name="submit">{{t 'generic.save'}}</button>
|
||||
{{else}}
|
||||
<button class="btn bg-primary mt-10 disabled" disabled>{{t 'generic.save'}}</button>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</form>
|
||||
{{else if (eq step 2) }}
|
||||
<form class="form text-left">
|
||||
<div class="row">
|
||||
{{#if managementList.length }}
|
||||
{{#each managementList as | cluster |}}
|
||||
<div class="host col span-12 border">
|
||||
<div class="col span-6">
|
||||
<p>{{cluster.hostName}}</p>
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<button class="btn bg-transparent pull-right" {{action 'removeHost' cluster 'managementList'}}> <i class="icon icon-close"></i>Remove</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="row">
|
||||
{{#if clusterList.length }}
|
||||
<span>Reuse other nodes</span>
|
||||
{{#each clusterList as | cluster |}}
|
||||
<div class="host col span-12 border">
|
||||
<div class="col span-6">
|
||||
<p>{{cluster.hostName}}</p>
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<button class="btn bg-transparent pull-right" {{action 'useFor' cluster 'managementList'}}>Use for Management</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="text-center">
|
||||
{{#if loading}}
|
||||
<button class="btn bg-primary mt-10 btn-disabled" disabled><i class="icon icon-spinner icon-spin"></i> {{t 'generic.loading'}}</button>
|
||||
{{else}}
|
||||
<button {{action 'addManagementHost'}} class="btn bg-primary mt-10" name="submit">Add Another</button>
|
||||
<button {{action 'go'}} class="btn bg-primary mt-10" name="submit">Next</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</form>
|
||||
{{else if (eq step 3) }}
|
||||
<form class="form text-left">
|
||||
<div class="row">
|
||||
{{#if nodesList.length }}
|
||||
{{#each nodesList as | cluster |}}
|
||||
<div class="host col span-12 border">
|
||||
<div class="col span-6">
|
||||
<p>{{cluster.hostName}}</p>
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<button class="btn bg-transparent pull-right" {{action 'removeHost' cluster 'nodesList'}}> <i class="icon icon-close"></i>Remove</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="row">
|
||||
{{#if clusterList.length }}
|
||||
<span>Reuse other nodes</span>
|
||||
{{#each clusterList as | cluster |}}
|
||||
<div class="host col span-12 border">
|
||||
<div class="col span-6">
|
||||
<p>{{cluster.hostName}}</p>
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<button class="btn bg-transparent pull-right" {{action 'useFor' cluster 'nodesList'}}> <i class="icon icon-close"></i>Use as Node</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="text-center">
|
||||
{{#if loading}}
|
||||
<button class="btn bg-primary mt-10 btn-disabled" disabled><i class="icon icon-spinner icon-spin"></i> {{t 'generic.loading'}}</button>
|
||||
{{else}}
|
||||
<button {{action 'addManagementHost'}} class="btn bg-primary mt-10" name="submit">Add Another</button>
|
||||
<button {{action 'go'}} class="btn bg-primary mt-10" name="submit">Next</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</form>
|
||||
{{else}}
|
||||
step 4
|
||||
{{/if}}
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
import { on } from '@ember/object/evented';
|
||||
import EmberObject from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import C from 'ui/utils/constants';
|
||||
|
||||
export default Route.extend({
|
||||
clusterStore: service('cluster-store'),
|
||||
catalog: service(),
|
||||
settings: service(),
|
||||
|
||||
model() {
|
||||
let store = this.get('clusterStore');
|
||||
let def = JSON.parse(this.get(`settings.${C.SETTING.CLUSTER_TEMPLATE}`)) || {};
|
||||
|
||||
def.type = 'cluster';
|
||||
def.systemStacks = (def.systemStacks||[]).map((stack) => {
|
||||
stack.type = 'stackConfiguration';
|
||||
return stack;
|
||||
})
|
||||
|
||||
let cluster = store.createRecord(def);
|
||||
|
||||
return this.get('catalog').fetchTemplates({plusInfra: true}).then((templates) => {
|
||||
return EmberObject.create({
|
||||
cluster: cluster,
|
||||
allTemplates: templates
|
||||
});
|
||||
});
|
||||
},
|
||||
teardownForComponentState: on('deactivate', function(){
|
||||
this.controller.setProperties({
|
||||
catalogItem: null,
|
||||
editCatalog: false,
|
||||
selectedTemplateUrl: null,
|
||||
catalogInfo: null,
|
||||
_catalogInfoCache: null,
|
||||
_prefetchInstance: null,
|
||||
catalogId: 'all',
|
||||
category: null,
|
||||
viewCatalog: false,
|
||||
newSystemStack: null,
|
||||
});
|
||||
})
|
||||
});
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{{new-edit-cluster
|
||||
cancel=(action 'cancel')
|
||||
model=model
|
||||
editing=false
|
||||
}}
|
||||
|
|
@ -99,7 +99,8 @@ export default Route.extend(Subscribe, {
|
|||
if ( this.get('access.admin') && (!opt || opt === 'prompt') )
|
||||
{
|
||||
scheduleOnce('afterRender', this, function() {
|
||||
this.get('modalService').toggleModal('modal-telemetry');
|
||||
// TODO - !!FORDEV!! removed for dev sake
|
||||
// this.get('modalService').toggleModal('modal-telemetry');
|
||||
});
|
||||
}
|
||||
else if ( form && !this.get(`prefs.${C.PREFS.FEEDBACK}`) )
|
||||
|
|
|
|||
|
|
@ -40,7 +40,9 @@ Router.map(function() {
|
|||
// Clusters
|
||||
this.route('clusters', {path: '/clusters'}, function() {
|
||||
this.route('index', {path: '/'});
|
||||
this.route('new', {path: '/add'});
|
||||
this.route('new', {path: '/add'}, function() {
|
||||
this.route('rke');
|
||||
});
|
||||
this.route('new-project', {path: '/add-env'});
|
||||
this.route('project', {path: '/env/:project_id'});
|
||||
|
||||
|
|
|
|||
|
|
@ -245,11 +245,12 @@
|
|||
|
||||
|
||||
.border {
|
||||
|
||||
border: 1px solid $border;
|
||||
background: lighten($border, 2%);
|
||||
}
|
||||
|
||||
.border-dash {
|
||||
border: dashed $border;
|
||||
border: 1px dashed $border;
|
||||
background: lighten($border, 2%);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,12 +7,18 @@
|
|||
background: $accent-border;
|
||||
}
|
||||
|
||||
.box-sm {
|
||||
padding: 75px 30px 30px 30px;
|
||||
min-height: 370px;
|
||||
position: relative;
|
||||
}
|
||||
.box {
|
||||
padding: 75px 40px 40px 40px;
|
||||
min-height: 410px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
.links {
|
||||
position: absolute;
|
||||
top: 300px;
|
||||
|
|
@ -48,7 +54,8 @@
|
|||
color: white;
|
||||
}
|
||||
|
||||
.box {
|
||||
.box,
|
||||
.box-sm {
|
||||
background-color: lighten($link-color, 40%);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="2887.909 3543.104 127.082 130.651">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1, .cls-2, .cls-4, .cls-5 {
|
||||
fill: none;
|
||||
stroke: #3498db;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2, .cls-4 {
|
||||
stroke-linecap: round;
|
||||
}
|
||||
|
||||
.cls-1 {
|
||||
stroke-width: 1.08px;
|
||||
}
|
||||
|
||||
.cls-3, .cls-6 {
|
||||
fill: #3498db;
|
||||
}
|
||||
|
||||
.cls-4, .cls-5 {
|
||||
stroke-width: 0.72px;
|
||||
}
|
||||
|
||||
.cls-6, .cls-7 {
|
||||
opacity: 0.1;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g id="environment-gke-01" transform="translate(2877.509 3527.844)">
|
||||
<path id="Path_6151" data-name="Path 6151" class="cls-1" d="M107.646,70.1l.121,37.192L75.421,125.948,75.3,88.757Z" transform="translate(13.724 11.482)"/>
|
||||
<path id="Path_6152" data-name="Path 6152" class="cls-1" d="M87.242,129.586,19.521,90.092,19.4,52.9,87.121,92.394Z" transform="translate(1.903 7.845)"/>
|
||||
<line id="Line_589" data-name="Line 589" class="cls-2" y2="36.344" transform="translate(105.257 91.759)"/>
|
||||
<path id="Path_6153" data-name="Path 6153" class="cls-3" d="M102.408,76.748l.121,26.652-23.26,13.326-.121-26.652,23.26-13.326m0-.848a.728.728,0,0,0-.485.121L78.785,89.347a1.02,1.02,0,0,0-.485.848l.121,26.652a.956.956,0,0,0,.969.969.728.728,0,0,0,.485-.121l23.26-13.326a.943.943,0,0,0,.363-.848V76.869a1.061,1.061,0,0,0-1.09-.969Z" transform="translate(14.358 12.709)"/>
|
||||
<path id="Path_6154" data-name="Path 6154" class="cls-3" d="M23.969,60.648l57.06,33.315.121,24.956L24.09,85.6l-.121-24.956m0-.848a.956.956,0,0,0-.969.969l.121,24.956a.915.915,0,0,0,.485.848l57.06,33.315a.84.84,0,0,0,1.211-.363c.121-.121.121-.242.121-.485V93.963a.915.915,0,0,0-.485-.848L24.454,59.921a.728.728,0,0,0-.485-.121Z" transform="translate(2.664 9.304)"/>
|
||||
<path id="Path_6155" data-name="Path 6155" class="cls-4" d="M100.885,77.2l.121,24.956L79.2,114.755" transform="translate(14.549 12.984)"/>
|
||||
<path id="Path_6156" data-name="Path 6156" class="cls-4" d="M67.265,85.875l-.121,23.139-2.544.606.121-25.32Z" transform="translate(11.461 14.485)"/>
|
||||
<path id="Path_6157" data-name="Path 6157" class="cls-4" d="M65.086,109.958,62.3,108.383V82.7" transform="translate(10.975 14.147)"/>
|
||||
<line id="Line_590" data-name="Line 590" class="cls-4" x1="5.573" y1="3.15" transform="translate(78.726 123.135)"/>
|
||||
<path id="Path_6158" data-name="Path 6158" class="cls-4" d="M58.644,80.975v23.139l-2.544.606V79.4Z" transform="translate(9.664 13.449)"/>
|
||||
<path id="Path_6159" data-name="Path 6159" class="cls-4" d="M56.586,105.058,53.8,103.483V77.8" transform="translate(9.177 13.111)"/>
|
||||
<line id="Line_591" data-name="Line 591" class="cls-4" x1="4.846" y1="2.786" transform="translate(68.429 117.442)"/>
|
||||
<line id="Line_592" data-name="Line 592" class="cls-4" x1="5.452" y1="3.15" transform="translate(57.526 111.142)"/>
|
||||
<path id="Path_6160" data-name="Path 6160" class="cls-4" d="M50.044,76.1l-.121,23.018L47.5,99.72V74.4Z" transform="translate(7.845 12.392)"/>
|
||||
<path id="Path_6161" data-name="Path 6161" class="cls-4" d="M48.008,100.058,45.1,98.483,45.221,72.8" transform="translate(7.338 12.053)"/>
|
||||
<path id="Path_6162" data-name="Path 6162" class="cls-4" d="M41.565,71.2l-.121,23.018L38.9,94.82l.121-25.32Z" transform="translate(6.027 11.355)"/>
|
||||
<path id="Path_6163" data-name="Path 6163" class="cls-4" d="M39.386,95.158,36.6,93.583,36.721,67.9" transform="translate(5.54 11.017)"/>
|
||||
<line id="Line_593" data-name="Line 593" class="cls-4" x1="4.846" y1="2.786" transform="translate(47.713 105.448)"/>
|
||||
<path id="Path_6164" data-name="Path 6164" class="cls-5" d="M33.044,66.2l-.121,23.018L30.5,89.82V64.5Z" transform="translate(4.25 10.298)"/>
|
||||
<path id="Path_6165" data-name="Path 6165" class="cls-5" d="M30.686,89.958,27.9,88.383,28.021,62.7" transform="translate(3.701 9.918)"/>
|
||||
<line id="Line_594" data-name="Line 594" class="cls-4" x1="4.846" y1="2.786" transform="translate(37.173 99.149)"/>
|
||||
<line id="Line_595" data-name="Line 595" class="cls-5" x1="5.33" y1="3.029" transform="translate(26.27 92.728)"/>
|
||||
<path id="Path_6166" data-name="Path 6166" class="cls-6" d="M137.482,104.646,89.145,132.631,10.4,85.142,20.94,78.6l-.121,6.421L88.66,124.393l31.74-19.02V97.014Z" transform="translate(0 13.28)"/>
|
||||
<g id="Group_5947" data-name="Group 5947" class="cls-7" transform="translate(77.515 52.992)">
|
||||
<path id="Path_6167" data-name="Path 6167" class="cls-3" d="M74.4,46.5,74.28,65.157,65.8,70.123V49.044" transform="translate(-65.8 -46.5)"/>
|
||||
</g>
|
||||
<path id="Path_6168" data-name="Path 6168" class="cls-6" d="M86.161,40.393V39.06a1.537,1.537,0,0,0-.121-.727c0-.242-.121-.485-.121-.727h0A5.247,5.247,0,0,0,85.8,37c0-.242-.121-.485-.121-.727V35.91a.445.445,0,0,0-.121-.363,1.722,1.722,0,0,0-.242-.727c0-.121-.121-.363-.121-.485v-.242c-.121-.242-.121-.485-.242-.727s-.121-.485-.242-.727V32.4c0-.121-.121-.242-.121-.485-.121-.242-.121-.485-.242-.727-.121-.121-.121-.363-.242-.485v-.242a2.047,2.047,0,0,1-.242-.606l-.363-.727V29a.119.119,0,0,0-.121-.121c-.121-.242-.242-.363-.242-.606l-.363-.727c-.121-.121-.121-.242-.242-.363a.119.119,0,0,0-.121-.121c-.121-.242-.242-.363-.363-.606-.242-.242-.363-.606-.606-.848a.119.119,0,0,0-.121-.121c-.242-.363-.606-.848-.848-1.211h0a5.13,5.13,0,0,1-.606-.848c-.121-.242-.363-.363-.485-.606h0c-.121-.242-.363-.363-.485-.606s-.363-.363-.485-.606a.119.119,0,0,0-.121-.121l-.121-.121-.363-.363L77.2,20.4a.423.423,0,0,0-.242-.121l-.121-.121c-.121-.121-.242-.121-.242-.242a2.127,2.127,0,0,0-.606-.485l-.242-.242-.121-.121c-.121,0-.121-.121-.242-.121-.242-.121-.363-.363-.606-.485a1.672,1.672,0,0,0-.485-.363h-.242c-.242-.121-.363-.242-.606-.363s-.363-.242-.606-.363a.119.119,0,0,1-.121-.121c-.121-.121-.242-.121-.485-.242s-.363-.242-.606-.242c-.121,0-.242-.121-.363-.121h-.242c-.242-.121-.363-.121-.606-.242s-.363-.121-.606-.242h-.242c-.121,0-.242-.121-.363-.121-.242,0-.363-.121-.606-.121h-.485c-.242,0-.363-.121-.606-.121H65.567c-.242,0-.485.121-.848.121H64.6c-.242.121-.485.121-.727.242h0a4.3,4.3,0,0,0-1.09.485L54.3,21.615a4.3,4.3,0,0,1,1.09-.485c.242-.121.606-.121.848-.242h.121a3.011,3.011,0,0,1,.969-.121h1.454c.363,0,.727.121,1.09.121h.121c.363.121.848.242,1.211.363h.121c.485.121.848.363,1.333.485h.121c.485.242.848.485,1.333.727a12.769,12.769,0,0,1,1.333.848h.121a8.488,8.488,0,0,1,1.211.969l.121.121a10.593,10.593,0,0,0,1.211.969l.121.121,1.09,1.09.121.121a12.063,12.063,0,0,0,1.211,1.333h0l1.09,1.454h0a12.69,12.69,0,0,0,.969,1.333c.242.242.363.606.606.848.121.242.363.485.485.727.121.121.121.242.242.363a13.214,13.214,0,0,1,.727,1.333.119.119,0,0,0,.121.121c.242.485.485,1.09.727,1.575v.121a8.412,8.412,0,0,1,.606,1.575v.121c.242.485.363,1.09.606,1.7v.121c.121.485.242,1.09.363,1.575v.121c.121.485.242,1.09.363,1.575h0c.121.485.121,1.09.242,1.575v.121c0,.485.121,1.09.121,1.575a5.9,5.9,0,0,1-.121,1.454v.121a5.152,5.152,0,0,1-.242,1.333v.121c-.121.363-.121.727-.242,1.09,0,.121,0,.121-.121.242-.121.363-.242.606-.363.969v.121a2.638,2.638,0,0,1-.606.969l-.121.121c-.121.242-.363.485-.485.727l-.242.242-.485.485-.242.242a5.128,5.128,0,0,1-.848.606l8.48-4.967c.242-.121.485-.363.848-.606l.242-.242.485-.485.242-.242a2.535,2.535,0,0,0,.485-.727l.121-.121h0a2.435,2.435,0,0,0,.485-.969h0v-.121c.121-.242.242-.363.242-.606,0-.121.121-.242.121-.363s0-.121.121-.242c0-.121,0-.121.121-.242a1.536,1.536,0,0,0,.121-.727v-.606a5.247,5.247,0,0,1,.121-.606V41.12h0A1.537,1.537,0,0,0,86.161,40.393Z" transform="translate(9.283)"/>
|
||||
<g id="Group_5948" data-name="Group 5948" transform="translate(59.343 20.351)">
|
||||
<path id="Path_6169" data-name="Path 6169" class="cls-1" d="M64.611,21.426C72.243,25.788,78.3,36.448,78.3,45.171c0,6.905-3.877,10.54-9.328,9.571V75.821l-12.72-7.269,3.513-2.059-3.513-6.057,3.513-2.059-3.513-6.057,3.756-2.181v-.485C54.677,44.444,50.8,36.327,50.8,29.422,50.8,20.578,56.978,17.065,64.611,21.426Zm0,12.841C66.428,35.358,68,34.51,68,32.329a7.211,7.211,0,0,0-3.392-5.815c-1.817-1.09-3.392-.242-3.392,1.938a7.389,7.389,0,0,0,3.392,5.815" transform="translate(-50.8 -19.557)"/>
|
||||
</g>
|
||||
<path id="Path_6170" data-name="Path 6170" class="cls-1" d="M66.647,46.344,51.14,37.5,19.4,56.035,87.121,95.65l32.346-18.657L84.213,56.4" transform="translate(1.903 4.589)"/>
|
||||
<path id="Path_6171" data-name="Path 6171" class="cls-3" d="M72.8,63.782l8.844-5.573L72.8,53Z" transform="translate(13.195 7.866)"/>
|
||||
<g id="Group_5949" data-name="Group 5949" transform="translate(77.515 52.992)">
|
||||
<path id="Path_6172" data-name="Path 6172" class="cls-1" d="M74.4,46.5,74.28,65.157,65.8,70.123V49.044" transform="translate(-65.8 -46.5)"/>
|
||||
</g>
|
||||
<path id="Path_6173" data-name="Path 6173" class="cls-1" d="M86.161,40.393V39.06a1.537,1.537,0,0,0-.121-.727c0-.242-.121-.485-.121-.727h0A5.247,5.247,0,0,0,85.8,37c0-.242-.121-.485-.121-.727V35.91a.445.445,0,0,0-.121-.363,1.722,1.722,0,0,0-.242-.727c0-.121-.121-.363-.121-.485v-.242c-.121-.242-.121-.485-.242-.727s-.121-.485-.242-.727V32.4c0-.121-.121-.242-.121-.485-.121-.242-.121-.485-.242-.727-.121-.121-.121-.363-.242-.485v-.242a2.047,2.047,0,0,1-.242-.606l-.363-.727V29a.119.119,0,0,0-.121-.121c-.121-.242-.242-.363-.242-.606l-.363-.727c-.121-.121-.121-.242-.242-.363a.119.119,0,0,0-.121-.121c-.121-.242-.242-.363-.363-.606-.242-.242-.363-.606-.606-.848a.119.119,0,0,0-.121-.121c-.242-.363-.606-.848-.848-1.211h0a5.13,5.13,0,0,1-.606-.848c-.121-.242-.363-.363-.485-.606h0c-.121-.242-.363-.363-.485-.606s-.363-.363-.485-.606a.119.119,0,0,0-.121-.121l-.121-.121-.363-.363L77.2,20.4a.423.423,0,0,0-.242-.121l-.121-.121c-.121-.121-.242-.121-.242-.242a2.127,2.127,0,0,0-.606-.485l-.242-.242-.121-.121c-.121,0-.121-.121-.242-.121-.242-.121-.363-.363-.606-.485a1.672,1.672,0,0,0-.485-.363h-.242c-.242-.121-.363-.242-.606-.363s-.363-.242-.606-.363a.119.119,0,0,1-.121-.121c-.121-.121-.242-.121-.485-.242s-.363-.242-.606-.242c-.121,0-.242-.121-.363-.121h-.242c-.242-.121-.363-.121-.606-.242s-.363-.121-.606-.242h-.242c-.121,0-.242-.121-.363-.121-.242,0-.363-.121-.606-.121h-.485c-.242,0-.363-.121-.606-.121H65.567c-.242,0-.485.121-.848.121H64.6c-.242.121-.485.121-.727.242h0a4.3,4.3,0,0,0-1.09.485L54.3,21.615a4.3,4.3,0,0,1,1.09-.485c.242-.121.606-.121.848-.242h.121a3.011,3.011,0,0,1,.969-.121h1.454c.363,0,.727.121,1.09.121h.121c.363.121.848.242,1.211.363h.121c.485.121.848.363,1.333.485h.121c.485.242.848.485,1.333.727a12.769,12.769,0,0,1,1.333.848h.121a8.488,8.488,0,0,1,1.211.969l.121.121a10.593,10.593,0,0,0,1.211.969l.121.121,1.09,1.09.121.121a12.063,12.063,0,0,0,1.211,1.333h0l1.09,1.454h0a12.69,12.69,0,0,0,.969,1.333c.242.242.363.606.606.848.121.242.363.485.485.727.121.121.121.242.242.363a13.214,13.214,0,0,1,.727,1.333.119.119,0,0,0,.121.121c.242.485.485,1.09.727,1.575v.121a8.412,8.412,0,0,1,.606,1.575v.121c.242.485.363,1.09.606,1.7v.121c.121.485.242,1.09.363,1.575v.121c.121.485.242,1.09.363,1.575h0c.121.485.121,1.09.242,1.575v.121c0,.485.121,1.09.121,1.575a5.9,5.9,0,0,1-.121,1.454v.121a5.152,5.152,0,0,1-.242,1.333v.121c-.121.363-.121.727-.242,1.09,0,.121,0,.121-.121.242-.121.363-.242.606-.363.969v.121a2.638,2.638,0,0,1-.606.969l-.121.121c-.121.242-.363.485-.485.727l-.242.242-.485.485-.242.242a5.128,5.128,0,0,1-.848.606l8.48-4.967c.242-.121.485-.363.848-.606l.242-.242.485-.485.242-.242a2.535,2.535,0,0,0,.485-.727l.121-.121h0a2.435,2.435,0,0,0,.485-.969h0v-.121c.121-.242.242-.363.242-.606,0-.121.121-.242.121-.363s0-.121.121-.242c0-.121,0-.121.121-.242a1.536,1.536,0,0,0,.121-.727v-.606a5.247,5.247,0,0,1,.121-.606V41.12h0A1.537,1.537,0,0,0,86.161,40.393Z" transform="translate(9.283)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
|
@ -7,6 +7,7 @@ languageContribute: "Help Translate Rancher"
|
|||
generic:
|
||||
actions: Actions
|
||||
activate: Activate
|
||||
add: Add
|
||||
all: All
|
||||
any: Any
|
||||
as: as
|
||||
|
|
|
|||
Loading…
Reference in New Issue