Hacker News new | ask | show | jobs
by ex3ndr 2961 days ago
Does anyone knows a very good CD for k8s?

I found that only bitbucket deployments is a good one in terms of simplicity of managing deployments (just like Heroku). Most vendors forces me to use their crappy CI solution for doing CD. Why they want me to migrate to your (very limited) build system? I can pay you for a fancy dashboard, but please, allow me to use whatever i need to build my software. There are many options on the market for CI and you just can't build them for everybody. But good CD is a way to go and easier to manage. Just give me a hook for registering for a new build (say docker image versions) and help me manage this stuff. I have tried Spinnakle, but it is too fragile for me - there are no simple way to install it (k8s even easier!) and UI is too bad for a small project.

Good CD is still missing in k8s ecosystem.

8 comments

We used Drone [1] from a while. It's almost exactly what I want in a CI/CD system, and it runs pretty well on Kubernetes.

On the minus side, the development has been slow, with major breaking changes happening along the way. And in the latest version, the open-source version has been a bit hobbled. In particular, it doesn't support global secrets, so every project to be built has to be created and managed separately. This is not just if it needs build secrets (such as to access private Go packages, NPM modules, Ruby gems, etc.), but it's obviously also required to authenticate with a container registry. We decided to skip that since it means duplicating the same secrets for every single application. We actually reached out to the Drone guys to ask about enterprise pricing, but they didn't respond (!).

(At the moment we're back to building with Semaphore, which is a hosted solution similar to Travis. It's an old-hat CI system that spins up VMs, so it's slow and awkward to work with when it comes to Docker. But it's working okay at the moment.)

I've heard good things about GoCD [2], though. It's next on my list to investigate.

[1] https://drone.io

[2] https://www.gocd.org

Closest I've got was Spinnaker. Support for K8s was very hit and miss (some concepts did not translate properly), but it is getting much better now.
I assume you mean the Spinnaker/K8s v1 provider abstracted away the K8s primatives. The new v2 provider allows you to deploy manifests and supports all K8s objects.
We tried spinnaker and are now using Weave (https://www.weave.works/). It works pretty well, actually. In particular we like that it stores all state in a git repo which is automatically updated.

We have our own monitoring stack, though, so don't use the additional prometheus integrations

Would love to understand more about why you ended up choosing Weave.
I'm enthusiastic about Concourse (https://concourse-ci.org/). It's a pipeline-based CI system based on Yaml configuration files. It's highly flexible and has numerous plugins to interface with third party systems. There's a Helm chart to deploy Concourse to Kubernetes: https://github.com/linkyard/concourse-helm-resource.
I'm awaiting jenkins-x's maturation. I'm looking at some issues for fixing myself but there's still plenty to do. Support is there for GCS and AWS iirc, but it's still very much beta.
Highly recommend Buddy: https://buddy.works/

Great container-native pipelines and has good integration with Kubernetes, along with GKE specific hooks and the ability to run any kubectl command.

Lots of options in CI/CD. None are dominant yet: https://landscape.cncf.io/grouping=landscape&landscape=ci-cd
Gitlab CI has excellent support for k8s but it requires buy in to the whole ecosystem to be truly useful...