Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add flagger canary support #218

Merged
merged 5 commits into from
Sep 2, 2021

Conversation

daviddelucca
Copy link

@daviddelucca daviddelucca commented Sep 2, 2021

Context

We are using Kubedog in our pipeline to watch rollouts and now we are moving to Flagger to have Canary Deployment but Kubedog doesn't support it.

Proposal

Since Flagger is a popular operator for Kubernetes, we would like to add support to Flagger Canary. The changes are isolated: we have created a new tracker specific for Canary so it won't impact in other resources.

My only concern is just about a custom specific configuration for Canary:

func setDefaultCanarySpecValues(spec *MultitrackSpec) {
	setDefaultSpecValues(spec)
	*spec.AllowFailuresCount = 0
}

In a Canary deployment, we don't want to "keep trying" a rollout: if it fails, it must stop. Also I don't think it's a good idea to let people pass AllowFailuresCount because could lead a mistakes like eternal loopings.

@fandujar
Copy link

fandujar commented Sep 2, 2021

Solves #173

@distorhead
Copy link
Member

Hi! This looks like a very good starting point of supporting flagger Canary, because it is already useful to determine Canary readiness.

The next step could be adding detailed subtrackers for Deployments (and consequently Pods) that Canary creates during its operation, show logs of some pods etc.

Thanks! 👍

@distorhead
Copy link
Member

What about AllowFailuresCount, I think it is ok to omit this param for Canary. Maybe we need to refactor (a little bit later) MultitrackSpec params and make a separate supported options structs for each resource kind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants