lsc-sde / lsc-sde

Lancashire and South Cumbria Secure Data Environment
MIT License
3 stars 0 forks source link

Enable Container Registry GitOps #6

Open qcaas-nhs-sjt opened 10 months ago

qcaas-nhs-sjt commented 10 months ago

Enable GitOps on Container Registries so that they build automatically when the key branches are updated

qcaas-nhs-sjt commented 10 months ago

@vvcb @m1p1h rather irritatingly Azure ACR agent pools are not supported in UK South and as this is a private repository github actions cannot see it without more runners. Our policies won't let me release it into north europe (despite it not containing any sensitive data) as a result I cannot implement gitops as planned. Am investigating other options now

vvcb commented 10 months ago

@qcaas-nhs-sjt - this was always a problem. The only way I got around this previously was to make ACR available on the public network, run az acr build and then make it private again ❗ There probably is a better way but I never got around to investigating 😞 .

There are a few options described here. We can always ask Phoenix/Microsoft re how we solve this.

qcaas-nhs-sjt commented 10 months ago

made some progress on this, but not fully working yet:

I've created a gitrunner scaleobject using keda, that will spin up github job runners as needed, these can talk to the azure container registry as they are on the same network. An example of this is on the docker-datascience-notebook repository.

This does appear to be largely working but the container images are so large that they are reaching the resource limits for the container so it cannot currently finish the build process. To account for this I'm going to look at creating a second node pool specifically for the job runners to keep them isolated from the rest of the compute resources.

Will hopefully finish this up on thursday

vvcb commented 10 months ago

Should we reach out to Microsoft support for advice? We can't be the only ones facing this issue.

qcaas-nhs-sjt commented 10 months ago

I'm happy to talk this through with MS but from experience I suspect microsoft will advise us to either:

of course if you go down the route of the last of these I would question why we would want Azure Container Registries anyway as we could simply post these open source projects directly into dockerhub where they can be used by anyone that wants them.

Whatever we do we need to have clear guidelines and guardrails to say what is acceptable to store inside of a registry and what is not.