{{header}}

{{form-name-description name=name nameDisabled=isUpgrade nameRequired=true bothColClass="col span-12 mt-0" colClass="col span-12 mt-0" description=description namePlaceholder="newContainer.name.placeholder" descriptionPlaceholder="newContainer.description.placeholder" }}
{{container/form-scale initialScale=scale isGlobal=isGlobal launchConfigIndex=launchConfigIndex workload=service isUpgrade=isUpgrade errors=scaleErrors scaleMode=scaleMode setScale=(action (mut scale)) }}

{{container/form-image initialValue=launchConfig.image errors=imageErrors changed=(action 'setImage') }}
{{#if (or isSidekick isUpgrade)}} {{!-- Only a new primary service or container picks stack --}} {{else}} {{form-namespace namespace=namespace errors=namespaceErrors }} {{/if}}

{{container/form-ports initialPorts=launchConfig.ports changed=(action (mut launchConfig.ports)) errors=portErrors editing=true }}

{{form-key-value initialMap=launchConfig.environment changed=(action (mut launchConfig.environment)) allowEmptyValue=true editing=true header=(t 'newContainer.environment.label') addActionLabel="newContainer.environment.addAction" keyLabel="newContainer.environment.keyLabel" keyPlaceholder="newContainer.environment.keyPlaceholder" valueLabel="newContainer.environment.valueLabel" valuePlaceholder="newContainer.environment.valuePlaceholder" }}

{{#accordion-list as | al expandFn | }} {{#unless isSidekick}} {{container/form-scheduling isGlobal=isGlobal initialHostId=service.scheduling.node.nodeId service=service scheduling=service.scheduling errors=schedulingErrors editing=true expandAll=null setLabels=(action 'setLabels' 'scheduling') setRequestedHost=(action 'setRequestedHostId') expandAll=al.expandAll expandFn=expandFn }} {{/unless}} {{#accordion-list-item title=(t 'formHealthCheck.title') detail=(t 'formHealthCheck.detail' appName=settings.appName) status=status statusClass=statusClass expandAll=al.expandAll expand=(action expandFn) }}
{{#if separateLivenessCheck}}
{{else}}
{{/if}}
{{form-healthcheck initialCheck=launchConfig.readinessProbe changed=(action (mut launchConfig.readinessProbe)) errors=readyCheckErrors editing=true }}
{{#if separateLivenessCheck}}
{{form-healthcheck initialCheck=launchConfig.livenessProbe changed=(action (mut launchConfig.livenessProbe)) errors=liveCheckErrors editing=true successMustBeOne=true }}
{{/if}}
{{/accordion-list-item}} {{#if (not isSidekick)}} {{container/form-upgrade workload=service scaleMode=scaleMode editing=true isUpgrade=isUpgrade expandAll=al.expandAll expandFn=expandFn }} {{/if}} {{#advanced-section advanced=false}} {{container/form-volumes isSidekick=isSidekick launchConfig=launchConfig workload=service stack=stack errors=volumeErrors volumesToCreate=volumesToCreate expandAll=al.expandAll expandFn=expandFn }} {{container/form-command classNames="accordion-wrapper" instance=launchConfig errors=commandErrors service=service expandAll=al.expandAll expandFn=expandFn }} {{container/form-networking classNames="accordion-wrapper" instance=launchConfig errors=networkingErrors service=service editing=true expandAll=al.expandAll expandFn=expandFn }} {{form-user-labels classNames="accordion-wrapper" errors=labelErrors initialLabels=service.labels setLabels=(action 'setLabels' 'user') expandAll=al.expandAll expandFn=expandFn }} {{form-annotations classNames="accordion-wrapper" model=service errors=annotationErrors expandAll=al.expandAll expandFn=expandFn }} {{container/form-secrets classNames="accordion-wrapper" secrets=launchConfig.secrets errors=secretErrors editing=true expandAll=al.expandAll expandFn=expandFn }} {{container/form-security instance=launchConfig service=service errors=securityErrors editing=true expandAll=al.expandAll expandFn=expandFn }} {{/advanced-section}} {{/accordion-list}} {{top-errors errors=errors}} {{save-cancel createLabel=(if isUpgrade 'newContainer.saveUpgrade' 'newContainer.saveNew') save="save" cancel="cancel"}}