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

Don’t redeploy twice the same manifest in a dev loop #843

Merged
merged 1 commit into from
Jul 25, 2018

Conversation

dgageot
Copy link
Contributor

@dgageot dgageot commented Jul 20, 2018

Signed-off-by: David Gageot david@gageot.net

@dgageot dgageot force-pushed the dont-redeploy branch 2 times, most recently from 0bb50ae to 1c31238 Compare July 21, 2018 07:26
// Only redeploy modified or new manifests
// TODO(dgageot): should we delete a manifest that was deployed and is not anymore?
updated := k.previousDeployment.diff(manifests)
logrus.Debugln(len(manifests), "manifests to deploy.", len(manifests), "are updated or new")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: add space after deploy.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI, Debugln will add a space between values.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, TIL

@@ -79,12 +80,18 @@ func (k *KubectlDeployer) Deploy(ctx context.Context, out io.Writer, builds []bu
return nil, errors.Wrap(err, "replacing images in manifests")
}

err = kubectl(manifests.reader(), out, k.kubeContext, k.Flags.Global, "apply", k.Flags.Apply, "-f", "-")
// Only redeploy modified or new manifests
// TODO(dgageot): should we delete a manifest that was deployed and is not anymore?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My opinion here would be no, because

  1. I like the experience of having a deployment recreated by skaffold if I delete it manually (read: accidentally) through kubectl/cloud console, and
  2. this would mean you could get skaffold into a state where it's not consistent with the configuration in the skaffold.yaml, which is a weird UX

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand. This PR will not anymore recreate deployments that you accidentally deleted. In exchange, dev cycles are much faster. wdyt?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a tradeoff, but I guess if you do something silly like delete a deployment you could always just restart skaffold and have those deployments recreated. I could be convinced that speed is more important here.

@dgageot dgageot force-pushed the dont-redeploy branch 3 times, most recently from 3afc4eb to af58de1 Compare July 24, 2018 03:17
@nkubala
Copy link
Contributor

nkubala commented Jul 24, 2018

Failing test looks like it could be a flake, try retriggering the test run

Signed-off-by: David Gageot <david@gageot.net>
@dgageot dgageot merged commit 44b1fc6 into GoogleContainerTools:master Jul 25, 2018
@dgageot dgageot deleted the dont-redeploy branch December 28, 2018 07:10
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.

2 participants