From 18e755e30ea2f1dfa6ba4bfc087b3cf229acf941 Mon Sep 17 00:00:00 2001 From: andres-portainer <91705312+andres-portainer@users.noreply.github.com> Date: Fri, 2 Aug 2024 16:35:08 -0300 Subject: [PATCH 1/3] fix(pendingactions): remove excessive logging BE-11094 (#12070) --- api/pendingactions/pendingactions.go | 1 - 1 file changed, 1 deletion(-) diff --git a/api/pendingactions/pendingactions.go b/api/pendingactions/pendingactions.go index 22ac3ebc4..f072b1445 100644 --- a/api/pendingactions/pendingactions.go +++ b/api/pendingactions/pendingactions.go @@ -97,7 +97,6 @@ func (service *PendingActionsService) execute(environmentID portainer.EndpointID if len(pendingActions) > 0 { log.Debug().Msgf("Found %d pending actions", len(pendingActions)) - log.Debug().Msgf("PendingActions %+v", pendingActions) } for i, endpointPendingAction := range pendingActions { From 5e6e3048d58c3dc3596f3b6c2565fceb97511804 Mon Sep 17 00:00:00 2001 From: Yajith Dayarathna Date: Mon, 5 Aug 2024 11:29:01 +1200 Subject: [PATCH 2/3] Installing docker-compose during test-server step - 2.21 (#12076) --- .github/workflows/test.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 340136d46..308d2c271 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -52,5 +52,11 @@ jobs: - uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} + + - name: Install docker-compose + run: | + sudo apt-get update + sudo apt-get install docker-compose + - name: Run tests run: make test-server From 13766cc4656364d34a9baf941df11b9c24580e8c Mon Sep 17 00:00:00 2001 From: Oscar Zhou <100548325+oscarzhou-portainer@users.noreply.github.com> Date: Tue, 6 Aug 2024 09:02:12 +1200 Subject: [PATCH 3/3] fix(stack/remote): pass forceRecreate setting [EE-7374] (#12050) --- .../deployments/compose_unpacker_cmd_builder.go | 14 ++++++++++++-- api/stacks/deployments/deployer_remote.go | 11 ++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/api/stacks/deployments/compose_unpacker_cmd_builder.go b/api/stacks/deployments/compose_unpacker_cmd_builder.go index 20bf56d43..64308fa1a 100644 --- a/api/stacks/deployments/compose_unpacker_cmd_builder.go +++ b/api/stacks/deployments/compose_unpacker_cmd_builder.go @@ -31,6 +31,7 @@ const ( type unpackerCmdBuilderOptions struct { pullImage bool prune bool + forceRecreate bool composeDestination string registries []portainer.Registry } @@ -62,12 +63,13 @@ func (d *stackDeployer) buildUnpackerCmdForStack(stack *portainer.Stack, operati return fn(stack, opts, registriesStrings, envStrings), nil } -// deploy [-u username -p password] [--skip-tls-verify] [--env KEY1=VALUE1 --env KEY2=VALUE2] [...] +// deploy [-u username -p password] [--skip-tls-verify] [--force-recreate] [-k] [--env KEY1=VALUE1 --env KEY2=VALUE2] [...] func buildDeployCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, registries []string, env []string) []string { cmd := []string{} cmd = append(cmd, UnpackerCmdDeploy) cmd = appendGitAuthIfNeeded(cmd, stack) cmd = appendSkipTLSVerifyIfNeeded(cmd, stack) + cmd = appendForceRecreateIfNeeded(cmd, opts.forceRecreate) cmd = append(cmd, env...) cmd = append(cmd, registries...) cmd = append(cmd, stack.GitConfig.URL) @@ -124,12 +126,13 @@ func buildComposeStopCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, return cmd } -// swarm-deploy [-u username -p password] [--skip-tls-verify] [-f] [-r] [--env KEY1=VALUE1 --env KEY2=VALUE2] [...] +// swarm-deploy [-u username -p password] [--skip-tls-verify] [--force-recreate] [-f] [-r] [-k] [--env KEY1=VALUE1 --env KEY2=VALUE2] [...] func buildSwarmDeployCmd(stack *portainer.Stack, opts unpackerCmdBuilderOptions, registries []string, env []string) []string { cmd := []string{} cmd = append(cmd, UnpackerCmdSwarmDeploy) cmd = appendGitAuthIfNeeded(cmd, stack) cmd = appendSkipTLSVerifyIfNeeded(cmd, stack) + cmd = appendForceRecreateIfNeeded(cmd, opts.forceRecreate) if opts.pullImage { cmd = append(cmd, "-f") } @@ -203,6 +206,13 @@ func appendAdditionalFiles(cmd []string, files []string) []string { 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 { cmds := []string{} diff --git a/api/stacks/deployments/deployer_remote.go b/api/stacks/deployments/deployer_remote.go index cc505fcd8..fb56c25f7 100644 --- a/api/stacks/deployments/deployer_remote.go +++ b/api/stacks/deployments/deployer_remote.go @@ -70,7 +70,8 @@ func (d *stackDeployer) DeployRemoteComposeStack( endpoint, OperationDeploy, unpackerCmdBuilderOptions{ - registries: registries, + forceRecreate: forceRecreate, + registries: registries, }, ) } @@ -119,10 +120,10 @@ func (d *stackDeployer) DeployRemoteSwarmStack( defer d.swarmStackManager.Logout(endpoint) return d.remoteStack(stack, endpoint, OperationSwarmDeploy, unpackerCmdBuilderOptions{ - - pullImage: pullImage, - prune: prune, - registries: registries, + pullImage: pullImage, + prune: prune, + forceRecreate: stack.AutoUpdate != nil && stack.AutoUpdate.ForceUpdate, + registries: registries, }) }