mirror of https://github.com/rancher/ui.git
Add Embedded ES resource quota configuration UI
This commit is contained in:
parent
4ae3ed921d
commit
03b831736a
|
|
@ -129,19 +129,6 @@ export default Ember.Component.extend(NewOrEdit, {
|
|||
&& get(this, 'targetType') === 'none';
|
||||
}.property('originalModel.{id,targetType}', 'targetType'),
|
||||
|
||||
|
||||
validate() {
|
||||
const targetType = get(this, 'targetType');
|
||||
const config = get(this, `primaryResource.${targetType}Config`);
|
||||
const errors = config.validationErrors();
|
||||
if (errors.get('length')) {
|
||||
set(this, 'errors', errors);
|
||||
return false;
|
||||
}
|
||||
set(this, 'errors', null);
|
||||
return true;
|
||||
},
|
||||
|
||||
actions: {
|
||||
save(cb) {
|
||||
const targetType = get(this, 'targetType');
|
||||
|
|
@ -198,7 +185,6 @@ export default Ember.Component.extend(NewOrEdit, {
|
|||
set(model, 'outputFlushInterval', get(model, `${targetType}.outputFlushInterval`));
|
||||
set(model, 'outputTags', get(model, `${targetType}.outputTags`));
|
||||
set(model, `${targetType}Config`, get(model, `${targetType}.config`));
|
||||
|
||||
this._super(cb);
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,24 @@
|
|||
import Component from '@ember/component';
|
||||
import es from 'logging/mixins/target-elasticsearch';
|
||||
import { get, set } from '@ember/object';
|
||||
|
||||
export default Component.extend(es, {});
|
||||
export default Component.extend(es, {
|
||||
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
const requestsCpu = get(this, 'config.requestsCpu') || 1000;
|
||||
const limitsCpu = get(this, 'config.limitsCpu');
|
||||
set(this, 'requestsCpu', requestsCpu / 1000);
|
||||
set(this, 'limitsCpu', limitsCpu / 1000);
|
||||
},
|
||||
|
||||
limitsCpuChanged: function() {
|
||||
const requestsCpu = get(this, 'requestsCpu');
|
||||
set(this, 'config.requestsCpu', requestsCpu * 1000);
|
||||
}.observes('requestsCpu'),
|
||||
|
||||
limitsCpuChanged: function() {
|
||||
const limitsCpu = get(this, 'limitsCpu');
|
||||
set(this, 'config.limitsCpu', limitsCpu * 1000);
|
||||
}.observes('limitsCpu'),
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,10 +1,58 @@
|
|||
<h2 class="mt-30">{{t 'loggingPage.embedded.header'}}</h2>
|
||||
<hr/>
|
||||
|
||||
<section class="">
|
||||
<h4>{{t 'loggingPage.embedded.indexPatterns.header'}}</h4>
|
||||
<p class="text-info text-small">{{t 'loggingPage.embedded.indexPatterns.helpText'}}</p>
|
||||
<section class="box">
|
||||
<h4>{{t 'loggingPage.embedded.resouceRequestsAndLimits'}}</h4>
|
||||
<div class="row mb-20">
|
||||
<div class="col span-6">
|
||||
<label class="acc-label">{{t 'loggingPage.embedded.cpuRequests.label'}}{{field-required}}</label>
|
||||
{{input-number
|
||||
min=1
|
||||
type="number"
|
||||
value=requestsCpu
|
||||
className="form-control"
|
||||
placeholder=(t 'loggingPage.embedded.cpuRequests.placeholder')
|
||||
}}
|
||||
</div>
|
||||
|
||||
<div class="col span-6">
|
||||
<label class="acc-label">{{t 'loggingPage.embedded.cpuLimits.label'}}{{field-required}}</label>
|
||||
{{input-number
|
||||
min=1
|
||||
type="number"
|
||||
value=limitsCpu
|
||||
className="form-control"
|
||||
placeholder=(t 'loggingPage.embedded.cpuLimits.placeholder')
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col span-6">
|
||||
<label class="acc-label">{{t 'loggingPage.embedded.memRequests.label'}}{{field-required}}</label>
|
||||
{{input-number
|
||||
min=500
|
||||
type="number"
|
||||
value=config.requestsMemory
|
||||
className="form-control"
|
||||
placeholder=(t 'loggingPage.embedded.memRequests.placeholder')
|
||||
}}
|
||||
</div>
|
||||
|
||||
<div class="col span-6">
|
||||
<label class="acc-label">{{t 'loggingPage.embedded.memLimits.label'}}{{field-required}}</label>
|
||||
{{input-number
|
||||
min=1000
|
||||
type="number"
|
||||
value=config.limitsMemory
|
||||
className="form-control"
|
||||
placeholder=(t 'loggingPage.embedded.memLimits.placeholder')
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4 class="mt-20">{{t 'loggingPage.embedded.indexPatterns.header'}}</h4>
|
||||
<p class="text-info text-small">{{t 'loggingPage.embedded.indexPatterns.helpText'}}</p>
|
||||
|
||||
<label class="acc-label">{{t 'loggingPage.embedded.indexPatterns.prefix'}}{{field-required}}</label>
|
||||
{{input
|
||||
|
|
@ -21,7 +69,6 @@
|
|||
<label class="mr-10">{{radio-button selection=config.dateFormat value="YYYY"}} YYYY</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
{{t 'loggingPage.embedded.generatedIndex'
|
||||
esIndex=esIndex
|
||||
|
|
@ -29,5 +76,4 @@
|
|||
}}
|
||||
</div>
|
||||
</section>
|
||||
<hr class="mt-30 mb-30" />
|
||||
{{logging/form-log-format logPreview=logPreview model=model}}
|
||||
|
|
@ -16,7 +16,6 @@ export default Route.extend({
|
|||
const gs = get(this, 'globalStore');
|
||||
const newLogging = gs.createRecord({
|
||||
type: loggingType,
|
||||
outputFlushInterval: 3,
|
||||
outputTags: {},
|
||||
});
|
||||
return newLogging;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { get, set } from '@ember/object'
|
||||
import EmberObject from '@ember/object';
|
||||
import Mixin from '@ember/object/mixin';
|
||||
|
||||
const DEFAULT_TARGET_TYPE = 'none';
|
||||
|
|
@ -14,6 +15,8 @@ export default Mixin.create({
|
|||
type: this.get('type'),
|
||||
});
|
||||
|
||||
const map = EmberObject.create({});
|
||||
|
||||
const loggingTagets = [
|
||||
'embedded',
|
||||
'kafka',
|
||||
|
|
@ -22,14 +25,12 @@ export default Mixin.create({
|
|||
'syslog',
|
||||
];
|
||||
|
||||
const map = {};
|
||||
loggingTagets.forEach(key => {
|
||||
const config = store.createRecord({
|
||||
type: `${key}Config`
|
||||
type: `${key}Config`,
|
||||
});
|
||||
const clone = nue.clone();
|
||||
clone.set('config', config);
|
||||
map[key] = clone;
|
||||
nue.set('config', config);
|
||||
set(map, key, nue.clone());
|
||||
});
|
||||
|
||||
this.setProperties(map);
|
||||
|
|
|
|||
|
|
@ -53,6 +53,20 @@ loggingPage:
|
|||
requirements: The embedded deployment includes Elasticsearch and Kibana. Elasticsearch requests at least 1 CPU and 500M MEM available on the node it is deployed.
|
||||
esEndpoint: 'Elascticsearch Endpoint: <a href="http://47.88.57.141:30022" target="_blank">http://47.88.57.141:30022</a>'
|
||||
kibanaEndpoint: 'Kibana Endpoint: <a href="http://47.88.57.141:30024" target="_blank">http://47.88.57.141:30024</a>'
|
||||
cpuRequests:
|
||||
label: CPU Requests (Core)
|
||||
placeholder: e.g. 1
|
||||
cpuLimits:
|
||||
label: CPU Limits (Core)
|
||||
placeholder: e.g. 4
|
||||
memRequests:
|
||||
label: Memory Requests (M)
|
||||
placeholder: e.g. 500
|
||||
memLimits:
|
||||
label: Memory Limits (M)
|
||||
placeholder: e.g. 2000
|
||||
resouceRequestsAndLimits: CPU and Memory
|
||||
|
||||
indexPatterns:
|
||||
header: Index Patterns
|
||||
helpText: Index patterns are used to generate Elacticsearch index
|
||||
|
|
|
|||
Loading…
Reference in New Issue