mirror of https://github.com/portainer/portainer
96 lines
4.1 KiB
HTML
96 lines
4.1 KiB
HTML
<form class="form-horizontal">
|
|
<edge-groups-selector value="$ctrl.model.EdgeGroups" items="$ctrl.edgeGroups" on-change="($ctrl.onChangeGroups)"></edge-groups-selector>
|
|
|
|
<edge-stack-deployment-type-selector
|
|
allow-kube-to-select-compose="$ctrl.allowKubeToSelectCompose"
|
|
value="$ctrl.model.DeploymentType"
|
|
has-docker-endpoint="$ctrl.hasDockerEndpoint()"
|
|
has-kube-endpoint="$ctrl.hasKubeEndpoint()"
|
|
on-change="($ctrl.onChangeDeploymentType)"
|
|
read-only="$ctrl.state.readOnlyCompose"
|
|
></edge-stack-deployment-type-selector>
|
|
|
|
<div class="text-muted small flex gap-1" ng-show="!$ctrl.model.DeploymentType && $ctrl.hasKubeEndpoint()">
|
|
<pr-icon icon="'alert-circle'" mode="'warning'" class-name="'!mt-1'"></pr-icon>
|
|
<div>
|
|
<p>
|
|
Portainer no longer supports <a href="https://docs.docker.com/compose/compose-file/" target="_blank">docker-compose</a> format manifests for Kubernetes deployments, and we
|
|
have removed the <a href="https://kompose.io/" target="_blank">Kompose</a> conversion tool which enables this. The reason for this is because Kompose now poses a security
|
|
risk, since it has a number of Common Vulnerabilities and Exposures (CVEs).
|
|
</p>
|
|
<p
|
|
>Unfortunately, while the Kompose project has a maintainer and is part of the CNCF, it is not being actively maintained. Releases are very infrequent and new pull requests
|
|
to the project (including ones we've submitted) are taking months to be merged, with new CVEs arising in the meantime.</p
|
|
>
|
|
<p>
|
|
We advise installing your own instance of Kompose in a sandbox environment, performing conversions of your Docker Compose files to Kubernetes manifests and using those
|
|
manifests to set up applications.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<web-editor-form
|
|
ng-if="$ctrl.model.DeploymentType === $ctrl.EditorType.Compose"
|
|
value="$ctrl.model.StackFileContent"
|
|
yml="true"
|
|
identifier="compose-editor"
|
|
placeholder="Define or paste the content of your docker compose file here"
|
|
on-change="($ctrl.onChangeComposeConfig)"
|
|
read-only="$ctrl.hasKubeEndpoint()"
|
|
>
|
|
<editor-description>
|
|
<div>
|
|
You can get more information about Compose file format in the
|
|
<a href="https://docs.docker.com/compose/compose-file/" target="_blank"> official documentation </a>
|
|
.
|
|
</div>
|
|
</editor-description>
|
|
</web-editor-form>
|
|
|
|
<div ng-if="$ctrl.model.DeploymentType === $ctrl.EditorType.Kubernetes">
|
|
<div class="form-group">
|
|
<div class="col-sm-12">
|
|
<por-switch-field
|
|
label="'Use namespace(s) specified from manifest'"
|
|
tooltip="'If you have defined namespaces in your deployment file turning this on will enforce the use of those only in the deployment'"
|
|
checked="$ctrl.formValues.UseManifestNamespaces"
|
|
on-change="($ctrl.onChangeUseManifestNamespaces)"
|
|
></por-switch-field>
|
|
</div>
|
|
</div>
|
|
|
|
<web-editor-form
|
|
value="$ctrl.model.StackFileContent"
|
|
yml="true"
|
|
identifier="kube-manifest-editor"
|
|
placeholder="Define or paste the content of your manifest here"
|
|
on-change="($ctrl.onChangeKubeManifest)"
|
|
>
|
|
<editor-description>
|
|
<p>
|
|
You can get more information about Kubernetes file format in the
|
|
<a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/" target="_blank">official documentation</a>.
|
|
</p>
|
|
</editor-description>
|
|
</web-editor-form>
|
|
</div>
|
|
|
|
<!-- actions -->
|
|
<div class="col-sm-12 form-section-title"> Actions </div>
|
|
<div class="form-group">
|
|
<div class="col-sm-12">
|
|
<button
|
|
type="button"
|
|
class="btn btn-primary btn-sm !ml-0"
|
|
ng-disabled="$ctrl.actionInProgress || !$ctrl.isFormValid() || (!$ctrl.model.DeploymentType && $ctrl.hasKubeEndpoint())"
|
|
ng-click="$ctrl.submitAction()"
|
|
button-spinner="$ctrl.actionInProgress"
|
|
>
|
|
<span ng-hide="$ctrl.actionInProgress">Update the stack</span>
|
|
<span ng-show="$ctrl.actionInProgress">Update in progress...</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<!-- !actions -->
|
|
</form>
|