mirror of
https://github.com/portainer/portainer.git
synced 2025-07-25 16:29:44 +02:00
fix(stack/remote): pass forceRecreate setting [EE-7374] (#12050)
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:s390x platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:s390x platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
This commit is contained in:
parent
5e6e3048d5
commit
13766cc465
2 changed files with 18 additions and 7 deletions
|
@ -31,6 +31,7 @@ const (
|
||||||
type unpackerCmdBuilderOptions struct {
|
type unpackerCmdBuilderOptions struct {
|
||||||
pullImage bool
|
pullImage bool
|
||||||
prune bool
|
prune bool
|
||||||
|
forceRecreate bool
|
||||||
composeDestination string
|
composeDestination string
|
||||||
registries []portainer.Registry
|
registries []portainer.Registry
|
||||||
}
|
}
|
||||||
|
@ -62,12 +63,13 @@ func (d *stackDeployer) buildUnpackerCmdForStack(stack *portainer.Stack, operati
|
||||||
return fn(stack, opts, registriesStrings, envStrings), nil
|
return fn(stack, opts, registriesStrings, envStrings), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// deploy [-u username -p password] [--skip-tls-verify] [--env KEY1=VALUE1 --env KEY2=VALUE2] <git-repo-url> <ref> <project-name> <destination> <compose-file-path> [<more-file-paths>...]
|
// deploy [-u username -p password] [--skip-tls-verify] [--force-recreate] [-k] [--env KEY1=VALUE1 --env KEY2=VALUE2] <git-repo-url> <ref> <project-name> <destination> <compose-file-path> [<more-file-paths>...]
|
||||||
func buildDeployCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, registries []string, env []string) []string {
|
func buildDeployCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, registries []string, env []string) []string {
|
||||||
cmd := []string{}
|
cmd := []string{}
|
||||||
cmd = append(cmd, UnpackerCmdDeploy)
|
cmd = append(cmd, UnpackerCmdDeploy)
|
||||||
cmd = appendGitAuthIfNeeded(cmd, stack)
|
cmd = appendGitAuthIfNeeded(cmd, stack)
|
||||||
cmd = appendSkipTLSVerifyIfNeeded(cmd, stack)
|
cmd = appendSkipTLSVerifyIfNeeded(cmd, stack)
|
||||||
|
cmd = appendForceRecreateIfNeeded(cmd, opts.forceRecreate)
|
||||||
cmd = append(cmd, env...)
|
cmd = append(cmd, env...)
|
||||||
cmd = append(cmd, registries...)
|
cmd = append(cmd, registries...)
|
||||||
cmd = append(cmd, stack.GitConfig.URL)
|
cmd = append(cmd, stack.GitConfig.URL)
|
||||||
|
@ -124,12 +126,13 @@ func buildComposeStopCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions,
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
// swarm-deploy [-u username -p password] [--skip-tls-verify] [-f] [-r] [--env KEY1=VALUE1 --env KEY2=VALUE2] <git-repo-url> <git-ref> <project-name> <destination> <compose-file-path> [<more-file-paths>...]
|
// swarm-deploy [-u username -p password] [--skip-tls-verify] [--force-recreate] [-f] [-r] [-k] [--env KEY1=VALUE1 --env KEY2=VALUE2] <git-repo-url> <git-ref> <project-name> <destination> <compose-file-path> [<more-file-paths>...]
|
||||||
func buildSwarmDeployCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, registries []string, env []string) []string {
|
func buildSwarmDeployCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, registries []string, env []string) []string {
|
||||||
cmd := []string{}
|
cmd := []string{}
|
||||||
cmd = append(cmd, UnpackerCmdSwarmDeploy)
|
cmd = append(cmd, UnpackerCmdSwarmDeploy)
|
||||||
cmd = appendGitAuthIfNeeded(cmd, stack)
|
cmd = appendGitAuthIfNeeded(cmd, stack)
|
||||||
cmd = appendSkipTLSVerifyIfNeeded(cmd, stack)
|
cmd = appendSkipTLSVerifyIfNeeded(cmd, stack)
|
||||||
|
cmd = appendForceRecreateIfNeeded(cmd, opts.forceRecreate)
|
||||||
if opts.pullImage {
|
if opts.pullImage {
|
||||||
cmd = append(cmd, "-f")
|
cmd = append(cmd, "-f")
|
||||||
}
|
}
|
||||||
|
@ -203,6 +206,13 @@ func appendAdditionalFiles(cmd []string, files []string) []string {
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func appendForceRecreateIfNeeded(cmd []string, forceRecreate bool) []string {
|
||||||
|
if forceRecreate {
|
||||||
|
cmd = append(cmd, "--force-recreate")
|
||||||
|
}
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
func getRegistry(registries []portainer.Registry, dataStore dataservices.DataStore) []string {
|
func getRegistry(registries []portainer.Registry, dataStore dataservices.DataStore) []string {
|
||||||
cmds := []string{}
|
cmds := []string{}
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,8 @@ func (d *stackDeployer) DeployRemoteComposeStack(
|
||||||
endpoint,
|
endpoint,
|
||||||
OperationDeploy,
|
OperationDeploy,
|
||||||
unpackerCmdBuilderOptions{
|
unpackerCmdBuilderOptions{
|
||||||
registries: registries,
|
forceRecreate: forceRecreate,
|
||||||
|
registries: registries,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -119,10 +120,10 @@ func (d *stackDeployer) DeployRemoteSwarmStack(
|
||||||
defer d.swarmStackManager.Logout(endpoint)
|
defer d.swarmStackManager.Logout(endpoint)
|
||||||
|
|
||||||
return d.remoteStack(stack, endpoint, OperationSwarmDeploy, unpackerCmdBuilderOptions{
|
return d.remoteStack(stack, endpoint, OperationSwarmDeploy, unpackerCmdBuilderOptions{
|
||||||
|
pullImage: pullImage,
|
||||||
pullImage: pullImage,
|
prune: prune,
|
||||||
prune: prune,
|
forceRecreate: stack.AutoUpdate != nil && stack.AutoUpdate.ForceUpdate,
|
||||||
registries: registries,
|
registries: registries,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue