Calico 3.17 route reflector addons

Created Diff never expires
---
---
# Source: calico/templates/calico-config.yaml
# Source: calico/templates/calico-config.yaml
# This ConfigMap is used to configure a self-hosted Calico installation.
# This ConfigMap is used to configure a self-hosted Calico installation.
kind: ConfigMap
kind: ConfigMap
apiVersion: v1
apiVersion: v1
metadata:
metadata:
name: calico-config
name: calico-config
namespace: kube-system
namespace: kube-system
data:
data:
# Typha is disabled.
# Typha is disabled.
typha_service_name: "none"
typha_service_name: "none"
# Configure the backend to use.
# Configure the backend to use.
calico_backend: "bird"
calico_backend: "bird"


# Configure the MTU to use for workload interfaces and tunnels.
# Configure the MTU to use for workload interfaces and tunnels.
# By default, MTU is auto-detected, and explicitly setting this field should not be required.
# By default, MTU is auto-detected, and explicitly setting this field should not be required.
# You can override auto-detection by providing a non-zero value.
# You can override auto-detection by providing a non-zero value.
veth_mtu: "0"
veth_mtu: "0"


# The CNI network configuration to install on each node. The special
# The CNI network configuration to install on each node. The special
# values in this config will be automatically populated.
# values in this config will be automatically populated.
cni_network_config: |-
cni_network_config: |-
{
{
"name": "k8s-pod-network",
"name": "k8s-pod-network",
"cniVersion": "0.3.1",
"cniVersion": "0.3.1",
"plugins": [
"plugins": [
{
{
"type": "calico",
"type": "calico",
"log_level": "info",
"log_level": "info",
"log_file_path": "/var/log/calico/cni/cni.log",
"log_file_path": "/var/log/calico/cni/cni.log",
"datastore_type": "kubernetes",
"datastore_type": "kubernetes",
"nodename": "__KUBERNETES_NODE_NAME__",
"nodename": "__KUBERNETES_NODE_NAME__",
"mtu": __CNI_MTU__,
"mtu": __CNI_MTU__,
"ipam": {
"ipam": {
"type": "calico-ipam"
"type": "calico-ipam"
},
},
"policy": {
"policy": {
"type": "k8s"
"type": "k8s"
},
},
"kubernetes": {
"kubernetes": {
"kubeconfig": "__KUBECONFIG_FILEPATH__"
"kubeconfig": "__KUBECONFIG_FILEPATH__"
}
}
},
},
{
{
"type": "portmap",
"type": "portmap",
"snat": true,
"snat": true,
"capabilities": {"portMappings": true}
"capabilities": {"portMappings": true}
},
},
{
{
"type": "bandwidth",
"type": "bandwidth",
"capabilities": {"bandwidth": true}
"capabilities": {"bandwidth": true}
}
}
]
]
}
}


---
---
# Source: calico/templates/kdd-crds.yaml
# Source: calico/templates/kdd-crds.yaml


apiVersion: apiextensions.k8s.io/v1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
kind: CustomResourceDefinition
metadata:
metadata:
name: bgpconfigurations.crd.projectcalico.org
name: bgpconfigurations.crd.projectcalico.org
spec:
spec:
group: crd.projectcalico.org
group: crd.projectcalico.org
names:
names:
kind: BGPConfiguration
kind: BGPConfiguration
listKind: BGPConfigurationList
listKind: BGPConfigurationList
plural: bgpconfigurations
plural: bgpconfigurations
singular: bgpconfiguration
singular: bgpconfiguration
scope: Cluster
scope: Cluster
versions:
versions:
- name: v1
- name: v1
schema:
schema:
openAPIV3Schema:
openAPIV3Schema:
description: BGPConfiguration contains the configuration for any BGP routing.
description: BGPConfiguration contains the configuration for any BGP routing.
properties:
properties:
apiVersion:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
type: string
kind:
kind:
description: 'Kind is a string value representing the REST resource this
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
type: string
metadata:
metadata:
type: object
type: object
spec:
spec:
description: BGPConfigurationSpec contains the values of the BGP configuration.
description: BGPConfigurationSpec contains the values of the BGP configuration.
properties:
properties:
asNumber:
asNumber:
description: 'ASNumber is the default AS number used by a node. [Default:
description: 'ASNumber is the default AS number used by a node. [Default:
64512]'
64512]'
format: int32
format: int32
type: integer
type: integer
communities:
communities:
description: Communities is a list of BGP community values and their
description: Communities is a list of BGP community values and their
arbitrary names for tagging routes.
arbitrary names for tagging routes.
items:
items:
description: Community contains standard or large community value
description: Community contains standard or large community value
and its name.
and its name.
properties:
properties:
name:
name:
description: Name given to community value.
description: Name given to community value.
type: string
type: string
value:
value:
description: Value must be of format `aa:nn` or `aa:nn:mm`.
description: Value must be of format `aa:nn` or `aa:nn:mm`.
For standard community use `aa:nn` format, where `aa` and
For standard community use `aa:nn` format, where `aa` and
`nn` are 16 bit number. For large community use `aa:nn:mm`
`nn` are 16 bit number. For large community use `aa:nn:mm`
format, where `aa`, `nn` and `mm` are 32 bit number. Where,
format, where `aa`, `nn` and `mm` are 32 bit number. Where,
`aa` is an AS Number, `nn` and `mm` are per-AS identifier.
`aa` is an AS Number, `nn` and `mm` are per-AS identifier.
pattern: ^(\d+):(\d+)$|^(\d+):(\d+):(\d+)$
pattern: ^(\d+):(\d+)$|^(\d+):(\d+):(\d+)$
type: string
type: string
type: object
type: object
type: array
type: array
listenPort:
listenPort:
description: ListenPort is the port where BGP protocol should listen.
description: ListenPort is the port where BGP protocol should listen.
Defaults to 179
Defaults to 179
maximum: 65535
maximum: 65535
minimum: 1
minimum: 1
type: integer
type: integer
logSeverityScreen:
logSeverityScreen:
description: 'LogSeverityScreen is the log severity above which logs
description: 'LogSeverityScreen is the log severity above which logs
are sent to the stdout. [Default: INFO]'
are sent to the stdout. [Default: INFO]'
type: string
type: string
nodeToNodeMeshEnabled:
nodeToNodeMeshEnabled:
description: 'NodeToNodeMeshEnabled sets whether full node to node
description: 'NodeToNodeMeshEnabled sets whether full node to node
BGP mesh is enabled. [Default: true]'
BGP mesh is enabled. [Default: true]'
type: boolean
type: boolean
prefixAdvertisements:
prefixAdvertisements:
description: PrefixAdvertisements contains per-prefix advertisement
description: PrefixAdvertisements contains per-prefix advertisement
configuration.
configuration.
items:
items:
description: PrefixAdvertisement configures advertisement properties
description: PrefixAdvertisement configures advertisement properties
for the specified CIDR.
for the specified CIDR.
properties:
properties:
cidr:
cidr:
description: CIDR for which properties should be advertised.
description: CIDR for which properties should be advertised.
type: string
type: string
communities:
communities:
description: Communities can be list of either community names
description: Communities can be list of either community names
already defined in `Specs.Communities` or community value
already defined in `Specs.Communities` or community value
of format `aa:nn` or `aa:nn:mm`. For standard community use
of format `aa:nn` or `aa:nn:mm`. For standard community use
`aa:nn` format, where `aa` and `nn` are 16 bit number. For
`aa:nn` format, where `aa` and `nn` are 16 bit number. For
large community use `aa:nn:mm` format, where `aa`, `nn` and
large community use `aa:nn:mm` format, where `aa`, `nn` and
`mm` are 32 bit number. Where,`aa` is an AS Number, `nn` and
`mm` are 32 bit number. Where,`aa` is an AS Number, `nn` and
`mm` are per-AS identifier.
`mm` are per-AS identifier.
items:
items:
type: string
type: string
type: array
type: array
type: object
type: object
type: array
type: array
serviceClusterIPs:
serviceClusterIPs:
description: ServiceClusterIPs are the CIDR blocks from which service
description: ServiceClusterIPs are the CIDR blocks from which service
cluster IPs are allocated. If specified, Calico will advertise these
cluster IPs are allocated. If specified, Calico will advertise these
blocks, as well as any cluster IPs within them.
blocks, as well as any cluster IPs within them.
items:
items:
description: ServiceClusterIPBlock represents a single allowed ClusterIP
description: ServiceClusterIPBlock represents a single allowed ClusterIP
CIDR block.
CIDR block.
properties:
properties:
cidr:
cidr:
type: string
type: string
type: object
type: object
type: array
type: array
serviceExternalIPs:
serviceExternalIPs:
description: ServiceExternalIPs are the CIDR blocks for Kubernetes
description: ServiceExternalIPs are the CIDR blocks for Kubernetes
Service External IPs. Kubernetes Service ExternalIPs will only be
Service External IPs. Kubernetes Service ExternalIPs will only be
advertised if they are within one of these blocks.
advertised if they are within one of these blocks.
items:
items:
description: ServiceExternalIPBlock represents a single allowed
description: ServiceExternalIPBlock represents a single allowed
External IP CIDR block.
External IP CIDR block.
properties:
properties:
cidr:
cidr:
type: string
type: string
type: object
type: object
type: array
type: array
type: object
type: object
type: object
type: object
served: true
served: true
storage: true
storage: true
status:
status:
acceptedNames:
acceptedNames:
kind: ""
kind: ""
plural: ""
plural: ""
conditions: []
conditions: []
storedVersions: []
storedVersions: []


---
---
apiVersion: apiextensions.k8s.io/v1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
kind: CustomResourceDefinition
metadata:
metadata:
name: bgppeers.crd.projectcalico.org
name: bgppeers.crd.projectcalico.org
spec:
spec:
group: crd.projectcalico.org
group: crd.projectcalico.org
names:
names:
kind: BGPPeer
kind: BGPPeer
listKind: BGPPeerList
listKind: BGPPeerList
plural: bgppeers
plural: bgppeers
singular: bgppeer
singular: bgppeer
scope: Cluster
scope: Cluster
versions:
versions:
- name: v1
- name: v1
schema:
schema:
openAPIV3Schema:
openAPIV3Schema:
properties:
properties:
apiVersion:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
type: string
kind:
kind:
description: 'Kind is a string value representing the REST resource this
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
type: string
metadata:
metadata:
type: object
type: object
spec:
spec:
description: BGPPeerSpec contains the specification for a BGPPeer resource.
description: BGPPeerSpec contains the specification for a BGPPeer resource.
properties:
properties:
asNumber:
asNumber:
description: The AS Number of the peer.
description: The AS Number of the peer.
format: int32
format: int32
type: integer
type: integer
keepOriginalNextHop:
keepOriginalNextHop:
default: false
default: false
description: Option to keep the original nexthop field when routes
description: Option to keep the original nexthop field when routes
are sent to a BGP Peer. Setting "true" configures the selected BGP
are sent to a BGP Peer. Setting "true" configures the selected BGP
Peers node to use the "next hop keep;" instead of "next hop self;"(default)
Peers node to use the "next hop keep;" instead of "next hop self;"(default)
in the specific branch of the Node on "bird.cfg".
in the specific branch of the Node on "bird.cfg".
type: boolean
type: boolean
node:
node:
description: The node name identifying the Calico node instance that
description: The node name identifying the Calico node instance that
is targeted by this peer. If this is not set, and no nodeSelector
is targeted by this peer. If this is not set, and no nodeSelector
is specified, then this BGP peer selects all nodes in the cluster.
is specified, then this BGP peer selects all nodes in the cluster.
type: string
type: string
nodeSelector:
nodeSelector:
description: Selector for the nodes that should have this peering. When
description: Selector for the nodes that should have this peering. When
this is set, the Node field must be empty.
this is set, the Node field must be empty.
type: string
type: string
password:
password:
description: Optional BGP password for the peerings generated by this
description: Optional BGP password for the peerings generated by this
BGPPeer resource.
BGPPeer resource.
properties:
properties:
secretKeyRef:
secretKeyRef:
description: Selects a key of a secret in the node pod's namespace.
description: Selects a key of a secret in the node pod's namespace.
properties:
properties:
key:
key:
description: The key of the secret to select from. Must be
description: The key of the secret to select from. Must be
a valid secret key.
a valid secret key.
type: string
type: string
name:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: string
optional:
optional:
description: Specify whether the Secret or its key must be
description: Specify whether the Secret or its key must be
defined
defined
type: boolean
type: boolean
required:
required:
- key
- key
type: object
type: object
type: object
type: object
peerIP:
peerIP:
description: The IP address of the peer followed by an optional port
description: The IP address of the peer followed by an optional port
number to peer with. If port number is given, format should be `[<IPv6>]:port`
number to peer with. If port number is given, format should be `[<IPv6>]:port`
or `<IPv4>:<port>` for IPv4. If optional port number is not set,
or `<IPv4>:<port>` for IPv4. If optional port number is not set,
and this peer IP and ASNumber belongs to a calico/node with ListenPort
and this peer IP and ASNumber belongs to a calico/node with ListenPort
set in BGPConfiguration, then we use that port to peer.
set in BGPConfiguration, then we use that port to peer.
type: string
type: string
peerSelector:
peerSelector:
description: Selector for the remote nodes to peer with. When this
description: Selector for the remote nodes to peer with. When this
is set, the PeerIP and ASNumber fields must be empty. For each
is set, the PeerIP and ASNumber fields must be empty. For each
peering between the local node and selected remote nodes, we configure
peering between the local node and selected remote nodes, we configure
an IPv4 peering if both ends have NodeBGPSpec.IPv4Address specified,
an IPv4 peering if both ends have NodeBGPSpec.IPv4Address specified,
and an IPv6 peering if both ends have NodeBGPSpec.IPv6Address specified. The
and an IPv6 peering if both ends have NodeBGPSpec.IPv6Address specified. The
remote AS number comes from the remote node's NodeBGPSpec.ASNumber,
remote AS number comes from the remote node's NodeBGPSpec.ASNumber,
or the global default if that is not set.
or the global default if that is not set.
type: string
type: string
type: object
type: object
type: object
type: object
served: true
served: true
storage: true
storage: true
status:
status:
acceptedNames:
acceptedNames:
kind: ""
kind: ""
plural: ""
plural: ""
conditions: []
conditions: []
storedVersions: []
storedVersions: []


---
---
apiVersion: apiextensions.k8s.io/v1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
kind: CustomResourceDefinition
metadata:
metadata:
name: blockaffinities.crd.projectcalico.org
name: blockaffinities.crd.projectcalico.org
spec:
spec:
group: crd.projectcalico.org
group: crd.projectcalico.org
names:
names:
kind: BlockAffinity
kind: BlockAffinity
listKind: BlockAffinityList
listKind: BlockAffinityList
plural: blockaffinities
plural: blockaffinities
singular: blockaffinity
singular: blockaffinity
scope: Cluster
scope: Cluster
versions:
versions:
- name: v1
- name: v1
schema:
schema:
openAPIV3Schema:
openAPIV3Schema:
properties:
properties:
apiVersion:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
type: string
kind:
kind:
description: 'Kind is a string value representing the REST resource this
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
type: string
metadata:
metadata:
type: object
type: object
spec:
spec:
description: BlockAffinitySpec contains the specification for a BlockAffinity
description: BlockAffinitySpec contains the specification for a BlockAffinity
resource.
resource.
properties:
properties:
cidr:
cidr:
type: string
type: string
deleted:
deleted:
description: Deleted indicates that this block affinity is being deleted.
description: Deleted indicates that this block affinity is being deleted.
This field is a string for compatibility with older releases that
This field is a string for compatibility with older releases that
mistakenly treat this field as a string.
mistakenly treat this field as a string.
type: string
type: string
node:
node:
type: string
type: string
state:
state:
type: string
type: string
required:
required:
- cidr
- cidr
- deleted
- deleted
- node
- node
- state
- state
type: object
type: object
type: object
type: object
served: true
served: true
storage: true
storage: true
status:
status:
acceptedNames:
acceptedNames:
kind: ""
kind: ""
plural: ""
plural: ""
conditions: []
conditions: []
storedVersions: []
storedVersions: []


---
---
apiVersion: apiextensions.k8s.io/v1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
kind: CustomResourceDefinition
metadata:
metadata:
name: clusterinformations.crd.projectcalico.org
name: clusterinformations.crd.projectcalico.org
spec:
spec:
group: crd.projectcalico.org
group: crd.projectcalico.org
names:
names:
kind: ClusterInformation
kind: ClusterInformation
listKind: ClusterInformationList
listKind: ClusterInformationList
plural: clusterinformations
plural: clusterinformations
singular: clusterinformation
singular: clusterinformation
scope: Cluster
scope: Cluster
versions:
versions:
- name: v1
- name: v1
schema:
schema:
openAPIV3Schema:
openAPIV3Schema:
description: ClusterInformation contains the cluster specific information.
description: ClusterInformation contains the cluster specific information.
properties:
properties:
apiVersion:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
type: string
kind:
kind:
description: 'Kind is a string value representing the REST resource this
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
type: string
metadata:
metadata:
type: object
type: object
spec:
spec:
description: ClusterInformationSpec contains the values of describing
description: ClusterInformationSpec contains the values of describing
the cluster.
the cluster.
properties:
properties:
calicoVersion:
calicoVersion:
description: CalicoVersion is the version of Calico that the cluster
description: CalicoVersion is the version of Calico that the cluster
is running
is running
type: string
type: string
clusterGUID:
clusterGUID:
description: ClusterGUID is the GUID of the cluster
description: ClusterGUID is the GUID of the cluster
type: string
type: string
clusterType:
clusterType:
description: ClusterType describes the type of the cluster
description: ClusterType describes the type of the cluster
type: string
type: string
datastoreReady:
datastoreReady:
description: DatastoreReady is used during significant datastore migrations
description: DatastoreReady is used during significant datastore migrations
to signal to components such as Felix that it should wait before
to signal to components such as Felix that it should wait before
accessing the datastore.
accessing the datastore.
type: boolean
type: boolean
variant:
variant:
description: Variant declares which variant of Calico should be active.
description: Variant declares which variant of Calico should be active.
type: string
type: string
type: object
type: object
type: object
type: object
served: true
served: true
storage: true
storage: true
status:
status:
acceptedNames:
acceptedNames:
kind: ""
kind: ""
plural: ""
plural: ""
conditions: []
conditions: []
storedVersions: []
storedVersions: []


---
---
apiVersion: apiextensions.k8s.io/v1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
kind: CustomResourceDefinition
metadata:
metadata:
name: felixconfigurations.crd.projectcalico.org
name: felixconfigurations.crd.projectcalico.org
spec:
spec:
group: crd.projectcalico.org
group: crd.projectcalico.org
names:
names:
kind: FelixConfiguration
kind: FelixConfiguration
listKind: FelixConfigurationList
listKind: FelixConfigurationList
plural: felixconfigurations
plural: felixconfigurations
singular: felixconfiguration
singular: felixconfiguration
scope: Cluster
scope: Cluster
versions:
versions:
- name: v1
- name: v1
schema:
schema:
openAPIV3Schema:
openAPIV3Schema:
description: Felix Configuration contains the configuration for Felix.
description: Felix Configuration contains the configuration for Felix.
properties:
properties:
apiVersion:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
type: string
kind:
kind:
description: 'Kind is a string value representing the REST resource this
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
type: string
metadata:
metadata:
type: object
type: object
spec:
spec:
description: FelixConfigurationSpec contains the values of the Felix configuration.
description: FelixConfigurationSpec contains the values of the Felix configuration.
properties:
properties:
allowIPIPPacketsFromWorkloads:
allowIPIPPacketsFromWorkloads:
description: 'AllowIPIPPacketsFromWorkloads controls whether Felix
description: 'AllowIPIPPacketsFromWorkloads controls whether Felix
will add a rule to drop IPIP encapsulated traffic from workloads
will add a rule to drop IPIP encapsulated traffic from workloads
[Default: false]'
[Default: false]'
type: boolean
type: boolean
allowVXLANPacketsFromWorkloads:
allowVXLANPacketsFromWorkloads:
description: 'AllowVXLANPacketsFromWorkloads controls whether Felix
description: 'AllowVXLANPacketsFromWorkloads controls whether Felix
will add a rule to drop VXLAN encapsulated traffic from workloads
will add a rule to drop VXLAN encapsulated traffic from workloads
[Default: false]'
[Default: false]'
type: boolean
type: boolean
awsSrcDstCheck:
awsSrcDstCheck:
description: 'Set source-destination-check on AWS EC2 instances. Accepted
description: 'Set source-destination-check on AWS EC2 instances. Accepted
value must be one of "DoNothing", "Enabled" or "Disabled". [Default:
value must be one of "DoNothing", "Enabled" or "Disabled". [Default:
DoNothing]'
DoNothing]'
enum:
enum:
- DoNothing
- DoNothing
- Enable
- Enable
- Disable
- Disable
type: string
type: string
bpfConnectTimeLoadBalancingEnabled:
bpfConnectTimeLoadBalancingEnabled:
description: 'BPFConnectTimeLoadBalancingEnabled when in BPF mode,
description: 'BPFConnectTimeLoadBalancingEnabled when in BPF mode,
controls whether Felix installs the connection-time load balancer. The
controls whether Felix installs the connection-time load balancer. The
connect-time load balancer is required for the host to be able to
connect-time load balancer is required for the host to be able to
reach Kubernetes services and it improves the performance of pod-to-service
reach Kubernetes services and it improves the performance of pod-to-service
connections. The only reason to disable it is for debugging purposes. [Default:
connections. The only reason to disable it is for debugging purposes. [Default:
true]'
true]'
type: boolean
type: boolean
bpfDataIfacePattern:
bpfDataIfacePattern:
description: BPFDataIfacePattern is a regular expression that controls
description: BPFDataIfacePattern is a regular expression that controls
which interfaces Felix should attach BPF programs to in order to
which interfaces Felix should attach BPF programs to in order to
catch traffic to/from the network. This needs to match the interfaces
catch traffic to/from the network. This needs to match the interfaces
that Calico workload traffic flows over as well as any interfaces
that Calico workload traffic flows over as well as any interfaces
that handle incoming traffic to nodeports and services from outside
that handle incoming traffic to nodeports and services from outside
the cluster. It should not match the workload interfaces (usually
the cluster. It should not match the workload interfaces (usually
named cali...).
named cali...).
type: string
type: string
bpfDisableUnprivileged:
bpfDisableUnprivileged:
description: 'BPFDisableUnprivileged, if enabled, Felix sets the kernel.unprivileged_bpf_disabled
description: 'BPFDisableUnprivileged, if enabled, Felix sets the kernel.unprivileged_bpf_disabled
sysctl to disable unprivileged use of BPF. This ensures that unprivileged
sysctl to disable unprivileged use of BPF. This ensures that unprivileged
users cannot access Calico''s BPF maps and cannot insert their own
users cannot access Calico''s BPF maps and cannot insert their own
BPF programs to interfere with Calico''s. [Default: true]'
BPF programs to interfere with Calico''s. [Default: true]'
type: boolean
type: boolean
bpfEnabled:
bpfEnabled:
description: 'BPFEnabled, if enabled Felix will use the BPF dataplane.
description: 'BPFEnabled, if enabled Felix will use the BPF dataplane.
[Default: false]'
[Default: false]'
type: boolean
type: boolean
bpfExternalServiceMode:
bpfExternalServiceMode:
description: 'BPFExternalServiceMode in BPF mode, controls how connections
description: 'BPFExternalServiceMode in BPF mode, controls how connections
from outside the cluster to services (node ports and cluster IPs)
from outside the cluster to services (node ports and cluster IPs)
are forwarded to remote workloads. If set to "Tunnel" then both
are forwarded to remote workloads. If set to "Tunnel" then both
request and response traffic is tunneled to the remote node. If
request and response traffic is tunneled to the remote node. If
set to "DSR", the request traffic is tunneled but the response traffic
set to "DSR", the request traffic is tunneled but the response traffic
is sent directly from the remote node. In "DSR" mode, the remote
is sent directly from the remote node. In "DSR" mode, the remote
node appears to use the IP of the ingress node; this requires a
node appears to use the IP of the ingress node; this requires a
permissive L2 network. [Default: Tunnel]'
permissive L2 network. [Default: Tunnel]'
type: string
type: string
bpfKubeProxyEndpointSlicesEnabled:
bpfKubeProxyEndpointSlicesEnabled:
description: BPFKubeProxyEndpointSlicesEnabled in BPF mode, controls
description: BPFKubeProxyEndpointSlicesEnabled in BPF mode, controls
whether Felix's embedded kube-proxy accepts EndpointSlices or not.
whether Felix's embedded kube-proxy accepts EndpointSlices or not.
type: boolean
type: boolean
bpfKubeProxyIptablesCleanupEnabled:
bpfKubeProxyIptablesCleanupEnabled:
description: 'BPFKubeProxyIptablesCleanupEnabled, if enabled in BPF
description: 'BPFKubeProxyIptablesCleanupEnabled, if enabled in BPF
mode, Felix will proactively clean up the upstream Kubernetes kube-proxy''s
mode, Felix will proactively clean up the upstream Kubernetes kube-proxy''s
iptables chains. Should only be enabled if kube-proxy is not running. [Default:
iptables chains. Should only be enabled if kube-proxy is not running. [Default:
true]'
true]'
type: boolean
type: boolean
bpfKubeProxyMinSyncPeriod:
bpfKubeProxyMinSyncPeriod:
description: 'BPFKubeProxyMinSyncPeriod, in BPF mode, controls the
description: 'BPFKubeProxyMinSyncPeriod, in BPF mode, controls the
minimum time between updates to the dataplane for Felix''s embedded
minimum time between updates to the dataplane for Felix''s embedded
kube-proxy. Lower values give reduced set-up latency. Higher values
kube-proxy. Lower values give reduced set-up latency. Higher values
reduce Felix CPU usage by batching up more work. [Default: 1s]'
reduce Felix CPU usage by batching up more work. [Default: 1s]'
type: string
type: string
bpfLogLevel:
bpfLogLevel:
description: 'BPFLogLevel controls the log level of the BPF programs
description: 'BPFLogLevel controls the log level of the BPF programs
when in BPF dataplane mode. One of "Off", "Info", or "Debug". The
when in BPF dataplane mode. One of "Off", "Info", or "Debug". The
logs are emitted to the BPF trace pipe, accessible with the command
logs are emitted to the BPF trace pipe, accessible with the command
`tc exec bpf debug`. [Default: Off].'
`tc exec bpf debug`. [Default: Off].'
type: string
type: string
chainInsertMode:
chainInsertMode:
description: 'ChainInsertMode controls whether Felix hooks the kernel''s
description: 'ChainInsertMode controls whether Felix hooks the kernel''s
top-level iptables chains by inserting a rule at the top of the
top-level iptables chains by inserting a rule at the top of the
chain or by appending a rule at the bottom. insert is the safe default
chain or by appending a rule at the bottom. insert is the safe default
since it prevents Calico''s rules from being bypassed. If you switch
since it prevents Calico''s rules from being bypassed. If you switch
to append mode, be sure that the other rules in the chains signal
to append mode, be sure that the other rules in the chains signal
acceptance by falling through to the Calico rules, otherwise the
acceptance by falling through to the Calico rules, otherwise the
Calico policy will be bypassed. [Default: insert]'
Calico policy will be bypassed. [Default: insert]'
type: string
type: string
dataplaneDriver:
dataplaneDriver:
type: string
type: string
debugDisableLogDropping:
debugDisableLogDropping:
type: boolean
type: boolean
debugMemoryProfilePath:
debugMemoryProfilePath:
type: string
type: string
debugSimulateCalcGraphHangAfter:
debugSimulateCalcGraphHangAfter:
type: string
type: string
debugSimulateDataplaneHangAfter:
debugSimulateDataplaneHangAfter:
type: string
type: string
defaultEndpointToHostAction:
defaultEndpointToHostAction:
description: 'DefaultEndpointToHostAction controls what happens to
description: 'DefaultEndpointToHostAction controls what happens to
traffic that goes from a workload endpoint to the host itself (after
traffic that goes from a workload endpoint to the host itself (after
the traffic hits the endpoint egress policy). By default Calico
the traffic hits the endpoint egress policy). By default Calico
blocks traffic from workload endpoints to the host itself with an
blocks traffic from workload endpoints to the host itself with an
iptables “DROP” action. If you want to allow some or all traffic
iptables “DROP” action. If you want to allow some or all traffic
from endpoint to host, set this parameter to RETURN or ACCEPT. Use
from endpoint to host, set this parameter to RETURN or ACCEPT. Use
RETURN if you have your own rules in the iptables “INPUT” chain;
RETURN if you have your own rules in the iptables “INPUT” chain;
Calico will insert its rules at the top of that chain, then “RETURN”
Calico will insert its rules at the top of that chain, then “RETURN”
packets to the “INPUT” chain once it has completed processing workload
packets to the “INPUT” chain once it has completed processing workload
endpoint egress policy. Use ACCEPT to unconditionally accept packets
endpoint egress policy. Use ACCEPT to unconditionally accept packets
from work
from work