Merge pull request #4860 from LBGarber/new/lke-ha-support

Add High Availability LKE cluster support
This commit is contained in:
Neil MacDougall 2023-02-21 13:59:18 +00:00 committed by GitHub
commit f0cf09b2be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 47 additions and 9 deletions

View File

@ -46,16 +46,18 @@ const NODE_POOL_HEADERS = [
]; ];
export default Component.extend(ClusterDriver, { export default Component.extend(ClusterDriver, {
intl: service(), intl: service(),
linode: service(), linode: service(),
layout, layout,
configField: 'lkeEngineConfig', configField: 'lkeEngineConfig',
step: 1, step: 1,
lanChanged: null, lanChanged: null,
refresh: false, refresh: false,
sortBy: '', sortBy: '',
descending: false, descending: false,
nodePoolHeaders: NODE_POOL_HEADERS, nodePoolHeaders: NODE_POOL_HEADERS,
// This value is currently not returned by the Linode API
highAvailabilityMonthlyPrice: 60.0,
init() { init() {
this._super(...arguments); this._super(...arguments);
@ -64,6 +66,8 @@ export default Component.extend(ClusterDriver, {
let configField = get(this, 'configField'); let configField = get(this, 'configField');
setProperties(this, { setProperties(this, {
// We should store the previous state of HA to disallow downgrades
'highAvailability': config ? config.highAvailability : false,
'newTag': '', 'newTag': '',
'selectedNodePoolType': '', 'selectedNodePoolType': '',
'selectedNodePoolObj': {}, 'selectedNodePoolObj': {},
@ -79,6 +83,7 @@ export default Component.extend(ClusterDriver, {
accessToken: '', accessToken: '',
region: 'us-central', region: 'us-central',
kubernetesVersion: '', kubernetesVersion: '',
highAvailability: false,
tags: [], tags: [],
nodePools: [] nodePools: []
}); });

View File

@ -80,6 +80,35 @@
</div> </div>
</div> </div>
{{/if}} {{/if}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.linodelke.highAvailability.label"}}
{{field-required}}
</label>
{{#input-or-display
editable=true
value=cluster.lkeEngineConfig.highAvailability
}}
<div class="radio">
<label>
{{radio-button selection=cluster.lkeEngineConfig.highAvailability value=true}}
{{t "generic.enabled"}}
(+{{format-number highAvailabilityMonthlyPrice style='currency' currency='USD'}}/{{t "clusterNew.linodelke.highAvailability.month"}})
</label>
</div>
<div class="radio">
<label>
{{radio-button selection=cluster.lkeEngineConfig.highAvailability disabled=highAvailability value=false}}
{{t "generic.disabled"}}
</label>
</div>
{{/input-or-display}}
<p class="help-block">
{{t "clusterNew.linodelke.highAvailability.warning"}}
</p>
</div>
</div>
<div class="row"> <div class="row">
<div class="header mt-40 mb-0"> <div class="header mt-40 mb-0">
<div class="pull-left"> <div class="pull-left">

View File

@ -4284,6 +4284,10 @@ clusterNew:
loading: Saving your cluster configuration loading: Saving your cluster configuration
next: Proceed to Node pool selection next: Proceed to Node pool selection
title: Cluster Configuration title: Cluster Configuration
highAvailability:
label: High Availability
warning: Once a cluster has been upgraded to High Availability, it cannot be downgraded.
month: month
kubernetesVersion: kubernetesVersion:
label: Kubernetes Version label: Kubernetes Version
placeholder: Select a kubernetes version for your cluster placeholder: Select a kubernetes version for your cluster