ui/lib/shared/addon/components/cluster-driver/driver-googlegke/template.hbs

974 lines
33 KiB
Handlebars

{{#if (eq step 1)}}
{{#input-text-file
classNames="box"
label="clusterNew.googlegke.credential.label"
value=config.credential
accept="text/*, .json"
minHeight=60
canChangeName=false
nameRequired=true
placeholder="clusterNew.googlegke.credential.placeholder"
fileChosen=(action "clickNext")
concealValue=true
as |section|
}}
{{#if (eq section "description")}}
<div class="row help">
<div class="col span-12 help-block wrap mb-0">
{{t "clusterNew.googlegke.credential.helpText" htmlSafe=true}}
</div>
</div>
{{/if}}
{{/input-text-file}}
{{top-errors errors=errors}}
{{top-errors errors=otherErrors}}
{{top-errors errors=clusterErrors}}
{{save-cancel
saving=saving
createLabel="clusterNew.googlegke.checkServiceAccount"
savingLabel="clusterNew.googlegke.checkingServiceAccount"
save=(action "checkServiceAccount")
cancel=close
}}
{{else}}
{{#accordion-list showExpandAll=false as |al expandFn|}}
{{#accordion-list-item
title=(t "clusterNew.kubernetesOptions.title")
detail=(t "clusterNew.kubernetesOptions.detail")
everExpanded=true
expandOnInit=true
expandAll=al.expandAll
expand=(action expandFn)
}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.locationType.label"}}
</label>
{{#input-or-display
editable=isNew
value=locationType
}}
<div class="radio">
<label>
{{radio-button selection=locationType value="zonal"}}
{{t "clusterNew.googlegke.locationType.zone"}}
</label>
</div>
<div class="radio">
<label>
{{radio-button selection=locationType value="regional"}}
{{t "clusterNew.googlegke.locationType.region"}}
</label>
</div>
{{/input-or-display}}
</div>
{{#if (eq locationType "zonal")}}
<div class="col span-4">
<label class="acc-label">
{{t "clusterNew.googlegke.zone.label"}}
</label>
{{#input-or-display
editable=isNew
value=config.zone
}}
{{new-select
classNames="form-control select-algin-checkbox"
optionValuePath="name"
optionLabelPath="name"
content=zoneChoices
value=config.zone
prompt="clusterNew.googlegke.zone.prompt"
localizedPrompt=true
disabled=editing
}}
{{/input-or-display}}
</div>
{{#unless hideNewField}}
<div class="col span-2">
<label class="acc-label">
{{t "clusterNew.googlegke.locations.label"}}
</label>
{{#each locationContent as |location|}}
<div class="checkbox">
<label class={{if editing "text-muted"}}>
{{input
type="checkbox"
checked=location.checked
disabled=editing
}}
{{location.name}}
</label>
</div>
{{/each}}
</div>
{{/unless}}
{{/if}}
{{#if (eq locationType "regional")}}
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.region.label"}}
</label>
{{#input-or-display
editable=isNew
value=config.region
}}
{{new-select
classNames="form-control select-algin-checkbox"
optionValuePath="name"
optionLabelPath="name"
content=regionChoices
value=config.region
prompt="clusterNew.googlegke.region.prompt"
localizedPrompt=true
disabled=editing
}}
{{/input-or-display}}
</div>
{{/if}}
</div>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.masterVersion.label"}}
</label>
{{form-versions
cluster=cluster
editing=editing
initialVersion=config.masterVersion
value=config.masterVersion
versions=versionChoices
showNotAllowed=false
}}
{{#if (and editing (not-eq initialMasterVersion config.masterVersion))}}
{{banner-message
icon="icon-alert"
color="bg-warning mb-10"
message=(t "clusterNew.googlegke.masterVersion.warning")
}}
{{/if}}
</div>
{{#unless hideNewField}}
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.clusterIpv4Cidr.label"}}
</label>
{{#input-or-display
editable=isNew
value=config.clusterIpv4Cidr
}}
{{input
value=config.clusterIpv4Cidr
placeholder=(t "clusterNew.googlegke.clusterIpv4Cidr.placeholder")
disabled=editing
}}
{{/input-or-display}}
</div>
{{/unless}}
</div>
{{#unless hideNewField}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.alphaFeatures.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableAlphaFeature
value=true
disabled=editing
}} {{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableAlphaFeature
value=false
disabled=editing
}} {{t "generic.disabled"}}
</label>
</div>
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.legacyAuth.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableLegacyAbac
value=true
disabled=editing
}} {{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableLegacyAbac
value=false
disabled=editing
}} {{t "generic.disabled"}}
</label>
</div>
</div>
</div>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.stackDriverLogging.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableStackdriverLogging
value=true
disabled=editing
}} {{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableStackdriverLogging
value=false
disabled=editing
}} {{t "generic.disabled"}}
</label>
</div>
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.stackdriverMonitor.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableStackdriverMonitoring
value=true
disabled=editing
}} {{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableStackdriverMonitoring
value=false
disabled=editing
}} {{t "generic.disabled"}}
</label>
</div>
</div>
</div>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.dashboard.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableKubernetesDashboard
value=true
disabled=editing
}} {{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableKubernetesDashboard
value=false
disabled=editing
}} {{t "generic.disabled"}}
</label>
</div>
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.httpLB.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableHttpLoadBalancing
value=true
disabled=editing
}} {{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableHttpLoadBalancing
value=false
disabled=editing
}} {{t "generic.disabled"}}
</label>
</div>
</div>
</div>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.enableHorizontalPodAutoscaling.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableHorizontalPodAutoscaling
value=true
disabled=editing
}} {{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableHorizontalPodAutoscaling
value=false
disabled=editing
}} {{t "generic.disabled"}}
</label>
</div>
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.maintenanceWindow.label"}}
</label>
<div class="form-control-static">
{{#input-or-display
editable=isNew
value=maintenanceWindowChoice.label
}}
{{new-select
classNames="form-control"
content=maintenanceWindowTimes
value=config.maintenanceWindow
disabled=editing
}}
{{/input-or-display}}
</div>
</div>
</div>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.network.label"}}
</label>
{{#input-or-display
editable=isNew
value=config.network
}}
{{searchable-select
content=networkContent
classNames="form-control"
value=config.network
optionValuePath="name"
optionLabelPath="name"
readOnly=editing
}}
{{/input-or-display}}
</div>
{{#if (gt subNetworkContent.length 0)}}
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.subNetwork.label"}}
</label>
{{#input-or-display
editable=isNew
value=config.subNetwork
}}
{{searchable-select
content=subNetworkContent
classNames="form-control"
value=config.subNetwork
readOnly=editing
}}
{{/input-or-display}}
</div>
{{/if}}
</div>
{{#advanced-section advanced=clusterAdvanced}}
<h4 class="mt-20 mb-10">{{t "clusterNew.googlegke.header.iPAllocationPolicy"}}</h4>
<hr/>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.useIpAliases.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.useIpAliases
value=true
disabled=editing
}}
{{t "generic.yes"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.useIpAliases
value=false
disabled=editing
}}
{{t "generic.no"}}
</label>
</div>
</div>
{{#if config.useIpAliases}}
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.ipPolicyCreateSubnetwork.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.ipPolicyCreateSubnetwork
value=true
disabled=editing
}}
{{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}} class={{concat (if (eq secondaryIpRangeContent.length 0) "text-muted") " hand"}}>
{{radio-button
selection=config.ipPolicyCreateSubnetwork
value=false
disabled=(or editing (eq secondaryIpRangeContent.length 0))
}}
{{t "generic.disabled"}}
</label>
</div>
</div>
{{/if}}
</div>
{{#if config.useIpAliases}}
{{#if (and config.ipPolicyCreateSubnetwork config.useIpAliases)}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.ipPolicyClusterIpv4CidrBlock.label"}}
</label>
{{input
value=config.ipPolicyClusterIpv4CidrBlock
placeholder=(t "clusterNew.googlegke.ipPolicyClusterIpv4CidrBlock.placeholder")
disabled=editing
}}
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.ipPolicyServicesIpv4CidrBlock.label"}}
</label>
{{input
value=config.ipPolicyServicesIpv4CidrBlock
placeholder=(t "clusterNew.googlegke.ipPolicyServicesIpv4CidrBlock.placeholder")
disabled=editing
}}
</div>
</div>
{{else}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.ipPolicyClusterSecondaryRangeName.label"}}
</label>
{{searchable-select
content=secondaryIpRangeContent
classNames="form-control"
value=config.ipPolicyClusterSecondaryRangeName
disabled=editing
}}
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.ipPolicyServicesSecondaryRangeName.label"}}
</label>
{{searchable-select
content=secondaryIpRangeContent
classNames="form-control"
value=config.ipPolicyServicesSecondaryRangeName
disabled=editing
}}
</div>
</div>
{{/if}}
{{/if}}
<h4 class="mt-20 mb-10">
{{t "clusterNew.googlegke.header.privateCluster"}}
</h4>
<hr/>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.enablePrivateNodes.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if (eq config.useIpAliases false) "text-muted") " hand mr-20"}}>
{{radio-button
selection=config.enablePrivateNodes
value=true
disabled=(or editing (eq config.useIpAliases false))
}}
{{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enablePrivateNodes
value=false
disabled=editing
}}
{{t "generic.disabled"}}
</label>
</div>
</div>
{{#if config.enablePrivateNodes}}
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.enablePrivateEndpoint.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enablePrivateEndpoint
value=true
disabled=editing
}}
{{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enablePrivateEndpoint
value=false
disabled=editing
}}
{{t "generic.disabled"}}
</label>
</div>
</div>
{{/if}}
</div>
{{#if config.enablePrivateNodes}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.masterIpv4CidrBlock.label"}}
</label>
{{input
value=config.masterIpv4CidrBlock
placeholder=(t "clusterNew.googlegke.masterIpv4CidrBlock.placeholder")
disabled=editing
}}
</div>
</div>
{{/if}}
<h4 class="mt-20 mb-10">
{{t "clusterNew.googlegke.header.masterAuthorizedNetwork"}}
</h4>
<hr/>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.enableMasterAuthorizedNetwork.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableMasterAuthorizedNetwork
value=true
disabled=editing
}}
{{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableMasterAuthorizedNetwork
value=false
disabled=editing
}}
{{t "generic.disabled"}}
</label>
</div>
</div>
{{#if config.enableMasterAuthorizedNetwork}}
<div class="col span-6">
{{form-value-array
initialValues=config.masterAuthorizedNetworkCidrBlocks
editing=(or (eq mode "edit") (eq mode "new"))
valueLabel="clusterNew.googlegke.masterAuthorizedNetworkCidrBlocks.label"
valuePlaceholder="clusterNew.googlegke.masterAuthorizedNetworkCidrBlocks.placeholder"
addActionLabel="clusterNew.googlegke.masterAuthorizedNetworkCidrBlocks.addActionLabel"
changed=(action "updateNameservers")
cannotAdd=(gt config.masterAuthorizedNetworkCidrBlocks.length 10)
}}
</div>
{{/if}}
</div>
{{/advanced-section}}
<div class="row mt-20">
<div class="col span-12 mb-0">
<label class="acc-label">
{{t "clusterNew.googlegke.clusterLabels.label"}}
</label>
{{form-key-value
initialMap=resourceLabels
changed=(action "setLabels")
addActionLabel="clusterNew.googlegke.nodeLabels.addAction"
editing=isNew
}}
</div>
</div>
{{/unless}}
{{/accordion-list-item}}
{{#accordion-list-item
title=(t "clusterNew.nodes.title")
detail=(t "clusterNew.nodes.detail")
showExpand=false
expandOnInit=true
expandAll=al.expandAll
expand=(action expandFn)
}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.nodeCount.label"}}
</label>
{{input-number min=1 value=config.nodeCount}}
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.machineType.label"}}
</label>
{{#if editing}}
<div>
{{editedMachineChoice.displayName}}
</div>
{{else}}
{{new-select
classNames="form-control"
optionValuePath="name"
optionLabelPath="displayName"
content=machineChoices
value=config.machineType
prompt="clusterNew.googlegke.machineType.prompt"
localizedPrompt=true
}}
{{/if}}
</div>
</div>
{{#unless hideNewField}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.imageType.label"}}
</label>
{{#input-or-display
editable=isNew
value=config.imageType
}}
{{searchable-select
content=imageTypeContent
classNames="form-control"
value=config.imageType
localizedLabel=true
readOnly=editing
}}
{{/input-or-display}}
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.diskType.label"}}
</label>
{{#input-or-display
editable=isNew
value=config.diskType
}}
{{searchable-select
content=diskTypeContent
classNames="form-control"
value=config.diskType
localizedLabel=true
readOnly=editing
}}
{{/input-or-display}}
</div>
</div>
{{/unless}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.diskSizeGb.label"}}
</label>
<div class="input-group">
{{#if editing}}
{{config.diskSizeGb}} {{t "generic.gigabyte"}}
{{else}}
{{input-number min=1 value=config.diskSizeGb}}
<span class="input-group-addon bg-default">{{t "generic.gigabyte"}}</span>
{{/if}}
</div>
</div>
{{#unless hideNewField}}
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.localSsdCount.label"}}
</label>
<div class="input-group">
{{#if editing}}
{{config.localSsdCount}} {{t "generic.gigabyte"}}
{{else}}
{{input-integer
min=0
value=config.localSsdCount
}}
<span class="input-group-addon bg-default">{{t "generic.gigabyte"}}</span>
{{/if}}
</div>
</div>
{{/unless}}
</div>
{{#unless hideNewField}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.preemptible.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.preemptible
value=true
disabled=editing
}}
{{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.preemptible
value=false
disabled=editing
}}
{{t "generic.disabled"}}
</label>
</div>
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.enableAutoUpgrade.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableAutoUpgrade
value=true
disabled=editing
}}
{{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableAutoUpgrade
value=false
disabled=editing
}}
{{t "generic.disabled"}}
</label>
</div>
</div>
</div>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.enableAutoRepair.label"}}
</label>
<div class="form-control-static">
<label class={{concat (if editing "text-muted") " mr-20 hand"}}>
{{radio-button
selection=config.enableAutoRepair
value=true
disabled=editing
}}
{{t "generic.enabled"}}
</label>
<label class={{concat (if editing "text-muted") " hand"}}>
{{radio-button
selection=config.enableAutoRepair
value=false
disabled=editing
}}
{{t "generic.disabled"}}
</label>
</div>
</div>
</div>
{{/unless}}
<h4 class="mt-20 mb-10">
{{t "clusterNew.googlegke.header.nodePoolAutoscaling"}}
</h4>
<hr/>
<div class="row">
<div class="col span-4">
<label class="acc-label">
{{t "clusterNew.googlegke.enableNodepoolAutoscaling.label"}}
</label>
<div class="form-control-static">
<label class="mr-20 hand">
{{radio-button
selection=config.enableNodepoolAutoscaling
value=true
}}
{{t "generic.enabled"}}
</label>
<label class="hand">
{{radio-button
selection=config.enableNodepoolAutoscaling
value=false
}}
{{t "generic.disabled"}}
</label>
</div>
</div>
{{#if config.enableNodepoolAutoscaling}}
<div class="col span-4">
<label
class="acc-label"
for="input-min-node-count"
>
{{t "clusterNew.googlegke.minNodeCount.label"}}
</label>
{{input-number
id="input-min-node-count"
min=1
max=config.maxNodeCount
value=config.minNodeCount
}}
</div>
<div class="col span-4">
<label
class="acc-label"
for="input-max-node-count"
>
{{t "clusterNew.googlegke.maxNodeCount.label"}}
</label>
{{input-number
id="input-max-node-count"
min=config.minNodeCount
value=config.maxNodeCount
}}
</div>
{{/if}}
</div>
{{#unless hideNewField}}
{{form-gke-taints
taints=taints
editable=(eq mode "new")
}}
<div class="row mt-20">
<div class="col span-12 mb-0">
<label class="acc-label">
{{t "clusterNew.googlegke.nodeLabels.label"}}
</label>
{{form-key-value
initialMap=labels
changed=(action "setNodeLabels")
addActionLabel="clusterNew.googlegke.nodeLabels.addAction"
editing=(eq mode "new")
}}
</div>
</div>
{{/unless}}
{{/accordion-list-item}}
{{#if (eq mode "new")}}
{{#accordion-list-item
title=(t "clusterNew.security.title")
detail=(t "clusterNew.security.detail")
showExpand=true
expandOnInit=false
expandAll=al.expandAll
expand=(action expandFn)
}}
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.serviceAccount.label"}}
</label>
{{searchable-select
content=serviceAccountContent
classNames="form-control"
value=config.serviceAccount
optionLabelPath="displayName"
optionValuePath="uniqueId"
}}
</div>
<div class="col span-6">
<label class="acc-label">
{{t "clusterNew.googlegke.oauthScopes.label"}}
</label>
<div class="radio">
<label>
{{radio-button
selection=oauthScopesSelection
value="default"
disabled=editing
}}
{{t "clusterNew.googlegke.oauthScopes.default"}}
</label>
</div>
<div class="radio">
<label>
{{radio-button
selection=oauthScopesSelection
value="full"
disabled=editing
}}
{{t "clusterNew.googlegke.oauthScopes.full"}}
</label>
</div>
<div class="radio">
<label>
{{radio-button
selection=oauthScopesSelection
value="custom"
disabled=editing
}}
{{t "clusterNew.googlegke.oauthScopes.custom"}}
</label>
</div>
</div>
</div>
{{#if (eq oauthScopesSelection "custom")}}
{{gke-access-scope
config=scopeConfig
}}
{{/if}}
{{/accordion-list-item}}
{{/if}}
{{/accordion-list}}
{{top-errors errors=errors}}
{{top-errors errors=otherErrors}}
{{top-errors errors=clusterErrors}}
{{save-cancel
editing=(eq mode "edit")
save=(action "driverSave")
cancel=close
saving=saving
saved=saved
}}
{{/if}}