calico

module
v1.45.0-0.dev-o...-5dec119 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2026 License: Apache-2.0

README ΒΆ

Go Report Card ArtifactHub License GoPkg CII Best Practices

🐾 Welcome to Project Calico!

Project Calico, created and maintained by Tigera, is an open-source project with an active development and user community. Calico Open Source has grown to be the most widely adopted solution for container networking and security, powering 8M+ nodes daily across 166 countries.

🌟 Why use Calico?

  • Data Plane Choice: eBPF, standard Linux, Windows, and VPP β€” versatility in network solutions.
  • Interoperability: Works across multiple distros, multiple clouds, bare metal, and VMs.
  • Optimized Performance: Engineered for high speed and low CPU usage, maximizing your cluster investments.
  • Scalable Architecture: Grows seamlessly with your Kubernetes clusters without sacrificing performance.
  • Advanced Security: Get granular access controls and WireGuard encryption.
  • Kubernetes Networking Policy Support: Continually defining excellence in Kubernetes network policy standards and support.
  • Vibrant Contributor Community: Over 200 contributors from a wide array of global companies.
  • Flexible networking: An array of networking tools at your disposal, including BGP, VXLAN, service advertisement, and more.

🀝 Join the Calico Community

πŸ’‘ Contributing to Project Calico

πŸ› οΈ Projects We Maintain

πŸ“’ Stay Connected

Directories ΒΆ

Path Synopsis
apiserver
app-policy
cmd/healthz command
uds
calicoctl/resourcemgr
Package resourcemgr implements generic resource handling methods.
Package resourcemgr implements generic resource handling methods.
tests/fv/helper command
cmd
calico command
calico-windows command
cni-plugin
cmd/calico command
internal/pkg/utils/hcn
Dummy version of the HCN API for compilation on Linux.
Dummy version of the HCN API for compilation on Linux.
internal/pkg/utils/winpol
This package contains algorithmic support code for Windows.
This package contains algorithmic support code for Windows.
crypto
e2e
cmd/gen-test-set command
gen-test-set records the specs each CI lane selects, by dry-running the e2e binary once per distinct selection.
gen-test-set records the specs each CI lane selects, by dry-running the e2e binary once per distinct selection.
images/rapidclient command
Command rapidclient is a multi-mode e2e test utility.
Command rapidclient is a multi-mode e2e test utility.
pkg/cilanes
Package cilanes resolves the test selection of every e2e lane under .argoci/cron, .semaphore/end-to-end/pipelines and .semaphore/semaphore.yml.d/blocks.
Package cilanes resolves the test selection of every e2e lane under .argoci/cron, .semaphore/end-to-end/pipelines and .semaphore/semaphore.yml.d/blocks.
pkg/utils/bgp
Package bgp provides reusable BIRD BGP peer utilities for e2e tests.
Package bgp provides reusable BIRD BGP peer utilities for e2e tests.
pkg/utils/format
Package format provides custom formatters for Gomega test output.
Package format provides custom formatters for Gomega test output.
felix
aws
aws/ec2query
Package ec2query is a minimal client for the EC2 Query API.
Package ec2query is a minimal client for the EC2 Query API.
bpf
Package bpf provides primitives to manage Calico-specific XDP programs attached to network interfaces, along with the blocklist LPM map and the failsafe map.
Package bpf provides primitives to manage Calico-specific XDP programs attached to network interfaces, along with the blocklist LPM map and the failsafe map.
bpf/asm
Package asm contains a basic eBPF bytecode assembler.
Package asm contains a basic eBPF bytecode assembler.
bpf/cmd command
calc
The calc package implements a calculation graph for Felix's dynamic state.
The calc package implements a calculation graph for Felix's dynamic state.
cmd/calico-bpf command
cmd/calico-felix-docgen command
Tool to generate combined metadata for hte Felix configuration parameters.
Tool to generate combined metadata for hte Felix configuration parameters.
config
The config package provides config inheritance for Felix.
The config package provides config inheritance for Felix.
dataplane/external
extdataplane implements the connection to an external dataplane driver, connected via a pair of pipes.
extdataplane implements the connection to an external dataplane driver, connected via a pair of pipes.
dataplane/windows/hcn
Dummy version of the HCN API for compilation on Linux.
Dummy version of the HCN API for compilation on Linux.
fv
The fv package contains FV tests that execute Felix for real.
The fv package contains FV tests that execute Felix for real.
fv/infrastructure/bpfpolprog
Package bpfpolprog contains FV helpers for inspecting Felix's BPF policy program jump maps.
Package bpfpolprog contains FV helpers for inspecting Felix's BPF policy program jump maps.
fv/pktgen command
ip
The ip package contains yet another IP address (and CIDR) type :-).
The ip package contains yet another IP address (and CIDR) type :-).
k8sfv command
labelindex
Package labelindex provides the InheritIndex type, which emits events as the set of items (currently WorkloadEndpoints/HostEndpoint) it has been told about start (or stop) matching the label selectors (which are extracted from the active policy rules) it has been told about.
Package labelindex provides the InheritIndex type, which emits events as the set of items (currently WorkloadEndpoints/HostEndpoint) it has been told about start (or stop) matching the label selectors (which are extracted from the active policy rules) it has been told about.
nftables/nftrender
Package nftrender renders Calico's rules into nftables syntax: the match builder, the action types, and the naming helpers that felix/rules uses to build nftables-flavoured rules.
Package nftrender renders Calico's rules into nftables syntax: the match builder, the action types, and the naming helpers that felix/rules uses to build nftables-flavoured rules.
proto
The proto package defines the protocol between Felix's policy "calculation engine", which calculates the policy that should be active on a given host, and the "dataplane driver", which renders that policy into the dataplane.
The proto package defines the protocol between Felix's policy "calculation engine", which calculates the policy that should be active on a given host, and the "dataplane driver", which renders that policy into the dataplane.
rules/rulesdefs
Package rulesdefs holds the names Felix writes into the dataplane, for the dataplane packages that need to recognise them but can't import felix/rules because it imports them.
Package rulesdefs holds the names Felix writes into the dataplane, for the dataplane packages that need to recognise them but can't import felix/rules because it imports them.
goldmane
cmd/flowgen command
cmd/health command
cmd/stream command
pkg/client
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.
pkg/daemon
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.
pkg/internal/utils
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.
guardian
pkg/cryptoutils
Package cryptoutils has a set of utility function to be used across components
Package cryptoutils has a set of utility function to be used across components
pkg/tunnel
Package tunnel defines an authenticated tunnel API, that allows creating byte pipes in both directions, initiated from either side of the tunnel.
Package tunnel defines an authenticated tunnel API, that allows creating byte pipes in both directions, initiated from either side of the tunnel.
hack
cmd/deps command
cmd/format-go-file command
format-go-file applies the project's canonical 3-step formatting pipeline (goimports / coalesce-imports / goimports) to one or more Go files.
format-go-file applies the project's canonical 3-step formatting pipeline (goimports / coalesce-imports / goimports) to one or more Go files.
cmd/gomodder command
cmd/ipam-hammer command
perf/cmd/send-perf-results command
send-perf-results scans a directory of per-test JSON measurement files, augments each with CI metadata, and POSTs them to the Lens Elasticsearch cluster.
send-perf-results scans a directory of per-test JSON measurement files, augments each with CI metadata, and POSTs them to the Lens Elasticsearch cluster.
test/spider command
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.
key-cert-provisioner
test-signer command
kube-controllers
pkg/apis/migration/v1
Package v1 contains the DatastoreMigration API types.
Package v1 contains the DatastoreMigration API types.
pkg/apis/migration/v1beta1
Package v1beta1 is the frozen pre-GA DatastoreMigration API.
Package v1beta1 is the frozen pre-GA DatastoreMigration API.
pkg/controllers/migration
Package migration implements the v1-to-v3 CRD migration controller.
Package migration implements the v1-to-v3 CRD migration controller.
lib
httpmachinery module
kind module
logrusr module
std module
libcalico-go
config/crd
Package crd serves the generated crd.projectcalico.org CRDs to the components that install them, so nothing has to keep a copy of its own.
Package crd serves the generated crd.projectcalico.org CRDs to the components that install them, so nothing has to keep a copy of its own.
lib/apis/crd.projectcalico.org/v1
API Schema definitions for configuring the installation of Calico and Calico Enterprise +k8s:deepcopy-gen=package,register +groupName=crd.projectcalico.org
API Schema definitions for configuring the installation of Calico and Calico Enterprise +k8s:deepcopy-gen=package,register +groupName=crd.projectcalico.org
lib/backend
Package backend implements the backend data store client and associated backend data type.
Package backend implements the backend data store client and associated backend data type.
lib/backend/encap
Package encap implements a field type that represent different encap modes.
Package encap implements a field type that represent different encap modes.
lib/backend/k8s/conversion
TODO move the WorkloadEndpoint converters to is own package.
TODO move the WorkloadEndpoint converters to is own package.
lib/backend/watchersyncer
watchersyncer package contains a syncer interface that can be used to sync from an arbitrary set of Watchers.
watchersyncer package contains a syncer interface that can be used to sync from an arbitrary set of Watchers.
lib/clientv3
Package client implements the northbound client used to manage Calico configuration.
Package client implements the northbound client used to manage Calico configuration.
lib/errors
Package errors implements various error types that are used both internally, and that may be returned from the client interface.
Package errors implements various error types that are used both internally, and that may be returned from the client interface.
lib/hwm
The hwm package contains the HighWatermarkTracker;
The hwm package contains the HighWatermarkTracker;
lib/informerutil
Package informerutil holds helpers for working with client-go informer event handlers.
Package informerutil holds helpers for working with client-go informer event handlers.
lib/ipam
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.
lib/kubevirt
This file provides utilities for creating KubeVirt clients.
This file provides utilities for creating KubeVirt clients.
lib/net
Package net implements a set of net types that are extensions to the built-in net package.
Package net implements a set of net types that are extensions to the built-in net package.
lib/netlinkutils
Dummy version of the HCN API for compilation on Linux.
Dummy version of the HCN API for compilation on Linux.
lib/scope
Package scope implements field types that represent different scopes for resource types.
Package scope implements field types that represent different scopes for resource types.
lib/testutils
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.
lib/validator/v3
Package v3 implements common field and structure validation that is used to validate the API structures supplied on the client interface, and is also used internally to validate the information stored in the backend datastore.
Package v3 implements common field and structure validation that is used to validate the API structures supplied on the client interface, and is also used internally to validate the information stored in the backend datastore.
node
cmd/calico command
cmd/calico-ipam command
cmd/mountns command
pkg/nodeinit
Package nodeinit contains the calico-node -init command, which is intended to be run from an init container to do privileged pre-flight initialisation.
Package nodeinit contains the calico-node -init command, which is intended to be run from an init container to do privileged pre-flight initialisation.
tests/k8st/utils
Package utils is the Go port of node/tests/k8st/utils and test_base.py.
Package utils is the Go port of node/tests/k8st/utils and test_base.py.
operator
cmd command
hack/release command
hack/release/internal/setup
Package setup resolves the release defaults the operator publishes with.
Package setup resolves the release defaults the operator publishes with.
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.
pkg/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.
pkg/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.
pkg/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.
pkg/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.
pkg/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.
pkg/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.
pkg/controller/options
Package options is where controllers read the options the daemon detected at startup.
Package options is where controllers read the options the daemon detected at startup.
pkg/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.
pkg/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.
pkg/controller/typhaautoscaler
Package typhaautoscaler scales a Typha deployment to match a count of the cluster.
Package typhaautoscaler scales a Typha deployment to match a count of the cluster.
pkg/daemon
Package daemon is the operator itself, so that a build serving another product variant can supply its own main and pass what only it knows.
Package daemon is the operator itself, so that a build serving another product variant can supply its own main and pass what only it knows.
pkg/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.
pkg/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.
pkg/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.
pkg/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.
pkg/render/common/wafmanagement
Package wafmanagement names the admin-owned gate that switches the WAF management UI on for a cluster.
Package wafmanagement names the admin-owned gate that switches the WAF management UI on for a cluster.
pkg/uigateway
Package uigateway carries the controller-side logic shared by the UI components (Manager, Whisker) that expose themselves through Calico Ingress Gateway: label-driven cleanup, gateway health read-back, namespace provisioning, class resolution, and watch setup.
Package uigateway carries the controller-side logic shared by the UI components (Manager, Whisker) that expose themselves through Calico Ingress Gateway: label-driven cleanup, gateway health read-back, namespace provisioning, class resolution, and watch setup.
test
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.
api module
pkg
pod2daemon
nodeagent command
pkg/flexvol
Flexvolume driver that is invoked by kubelet when a pod installs a flexvolume drive of type nodeagent/uds This driver communicates to the nodeagent using either
Flexvolume driver that is invoked by kubelet when a pod installs a flexvolume drive of type nodeagent/uds This driver communicates to the nodeagent using either
release
cmd command
internal/aptrepo
Package aptrepo contains functionality for creating and managing apt repositories
Package aptrepo contains functionality for creating and managing apt repositories
internal/defaults
Package defaults exposes flag-default values sourced from the repo's build metadata.
Package defaults exposes flag-default values sourced from the repo's build metadata.
internal/images
Package images builds and publishes the product's container images.
Package images builds and publishes the product's container images.
test-tools
third_party
cni-plugins/cmd/install command
Entrypoint for the calico/cni-plugins init image.
Entrypoint for the calico/cni-plugins init image.
typha
fv-tests
fv_tests contains a suite of tests that test multiple packages together.
fv_tests contains a suite of tests that test multiple packages together.
pkg/config
The config package provides config inheritance for Typha.
The config package provides config inheritance for Typha.
pkg/syncproto
Package syncproto defines the structs used in the Felix/Typha protocol.
Package syncproto defines the structs used in the Felix/Typha protocol.
pkg/validator/v1
Package v1 validates the v1 model objects Felix and Typha receive from the datastore.
Package v1 validates the v1 model objects Felix and Typha receive from the datastore.
webhooks
whisker-backend

Jump to

Keyboard shortcuts

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