kubernetes-elastic-agents
kubernetes-elastic-agents copied to clipboard
Cluster cannot be used by more than one Go Server without namespace separation
When the same cluster is used by 2 (or more) Go Servers, each Go Server plugin instance, based on the timeout for registering kills the other Go Server pods.
Example: Go Server A creates an elastic agent A Elastic agent A is running a job that takes more than the register timeout defined in Go Server B Go Server B terminates Elastic agent A
From looking at the code, the criteria used to obtain the list of pods to check for register timeouts doesn't take into account the Go Server. It considers all the pods irregardless of the Go Server.
@Matrikss Which version of the plugin and of GoCD server are you using?
I wonder if the "Namespace" configuration parameter is supposed to be used for this. I'd assume you'd set the two GoCD servers to use different namespaces, and not the default, which is "default" namespace.
/cc @sheroy @GaneshSPatil
@arvindsv The version of the plugin is the 3.0.0-156
Both Go Servers were using the same default namespace.
@Matrikss Oops. Nearly forgot to respond. For now, having the two GoCD servers use a different namespace should take care of it. We're considering something like a label to use as a part of the query selector. However, the challenge is that the pod YAML is not always controlled by GoCD. Users can control it. So, we will need to make sure that they use the right label in the pod YAML, that they have set up at the cluster level.
One of us will reply with more information, if anything comes of it. Thank you!
I think we should be able to apply the server identifier as a label and filter using that. As long as the 2 different servers use different identifiers, things should be allright.
Agreed with @ketan's idea here. This would be quite nice for us.