Comments (6)
Fixed in #143 and a new test covering this at
from applicationset-progressive-sync.
I've recently tested 0.6.0 and confirm that this issues is gone now 👍🏽
from applicationset-progressive-sync.
hello @maruina I had to re-open this ticket as I believe the issue is still there. I was able to reproduce it with following configuration:
we have only 1
cluster registered in argocd labeled as environment: production
progressive sync object looks like this:
apiVersion: argoproj.skyscanner.net/v1alpha1
kind: ProgressiveSync
metadata:
annotations:
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
labels:
argocd.argoproj.io/instance: argocd-apps
name: aws-load-balancer-controller
namespace: argocd
spec:
appSetRef:
name: aws-load-balancer-controller
stages:
- maxParallel: 1
maxTargets: 1
name: canary rollout staging
targets:
clusters:
selector:
matchLabels:
environment: staging
- maxParallel: 2
maxTargets: 99999
name: finish rollout staging
targets:
clusters:
selector:
matchLabels:
environment: staging
- maxParallel: 1
maxTargets: 1
name: canary rollout production
targets:
clusters:
selector:
matchLabels:
environment: production
- maxParallel: 2
maxTargets: 99999
name: finish rollout production
targets:
clusters:
selector:
matchLabels:
environment: production
status:
conditions:
- lastTransitionTime: "2022-02-03T12:14:52Z"
message: Reconciliation in progress
reason: Progressing
status: Unknown
type: Ready
lastSyncedStage: canary rollout staging
lastSyncedStageStatus: StageProgressing
observedGeneration: 1
progressive sync logs:
2022-02-03T12:14:52.886Z INFO controller-runtime.manager.controller.progressivesync progressive sync started {"reconciler group": "argoproj.skyscanner.net", "reconciler kind": "ProgressiveSync", "name": "aws-load-balancer-controller", "namespace": "argocd"}
2022-02-03T12:14:52.886Z INFO controller-runtime.manager.controller.progressivesync stage reconciled {"reconciler group": "argoproj.skyscanner.net", "reconciler kind": "ProgressiveSync", "name": "aws-load-balancer-controller", "namespace": "argocd", "stage": "canary rollout staging", "status": "StageProgressing"}
2022-02-03T12:14:52.967Z INFO controller-runtime.manager.controller.progressivesync progressive sync started {"reconciler group": "argoproj.skyscanner.net", "reconciler kind": "ProgressiveSync", "name": "aws-load-balancer-controller", "namespace": "argocd"}
2022-02-03T12:14:52.968Z INFO controller-runtime.manager.controller.progressivesync stage reconciled {"reconciler group": "argoproj.skyscanner.net", "reconciler kind": "ProgressiveSync", "name": "aws-load-balancer-controller", "namespace": "argocd", "stage": "canary rollout staging", "status": "StageProgressing"}
so it is stuck on first stage name: canary rollout staging
with status:
status:
conditions:
- lastTransitionTime: "2022-02-03T12:14:52Z"
message: Reconciliation in progress
reason: Progressing
status: Unknown
type: Ready
lastSyncedStage: canary rollout staging
lastSyncedStageStatus: StageProgressing
observedGeneration: 1
there are no clusters yet known by argo tagged with environment: staging
and our expectation is that controller should skip stage if no clusters were targeted for that stage.
from applicationset-progressive-sync.
Hey, thank you very much for all the details. Hopefully, I will be able to reproduce the issue in a test and then a fix.
I should start working on this in the next couple of days.
from applicationset-progressive-sync.
@maruina I've proposed PR #159
not sure if that can be considered as legit fix or workaround but that worked for me.
from applicationset-progressive-sync.
Fixed in #159
from applicationset-progressive-sync.
Related Issues (20)
- Infinite loop when multiple stage targeting the same clusters
- Scope the controller to a single namespace HOT 1
- Support maxTargets and maxParallel with % values
- Improve logging HOT 1
- Infinite loop when Applications are `Synced` and `Healthy` HOT 1
- Cannot store a stage state as annotation in Applications HOT 1
- Stable/Deterministic Scheduling
- Allow pruning when syncing HOT 2
- Scope the controller to multiple namespaces
- Will progressive sync controller support multi environment environment promotion? HOT 4
- Sometimes stages executed in parallel HOT 9
- Update dependecies HOT 1
- Respect Application retry settings
- Use case for multiple environments (DEV, QA/UAT/, PROD)?
- Upgrade dependency "github.com/argoproj-labs/applicationset"
- ArgoCD Progressive Syncs feature clarification
- Add the ability to cancel a rollout HOT 2
- Add support for targeting clusters by Name
- Remove predicate.GenerationChangedPredicate{} HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from applicationset-progressive-sync.