Concourse Helm Chart with Windows Workers

Hey all,

I was interested in contributing some windows worker support to the concourse helm chart.

I’ve made some basic changes to my helm fork and windows workers appear to be working (on AKS with Windows container preview) working successfully using some basic hello-world jobs.

I’m looking for some guidance and feedback on how to get this merged (this is my first time contribution to a helm chart) and what changes you’d want to see to get it there:

fork diff: https://github.com/helm/charts/compare/master...greenhouse-org:concourse-windows-workers

deployment & configuraton scripts for AKS: https://github.com/greenhouse-org/k8s-concourse-windows

3 Likes

Wow, this is super cool! If I understand correctly, these additions add the ability to launch Concourse workers within proper Windows containers? Nice!

Also, is “Greenhouse Org” a coincidence to “Greenhouse” (https://github.com/cloudfoundry/garden-windows)? Or is this actually adding a new backend within Concourse proper for Windows containers??

In either case, it’s really cool to see Windows containers executing tasks. I believe @cirocosta has been recently managing various issues related to the Helm chart for Concourse, so just tagging him to bring him into the conversation.

Hey @micahyoung , that’s pretty cool!

Thanks for tagging @edtan :grin:

I’m looking for some guidance and feedback on how to get this merged

We’ve been centralizing all of the code submission & review in the helm/charts repository , so going through the usual steps there is all that’s needed (see CONTRIBUTING.md):

  • create an issue prefixed with [stable/concourse]
  • tag the maintainers (cirocosta, william-tran, YoussB)
  • ensure that you got the PR checklist completed (when you submit through the GitHub UI, it gives you a template to fill with the relevant info)

We’ll be happy to help & review :grin:


If you have any questions, just let me know!

Thanks @edtan,

If I understand correctly, these additions add the ability to launch Concourse workers within proper Windows containers?

Yeah, this only enables Houdini-based Windows Workers (the default used by concourse.exe worker on Windows). For that reason, I omitted many of the environment variables that didn’t appear necessary (baggageclaim, etc) and pretty much just added the worker key management. Conveniently, the bind mounts for those keys just works thanks to k8s.

Or is this actually adding a new backend within Concourse proper for Windows containers??

I wish it was proper nested containers! This just puts the worker in a container - which is still a big advantage over running the worker via a bosh-based job running on a bare VM, since you can use any container image you want, so long as you put concourse.exe in there. All tasks will still omit an image-resource and to customize the image, you’d have to redeploy your worker.

I am formerly of the Garden Windows team though :wink:. This greenhouse-org is just our fork org for OSS contributions. And I used AKS in the deployment scripts since at the moment, it’s the easiest public IaaS to test with but definitely we’ll be trying this out against PKS and other k8s with Windows offerings.

1 Like

Thanks @cirocosta,

I’ll give that a shot. It’s a bit of a spare-time effort currently but hopefully I’ll open a PR this afternoon. Also, given k8s with Windows workers stuff is pretty fresh, will a Windows environment be needed/useful to test? I’m happy to share my AKS setup.

1 Like

oooh I see!

will a Windows environment be needed/useful to test? I’m happy to share my AKS setup.

thanks for being so forthcoming! I think for now just the results are enough - we have two testing environments for the Chart at the moment (GKE and PKS), and I’ve heard that Windows workers are (were?) in beta on PKS, so we could perhaps leverage that on our infra too :thinking: I’ll bring that up with the team next week!

Thank you!!

Quick update: I’m in the process of testing my forked chart against PKS with Windows Workers. Once I can confirm it works there (since I’ve already confirmed it works for AKS), I’ll create the PR.

1 Like