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

[release-v1.34] Auto pick #2658: Prototype: IP pool controller #3253

Conversation

caseydavenport
Copy link
Member

Cherry pick of #2658 on release-v1.34.

#2658: Prototype: IP pool controller

Original PR Body below

Description

More capable IP pool management controller in the operator.

It is meant to enable a few key use-cases:

  • Installing multiple IP pools at install time via the operator.
  • Incorporating IP pools not created via the operator into the operator's logic.
  • Allow modification of IP pools post-install-time via the operator API.

The standard install-time flow is this:

  • The core controller still gets the Installation and performs defaulting on it. It then waits for IP pools to exist.
  • The new IP pool controller gets the installation, defaults and/or extracts IP pools from it, and creates them.
  • The core controller sees the new pools and continues.

The IP pool controller will refuse to update existing IP pools, or delete IP pools, if the Calico API server is not running. This ensures we have proper validation and defaulting enforced, while allowing a small window using the crd.projectcalico.org API to bootstrap the cluster.

On upgrade, the IP pool controller will attempt to take over control of any IP pools in the cluster that match those in the Installation resource. This allows the operator to assume control of IP pools it previously had created. If there are IP pools present that are NOT in the Installation (and not owned by the controller), they will be ignored by the controller.

Other changes in this PR:

  • Add a "Name" field to allow configuration of IP pool name.

For PR author

  • Tests for change.
  • If changing pkg/apis/, run make gen-files
  • If changing versions, run make gen-versions

This PR includes a handful of termination / uninstall changes that are made necessary by the new FV tests added for the IP pool controller exposing an existing bug that is fixed by:

For PR reviewers

A note for code reviewers - all pull requests must have the following:

  • Milestone set according to targeted release.
  • Appropriate labels:
    • kind/bug if this is a bugfix.
    • kind/enhancement if this is a a new feature.
    • enterprise if this PR applies to Calico Enterprise only.

@caseydavenport caseydavenport requested a review from a team as a code owner March 20, 2024 17:33
@marvin-tigera marvin-tigera added this to the v1.34.0 milestone Mar 20, 2024
@caseydavenport caseydavenport merged commit 6d76b07 into tigera:release-v1.34 Mar 20, 2024
2 checks passed
@caseydavenport caseydavenport deleted the auto-pick-of-#2658-origin-release-v1.34 branch March 20, 2024 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants