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

Custom script as a deployer #2277

Open
ojhughes opened this issue Jun 18, 2019 · 13 comments
Open

Custom script as a deployer #2277

ojhughes opened this issue Jun 18, 2019 · 13 comments
Labels

Comments

@ojhughes
Copy link
Contributor

Expected behavior

Ability to provide a custom script as a deployer, using the same pattern that allows a custom build script to be used as a builder. This will enable other Kubernetes deployment tools to be leveraged within a Skaffold workflow, such as Kapp or Spinnaker pipeline triggers

Actual behavior

Currently, it is only possible to use kubectl, helm or kustomize as a deployer implementation

@NAlexPear
Copy link

This is important for us as well, since we're using sops for secret decryption across environments. So even though we're happy using kubectl to apply changes to our clusters, the inability to hook into that deploy pipeline means that we can't currently use skaffold

@erandagan
Copy link

erandagan commented Aug 11, 2019

More use cases:

  • Using other configuration & templating solutions like kapitan or plain Jinja2.
  • Mixing helm and kustomize in all sorts of ways
  • As @NAlexPear mentioned, handling secrets using a variety of mechanisms. This is a real pain point that makes it difficult to integrate Skaffold into most of our projects even if we're already using one of the supported deployers. We're currently using the great sealed-secrets as a workaround, but would much rather use our standard KMS solution instead.
  • Support client-side helm templates #1514

@tbarrella
Copy link
Contributor

It seems like this could also reduce the need for #1441

@ojhughes
Copy link
Contributor Author

This is my current workflow
skaffold render | kapp deploy -a $(yq r skaffold.yaml metadata.name) -y -f -

In my case I also let kapp take care of deletion of the deployment so would also be nice to provide an override for skaffold delete

@tstromberg tstromberg added priority/p3 agreed that this would be good to have, but no one is available at the moment. triage/discuss Items for discussion and removed priority/p2 May take a couple of releases labels Apr 20, 2020
@tstromberg
Copy link
Contributor

tstromberg commented Apr 20, 2020

Adding discuss label to see if this is actually feasible or not, given Skaffolds current architecture.

@tstromberg tstromberg removed the triage/discuss Items for discussion label Apr 20, 2020
@balopat
Copy link
Contributor

balopat commented Apr 20, 2020

Adding a deploy script seems like an easy enough thing to do at first, but there needs to be careful consideration put into the design. A solution should be able to tie nicely into logging, debugging, render, port forwarding. Extracting all this behavior into an interface is not a small feature. We recognize that there would be value here - and we would love to tackle this carefully but it is at the moment not the highest on our list of things to focus on.

@horacimacias
Copy link

for logging, wouldn't it be possible to also support logging via a custom script so at least people using custom deployers can use a custom logging script?

Similar thing for debugging.

I'm not saying it's a 5min job but at least we can allow people to craft their own scripts (which they probably already have anyway) and use the skaffold "loop".

@nkubala
Copy link
Contributor

nkubala commented Jul 13, 2020

@horacimacias you're right that definitely would be possible, and in all likelihood the route we'd want to take when implementing this. as @balopat mentioned we'd need to extract all of this behavior into an interface that would be fulfilled by the custom scripts, and as he also mentioned this is definitely not a small undertaking.

we definitely hear the requests for this, and would love to see it implemented! at the moment our team's bandwidth is unfortunately already stretched pretty thin so I don't see us getting to this this quarter. designs and PRs are always welcome though 🙏

@nkubala nkubala added this to the Icebox [P2+] milestone Sep 1, 2020
@nkubala nkubala added priority/p2 May take a couple of releases and removed priority/p3 agreed that this would be good to have, but no one is available at the moment. labels Sep 17, 2020
@nkubala nkubala removed this from the Icebox [P2+] milestone May 11, 2021
@tejal29
Copy link
Contributor

tejal29 commented Mar 28, 2022

I want to re-echo @nkubala's sentiments. Would love to see some community contributions!

@sid-hbm
Copy link

sid-hbm commented Jul 4, 2022

What happened to this feature request? Was it implemented (if yes, is there any documentation about it). Thank you very much for willing to support this feature.

@rvadim
Copy link

rvadim commented Jul 14, 2022

bring your own tools - Skaffold has a pluggable architecture to integrate with any build or deploy tool

I spent a whole day realizing that I can't really use my deployment tools(

@aaron-prindle
Copy link
Contributor

This has now been prioritized as part of our roadmap. We currently have no exact dates as of when to expect this but the team is now actively investigating/designing a solution here. I believe we will have a design to submit (will be submitted in OSS to our docs-v2/design-proposal area) in ~3-4 weeks. I will update the thread here w/ more information and updates

@giepa
Copy link

giepa commented Dec 7, 2023

Has there been any progress on this?

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

No branches or pull requests