Hi. Please I would like to ask how internally it works with workers and network connectivity. What I mean is, does the worker has to have access to GIT for example? If I want to deploy to Kubernetes cluster, I need the kubernetes files. Those are stored in GIT. Does the server downloads those and sends them to worker, or the worker get’s them from GIT by itself.
Welcome to the Octopus Forums and great question about Octopus Workers, essentially workers are the same as Octopus Tentacles but they run tasks on behalf of the Octopus Server. The Octopus server offloads tasks to the workers, this allows you to deploy multiple projects, runbooks and tasks without overloading the Octopus Server host resources.
If you have not seen them yet we have some great documentation that goes into detail about workers, what they do and how to configure them. I will link some below so you can take a look as they explain things better than I can:
Your worker is essentially exactly the same as a Tentacle, if your worker (machine) has access to the internet and is not locked down from accessing certain websites then it will be able to connect to GIT.
Octopus will ‘queue’ the project or task you set on the Octopus Server and it will run on the worker itself on behalf of the Octopus Server (you set this in the project).
I hope that makes sense, if you need anything else in the meantime or further clarification on anything I have mentioned please reach out!
The worker has to have connectivity to the Octopus Server yes, in order for Octopus to send tasks to the worker it needs to be able to communicate with it.
You add the worker in the Octopus Infrastructure tab, just like you add a Tentacle:
As per our documentation you install the Tentacle manager on the machine you are planning on using as a worker, you then add it into Octopus via the UI so the worker needs to be able to communicate with the server in order to do this (it needs to pass health checks etc).
It would depend on what your infrastructure is, if you have a private network with internal IP addresses for your servers and clients then yes, your workers would need to be on the same network.
But if you have a public-facing network (Azure VMs for instance) then as long as your machines can connect to the octopus server then you can register them as workers.
I have just come across this article actually which is one of our blog posts, this is a little easier to read and has a brief overview on what workers are, how to configure them and what they can be used for, it also talks about deploying to Kubernetes.
I hope this answers your question but if it doesn’t let me know and I will try and explain it better for you,