Skip to content
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

Remove webhooks from Operator #1417

Open
2 of 4 tasks
bernot-dev opened this issue Feb 24, 2025 · 0 comments
Open
2 of 4 tasks

Remove webhooks from Operator #1417

bernot-dev opened this issue Feb 24, 2025 · 0 comments
Assignees
Milestone

Comments

@bernot-dev
Copy link
Collaborator

bernot-dev commented Feb 24, 2025

Over time, validating and mutating webhooks have been a source of several types of bugs for GMP:

  1. Zero-node problems: When the operator is not scheduled because no nodes are available, webhooks fail and reject GMP Custom Resources.
  2. Startup races: If a user installs GMP and PodMonitorings (for instance) at the same time, the webhook server may not yet be available, and the PodMonitoring will be rejected.
  3. Instability problems: Any time the operator experiences downtime, CRDs validated/mutated by webhooks will be rejected.
  4. Security concerns: Theoretically, if the operator is compromised, the webhook server could allow the attacker a vector to expand the attack.
  5. Webhook server certificates: The operator currently has to generate and configure TLS certificates for the webhook server, which impacts several areas.

Broadly, the approach to remediate all of these issues is removal of webhooks and the webhook server, to be replaced with built-in Kubernetes validation using OpenAPI schemas and Common Expression Language (CEL).

Affected Custom Resources:

  • ClusterNodeMonitorings
  • Rules/ClusterRules/GlobalRules
  • OperatorConfigs
  • PodMonitorings/ClusterPodMonitorings

Related work to date includes:

@bernot-dev bernot-dev added this to the 0.16 milestone Feb 24, 2025
@bernot-dev bernot-dev self-assigned this Feb 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant