operator

module
v1.45.0-0.dev Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2026 License: Apache-2.0

README

Calico Operator

Docker image

This repository contains a Kubernetes operator which manages the lifecycle of a Calico or Calico Enterprise installation on Kubernetes or OpenShift. Its goal is to make installation, upgrades, and ongoing lifecycle management of Calico and Calico Enterprise as simple and reliable as possible.

This operator is built using the operator-sdk, so you should be familiar with how that works before getting started.

Getting Started Running Calico

There are many avenues to get started running Calico depending on your situation.

Get Started Developing

See the developer guidelines for more information on designing, coding, and testing changes.

Directories

Path Synopsis
api module
hack
gen-versions command
release command
release/internal/setup
Package setup resolves the release defaults that differ between the Calico/Enterprise and Calico Cloud variants (publish registry/image, release-version format, GitHub-release default) at init time, keyed off the VARIANT env var.
Package setup resolves the release defaults that differ between the Calico/Enterprise and Calico Cloud variants (publish registry/image, release-version format, GitHub-release default) at init time, keyed off the VARIANT env var.
internal
pkg
apigroup
Package apigroup tracks which Calico API group the operator should configure on the workloads it manages.
Package apigroup tracks which Calico API group the operator should configure on the workloads it manages.
common
GetWindowsNodes returns Windows nodes, optionally filtering the list of nodes with the given filter functions.
GetWindowsNodes returns Windows nodes, optionally filtering the list of nodes with the given filter functions.
common/discovery
Package discovery exposes helpers for detecting cluster shape (provider, multi-tenancy, served APIs) at operator startup.
Package discovery exposes helpers for detecting cluster shape (provider, multi-tenancy, served APIs) at operator startup.
components
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
controller
Package controller holds the controller-phase inputs a reconcile hands to a variant extension.
Package controller holds the controller-phase inputs a reconcile hands to a variant extension.
controller/logstorage/esutils
This file contains functions common to the controllers to help them interact with elasticsearch.
This file contains functions common to the controllers to help them interact with elasticsearch.
controller/migration/convert
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
controller/migration/datastoremigration
Package datastoremigration provides utilities for checking DatastoreMigration CR state from the operator's controllers.
Package datastoremigration provides utilities for checking DatastoreMigration CR state from the operator's controllers.
controller/podiprecovery
Package podiprecovery contains a small controller that watches Kubernetes Nodes for host-IP changes (the address set the kubelet would put in `status.podIPs` for a hostNetwork pod: InternalIP-preferred, ExternalIP fallback) and deletes operator-managed host-networked pods whose status.podIPs no longer matches that set.
Package podiprecovery contains a small controller that watches Kubernetes Nodes for host-IP changes (the address set the kubelet would put in `status.podIPs` for a hostNetwork pod: InternalIP-preferred, ExternalIP fallback) and deletes operator-managed host-networked pods whose status.podIPs no longer matches that set.
controller/status
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
dns
enterprise/kubecontrollers
Package kubecontrollers holds the enterprise es-calico-kube-controllers assembly (a distinct deployment the logstorage controller reconciles) and the enterprise kube-controllers cluster role rules shared with the calico-kube-controllers modifier in pkg/enterprise/installation.
Package kubecontrollers holds the enterprise es-calico-kube-controllers assembly (a distinct deployment the logstorage controller reconciles) and the enterprise kube-controllers cluster role rules shared with the calico-kube-controllers modifier in pkg/enterprise/installation.
extensions
Package extensions is the seam other product variants (today just Calico Enterprise) use to layer variant-specific behavior onto the core operator's render output, so core code never branches on variant.
Package extensions is the seam other product variants (today just Calico Enterprise) use to layer variant-specific behavior onto the core operator's render output, so core code never branches on variant.
extensions/extensionstest
Package extensionstest holds shared helpers for exercising an extension's Modify dispatch against raw object lists.
Package extensionstest holds shared helpers for exercising an extension's Modify dispatch against raw object lists.
imageoverride
Package imageoverride is a leaf package (no render/operator dependencies) that holds the image override table.
Package imageoverride is a leaf package (no render/operator dependencies) that holds the image override table.
render
This renderer is responsible for all resources related to a Guardian Deployment in a multicluster setup.
This renderer is responsible for all resources related to a Guardian Deployment in a multicluster setup.
render/common/rbacmanagement
Package rbacmanagement reads the admin-owned gate that switches the RBAC management UI on for a cluster.
Package rbacmanagement reads the admin-owned gate that switches the RBAC management UI on for a cluster.
tls
url
Add dependencies used by the build but not by the code to this file.
Add dependencies used by the build but not by the code to this file.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL