-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hard-coded service name precludes deployment of multiple operators #27
Comments
Obviously deploying the operator multiple times is not a typical workflow for operators since the service account should get cluster roles that allow it to deploy in multiple namespaces... this is just a case where I wanted to test a newer version of the operator without modifying the older one. |
It looks like it's not possible to deploy a cluster-wide operator (the deployment sets WATCH_NAMESPACE) so it should be fairly straightforward to just append the namespace to the service account name. I'll submit a PR to do so. |
Hi @grzleadams, Sorry for the delayed response! So, in a high level thought about this issue, I think that we first need to address the multiple installations of pulp (in pulp-operator repo), then we can update the Chart with the necessary changes. |
I'm ambivalent; I think there's a lot of value in providing the capability to deploy a cluster-scoped operator, but I also have significant concerns with the security and operational implications of such operators. Most operators/controllers that I've seen (GitHub's ARC, for example) default to cluster scope but can be restricted to a single namespace by the user, which is the approach that makes the most sense to me. The main problem with the multiple-controller deployment method is that all of the controllers in a cluster typically need to be upgraded simultaneously if there are CRD changes, which can be painful (and why I normally opt for a single, cluster-wide controller deployment). |
We are on the same page . 👍
I agree.
This is something that we also encountered in some internal deployments (and indeed, it was very painful to do the upgrades).
@dkliban, do you think that we should bring back this discussion of multiple Pulp installations in the next deployers meeting? Do you agree with the above statements? |
@git-hyagi We should consider supporting multiple Pulp deployments with one controller. I agree with the concerns your outline above. Though I think we could deliver this feature initially without HA support. Let's discuss next week. |
For Pulp specifically, or with operators in general? I wasn't using Pulp before that change to namespace-specific operator scope was made, so unfortunately I can't really comment on that performance. But for other operators, I haven't really had a problem with performance when they're watching the whole cluster. I will say the Pulp operator is somewhat chattier than others so it's unclear to me whether the reconciliation is actually using more cycles than others or if it's just louder about it (for example, Pulp operator does reconciliation when any metadata updates occur, and things like Rancher will update otherwise-useless metadata a lot). |
And to your other two points re: cluster-scoped controllers:
I'm not convinced this is really all that important for the operator itself. If you're in a situation where your Pulp installation requires reconciliation and the operator is dead, you probably have bigger problems. If the operator goes down by itself, though, the Pulp deployments shouldn't be impacted.
You can use the CR metadata as a key to avoid name collisions. The combination of |
The serviceaccount name is not reliant on the release name so there can only be one per cluster. When trying to deploy a second operator instance to another namespace, you'll get an error like this:
The text was updated successfully, but these errors were encountered: