3

I'm looking for a tool/service that will achieve a similar result as Heroku Review Apps using Google services.

When a new pull-request is created in Github:

  • Create new Cloud Build trigger for it with a given template configuration.
  • When done with build, create new deployment for it in Kubernetes Engine given template configuration.
  • Provide the public URL in the Github PR

When PR is closed:

  • Remove trigger, container and deployment
  • Remove public URL from Github pull-request.
  • Are you restricted to github or are other git-servers also an option? – 030 Jan 12 at 15:32
  • I am restricted to using Github, but if the tool has support for others as well that would be a plus for any future changes – mikabytes Jan 13 at 16:33
0

I don’t know of a specific tool but I have setup a lot of webhook handlers on OKD kubernetes to do git driven updates to kubernetes. All the scripts are on GitHub as OCD. The tools I used are:

  1. adnanh/webook a go binary that you configure to catch git webhooks and run scripts. Here is my hooks.json config to match GitHub release events and run a build script on openshift kubernetes. Looking at the docs there are PR events you can match on. So you should be able to setup Webhooks to fire on PRs and trigger s2i builds.

  2. hub is GitHubs official command-line tool. I put it into my tools image that runs my webhooks. It has some pull request commands. I haven’t checked them against your stated requirements. Hub is just a wrapper to their API so worst case you would need to use curl to update PRs.

  3. Helm is the installer/template engine I use for creating apps. Helmfile is an excellent extension. So here is a generic “deployer” helm chart that can spin up a deployment. So OCD responds to GitHub events of new Helmfile declarative configuration being pushed and deploys or updated any helm releases modified in git.

For builds I had to do quite a bit to have an OKD container build tag the final container image with the GitHub release tag which is a generic “builder” helm chart. I think that is necessary as each PR will need by tagged with the PR number in the container registry to deploy from that specific tag. I haven’t ever tried to get OKD to build a refs/pull but I would be shocked it didn’t work as expected.

So while OCD doesn’t yet spin up builds and deploys based on PR events it appears is likely that it could be extended to do that. We are currently migrating our apps from our in-house scripts over to OCD. After that “PR previews” it could be a very cool feature to add. Feel free to raise a feature request.

0

I have not try it myself yet, but k8s-deploy looks promising.

Other potential products that I have not tried yet:

My aim is to evaluate these tools and I hope that you could try the same and reply to this post. As soon as I find out what tool works nice I will let you know.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.