diff --git a/lib/shared/addon/components/storage-class/provisioner-gce-pd/component.js b/lib/shared/addon/components/storage-class/provisioner-gce-pd/component.js
index c225c9894..bc86735d3 100644
--- a/lib/shared/addon/components/storage-class/provisioner-gce-pd/component.js
+++ b/lib/shared/addon/components/storage-class/provisioner-gce-pd/component.js
@@ -12,14 +12,17 @@ export default Component.extend(StorageClassProvisioner, {
layout,
volumeTypes: VOLUME_TYPES,
- volumeType: null,
- zones: null,
- zoneAutomatic: null,
+ volumeType: null,
+ fsType: null,
+ replicationType: null,
+ zones: null,
+ zoneAutomatic: null,
didReceiveAttrs() {
const changes = {};
changes['volumeType'] = get(this, 'parameters.type') || 'pd-standard';
+ changes['fsType'] = get(this, 'parameters.fsType');
const zone = get(this, 'parameters.zone');
const zones = get(this, 'parameters.zones');
@@ -35,13 +38,24 @@ export default Component.extend(StorageClassProvisioner, {
changes['zones'] = '';
}
+ changes['replicationType'] = get(this, 'parameters.replication-type') || 'none';
setProperties(this, changes);
},
updateParams() {
const type = get(this, 'volumeType');
+ const fsType = get(this, 'fsType');
+ const replicationType = get(this, 'replicationType');
const out = { type, };
+ if ( fsType ) {
+ out['fsType'] = fsType;
+ }
+
+ if ( replicationType && replicationType !== 'none') {
+ out['replication-type'] = replicationType;
+ }
+
const zoneAutomatic = get(this, 'zoneAutomatic');
if ( !zoneAutomatic ) {
diff --git a/lib/shared/addon/components/storage-class/provisioner-gce-pd/template.hbs b/lib/shared/addon/components/storage-class/provisioner-gce-pd/template.hbs
index 46baf6809..f20bf53f9 100644
--- a/lib/shared/addon/components/storage-class/provisioner-gce-pd/template.hbs
+++ b/lib/shared/addon/components/storage-class/provisioner-gce-pd/template.hbs
@@ -1,34 +1,34 @@
-
+
{{#if editing}}
{{#each volumeTypes as |name|}}
{{/each}}
{{else}}
- {{t (concat 'cruStorageClass.gce-pd.type.' volumeType)}}
+ {{t (concat "cruStorageClass.gce-pd.type." volumeType)}}
{{/if}}
-
+
{{#if editing}}
{{#unless zoneAutomatic}}
@@ -37,7 +37,7 @@
{{else}}
{{#if zoneAutomatic}}
- {{t 'cruStorageClass.gce-pd.zone.automatic'}}
+ {{t "cruStorageClass.gce-pd.zone.automatic"}}
{{else}}
{{zones}}
{{/if}}
@@ -45,3 +45,38 @@
{{/if}}
+
+
+
+
+ {{#input-or-display editable=editing value=fsType}}
+ {{input
+ type="text"
+ value=fsType
+ classNames="form-control"
+ placeholder=(t "cruStorageClass.gce-pd.fsType.placeholder")
+ }}
+ {{/input-or-display}}
+
+
+
+ {{#input-or-display editable=editing value=replicationType}}
+
+
+
+
+
+
+ {{/input-or-display}}
+
+
diff --git a/translations/en-us.yaml b/translations/en-us.yaml
index f4c6d7ae0..e20d19d60 100644
--- a/translations/en-us.yaml
+++ b/translations/en-us.yaml
@@ -4066,6 +4066,13 @@ cruStorageClass:
label: Volume Type
pd-standard: 'Standard'
pd-ssd: 'SSD'
+ fsType:
+ label: Filesystem Type
+ placeholder: "e.g. ext4"
+ replicationType:
+ label: Replication Type
+ none: Zonal
+ regionalPd: Regional
zone:
label: Availability Zone
automatic: "Automatic: Zones the cluster has a node in"