* fix: Graceful shutdown for the API server (#18642) (#20981)
* fix: Graceful shutdown for the API server (#18642)
Closes#18642
Implements a graceful shutdown the the API server. Without this, ArgoCD API server will eventually return 502 during rolling update. However, healthcheck would return 503 if the server is terminating.
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
Co-authored-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
Co-authored-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* Init server only once, but keep re-initializing listeners
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Check error for SetParamInSettingConfigMap as needed after fresh master
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Prevent a data race
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Remove unused variable, don't pass lock when not necessary
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Try overriding URL instead of additional URLs
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Use a more specific url
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
---------
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
Co-authored-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
Co-authored-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* Use a custom signal for graceful restart
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Re-run tests
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
---------
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
Co-authored-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
Co-authored-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* Populate destination name when destination server is specified
Signed-off-by: Adrian Aneci <aneci@adobe.com>
* Lint nit
Signed-off-by: Adrian Aneci <aneci@adobe.com>
* Trigger CI
Signed-off-by: Adrian Aneci <aneci@adobe.com>
---------
Signed-off-by: Adrian Aneci <aneci@adobe.com>
* chore: reduce default max payload size in webhooks to 50MB
Signed-off-by: pashakostohrys <pavel@codefresh.io>
* chore: reduce default max payload size in webhooks to 50MB
Signed-off-by: pashakostohrys <pavel@codefresh.io>
* chore: reduce default max payload size in webhooks to 50MB
Signed-off-by: pashakostohrys <pavel@codefresh.io>
* chore: reduce default max payload size in webhooks to 50MB
Signed-off-by: pashakostohrys <pavel@codefresh.io>
---------
Signed-off-by: pashakostohrys <pavel@codefresh.io>
* fix: Graceful shutdown for the API server (#18642)
Closes#18642
Implements a graceful shutdown the the API server. Without this, ArgoCD API server will eventually return 502 during rolling update. However, healthcheck would return 503 if the server is terminating.
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
Co-authored-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
Co-authored-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* Init server only once, but keep re-initializing listeners
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Check error for SetParamInSettingConfigMap as needed after fresh master
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Prevent a data race
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Remove unused variable, don't pass lock when not necessary
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Try overriding URL instead of additional URLs
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Use a more specific url
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
---------
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
Co-authored-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
Co-authored-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
* Adding skipSchemaValidation flag
Signed-off-by: Daniel Mosesson (soandos) <danielmosesson@gmail.com>
* Adding specific test for skip schema validation
Signed-off-by: Daniel Mosesson (soandos) <danielmosesson@gmail.com>
* Fix merge conflict
Signed-off-by: Daniel Mosesson (soandos) <danielmosesson@gmail.com>
* Fixing index.yaml to support helm 3.16
Signed-off-by: Daniel Mosesson (soandos) <danielmosesson@gmail.com>
---------
Signed-off-by: Daniel Mosesson (soandos) <danielmosesson@gmail.com>
Co-authored-by: Daniel Mosesson (soandos) <danielmosesson@gmail.com>
* fix: Allow to delete repos with invalid urls (#20921)
Fixes#20921
Normalization of repo url is attempted during repo deletion before comparison with existing repos. Before this change, it'd fail on invalid urls and return "", resulting in permission denied. This ended up in a state where people can add repos with invalid urls but couldn't delete them. Return raw repo url if url parsing failed. Add a test to validate the deletion can be performed and make sure it fails without the main change.
This needs to be cherry-picked to v2.11-2.13
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* Don't modify the original NormalizeGitURL
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
---------
Signed-off-by: Andrii Korotkov <andrii.korotkov@verkada.com>
* fix(server): make a copy of secret objects when listing from the informers
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>
* fix(server): make a copy of secret objects when listing from the informers
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>
* fix(server): make a copy of secret objects when listing from the informers
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>
* fix(server): make a copy of secret objects when listing from the informers
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>
* fix(server): make a copy of secret objects when listing from the informers
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>
* fix(server): make a copy of secret objects when listing from the informers
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>
* e2e
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>
---------
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>
* chore: rename force-prompts-enabled to prompts-enabled flag name
Signed-off-by: pashakostohrys <pavel@codefresh.io>
* chore: rename force-prompts-enabled to prompts-enabled flag name
Signed-off-by: pashakostohrys <pavel@codefresh.io>
---------
Signed-off-by: pashakostohrys <pavel@codefresh.io>
* Add `Prompt`, with `prompts.enabled` setting in `argocd-cm`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Make `SettingsOpts`, `SettingsOpts.ArgocdCMPath`, `SettingsOpts.CreateSettingsManager()` and `commandContext.CreateSettingsManager()` exportable
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add `prompt_test.go`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Refactor `NewPrompt()` and move into new package `utils`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Update `NewPrompt()` to use local config
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add `NewConfigurationCommand()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Move `prompt_test.go`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Remove `prompt_test.go` for now
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add back and update `prompt_test.go`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add `configuration_test.go`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Fix linting issues
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Fix linting issues
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Reverse early-termination logic in `Confirm()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Rename `ArgocdCMPath` to `argocdCMPath`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Rename `SettingsOpts` to `settingsOpts`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Rename `CreateSettingsManager()` to `createSettingsManager()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Rename `configuration` to `configure`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Further rename `configuration` to `configure`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Remove redundant Argo CD ConfigMap logic
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Fix terminal output spacing
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Make `argocd configure` use local config value as the default value for `--prompts-enabled`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add global CLI flag `--force-prompts-enabled`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Update existing `prompt_test.go` test cases
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add test case for `(p *Prompt).Confirm()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add test cases for `GetBoolFlagWithFallback()` to `env_test.go`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Format imports
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Further format imports and remove unused variable
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Again format imports
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add fallback to `GetPromptsEnabled()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Fix bug in `GetPromptsEnabled()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Fix missing import
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add auto-generated docs for `argocd configure`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add auto-generated docs for new global CLI flag `--force-prompts-enabled`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Update `NewPrompt()` to receive a `bool` rather than `*apiclient.ClientOptions` arg
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Remove arg `fallback` from `GetPromptsEnabled()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add arg `useCLIOpts bool` to `GetPromptsEnabled()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Make `config.LoadFlags()` exportable
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Add tests for `GetPromptsEnabled()`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Fix linting errors in tests
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* Run `make codegen-local`
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
---------
Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
* fix: [#15949] split git revision metadata by newline not pipe symbol
pipe symbol '|' could appear in username or commit message body
Signed-off-by: Petr Studeny <studenyp@gmail.com>
* test: add test
Signed-off-by: Blake Pettersson <blake.pettersson@gmail.com>
* Update util/git/client_test.go
Co-authored-by: Petr Studeny <studenyp@gmail.com>
Signed-off-by: Blake Pettersson <blake.pettersson@gmail.com>
* test: fix test
Signed-off-by: Blake Pettersson <blake.pettersson@gmail.com>
---------
Signed-off-by: Petr Studeny <studenyp@gmail.com>
Signed-off-by: Blake Pettersson <blake.pettersson@gmail.com>
Co-authored-by: Petr Studeny <studenyp@gmail.com>