fixing centos container images to point cni-proxy fix
[ovn4nfv-k8s-plugin.git] / deploy / calico.yaml
1 ---
2 # Reference:https://docs.projectcalico.org/archive/v3.16/manifests/calico.yaml
3 # Source: calico/templates/calico-config.yaml
4 # This ConfigMap is used to configure a self-hosted Calico installation.
5 kind: ConfigMap
6 apiVersion: v1
7 metadata:
8   name: calico-config
9   namespace: kube-system
10 data:
11   # Typha is disabled.
12   typha_service_name: "none"
13   # Configure the backend to use.
14   calico_backend: "bird"
15   # Configure the MTU to use for workload interfaces and tunnels.
16   # - If Wireguard is enabled, set to your network MTU - 60
17   # - Otherwise, if VXLAN or BPF mode is enabled, set to your network MTU - 50
18   # - Otherwise, if IPIP is enabled, set to your network MTU - 20
19   # - Otherwise, if not using any encapsulation, set to your network MTU.
20   veth_mtu: "1440"
21
22   # The CNI network configuration to install on each node. The special
23   # values in this config will be automatically populated.
24   cni_network_config: |-
25     {
26       "name": "k8s-pod-network",
27       "cniVersion": "0.3.1",
28       "plugins": [
29         {
30           "type": "calico",
31           "log_level": "info",
32           "log_file_path": "/var/log/calico/cni/cni.log",
33           "datastore_type": "kubernetes",
34           "nodename": "__KUBERNETES_NODE_NAME__",
35           "mtu": __CNI_MTU__,
36           "ipam": {
37               "type": "calico-ipam"
38           },
39           "policy": {
40               "type": "k8s"
41           },
42           "kubernetes": {
43               "kubeconfig": "__KUBECONFIG_FILEPATH__"
44           }
45         },
46         {
47           "type": "portmap",
48           "snat": true,
49           "capabilities": {"portMappings": true}
50         },
51         {
52           "type": "bandwidth",
53           "capabilities": {"bandwidth": true}
54         }
55       ]
56     }
57
58 ---
59 # Source: calico/templates/kdd-crds.yaml
60
61
62 ---
63 apiVersion: apiextensions.k8s.io/v1
64 kind: CustomResourceDefinition
65 metadata:
66   annotations:
67     controller-gen.kubebuilder.io/version: (devel)
68   creationTimestamp: null
69   name: bgpconfigurations.crd.projectcalico.org
70 spec:
71   group: crd.projectcalico.org
72   names:
73     kind: BGPConfiguration
74     listKind: BGPConfigurationList
75     plural: bgpconfigurations
76     singular: bgpconfiguration
77   scope: Cluster
78   versions:
79   - name: v1
80     schema:
81       openAPIV3Schema:
82         description: BGPConfiguration contains the configuration for any BGP routing.
83         properties:
84           apiVersion:
85             description: 'APIVersion defines the versioned schema of this representation
86               of an object. Servers should convert recognized schemas to the latest
87               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
88             type: string
89           kind:
90             description: 'Kind is a string value representing the REST resource this
91               object represents. Servers may infer this from the endpoint the client
92               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
93             type: string
94           metadata:
95             type: object
96           spec:
97             description: BGPConfigurationSpec contains the values of the BGP configuration.
98             properties:
99               asNumber:
100                 description: 'ASNumber is the default AS number used by a node. [Default:
101                   64512]'
102                 format: int32
103                 type: integer
104               communities:
105                 description: Communities is a list of BGP community values and their
106                   arbitrary names for tagging routes.
107                 items:
108                   description: Community contains standard or large community value
109                     and its name.
110                   properties:
111                     name:
112                       description: Name given to community value.
113                       type: string
114                     value:
115                       description: Value must be of format `aa:nn` or `aa:nn:mm`.
116                         For standard community use `aa:nn` format, where `aa` and
117                         `nn` are 16 bit number. For large community use `aa:nn:mm`
118                         format, where `aa`, `nn` and `mm` are 32 bit number. Where,
119                         `aa` is an AS Number, `nn` and `mm` are per-AS identifier.
120                       pattern: ^(\d+):(\d+)$|^(\d+):(\d+):(\d+)$
121                       type: string
122                   type: object
123                 type: array
124               listenPort:
125                 description: ListenPort is the port where BGP protocol should listen.
126                   Defaults to 179
127                 maximum: 65535
128                 minimum: 1
129                 type: integer
130               logSeverityScreen:
131                 description: 'LogSeverityScreen is the log severity above which logs
132                   are sent to the stdout. [Default: INFO]'
133                 type: string
134               nodeToNodeMeshEnabled:
135                 description: 'NodeToNodeMeshEnabled sets whether full node to node
136                   BGP mesh is enabled. [Default: true]'
137                 type: boolean
138               prefixAdvertisements:
139                 description: PrefixAdvertisements contains per-prefix advertisement
140                   configuration.
141                 items:
142                   description: PrefixAdvertisement configures advertisement properties
143                     for the specified CIDR.
144                   properties:
145                     cidr:
146                       description: CIDR for which properties should be advertised.
147                       type: string
148                     communities:
149                       description: Communities can be list of either community names
150                         already defined in `Specs.Communities` or community value
151                         of format `aa:nn` or `aa:nn:mm`. For standard community use
152                         `aa:nn` format, where `aa` and `nn` are 16 bit number. For
153                         large community use `aa:nn:mm` format, where `aa`, `nn` and
154                         `mm` are 32 bit number. Where,`aa` is an AS Number, `nn` and
155                         `mm` are per-AS identifier.
156                       items:
157                         type: string
158                       type: array
159                   type: object
160                 type: array
161               serviceClusterIPs:
162                 description: ServiceClusterIPs are the CIDR blocks from which service
163                   cluster IPs are allocated. If specified, Calico will advertise these
164                   blocks, as well as any cluster IPs within them.
165                 items:
166                   description: ServiceClusterIPBlock represents a single allowed ClusterIP
167                     CIDR block.
168                   properties:
169                     cidr:
170                       type: string
171                   type: object
172                 type: array
173               serviceExternalIPs:
174                 description: ServiceExternalIPs are the CIDR blocks for Kubernetes
175                   Service External IPs. Kubernetes Service ExternalIPs will only be
176                   advertised if they are within one of these blocks.
177                 items:
178                   description: ServiceExternalIPBlock represents a single allowed
179                     External IP CIDR block.
180                   properties:
181                     cidr:
182                       type: string
183                   type: object
184                 type: array
185             type: object
186         type: object
187     served: true
188     storage: true
189 status:
190   acceptedNames:
191     kind: ""
192     plural: ""
193   conditions: []
194   storedVersions: []
195
196 ---
197
198 ---
199 apiVersion: apiextensions.k8s.io/v1
200 kind: CustomResourceDefinition
201 metadata:
202   annotations:
203     controller-gen.kubebuilder.io/version: (devel)
204   creationTimestamp: null
205   name: bgppeers.crd.projectcalico.org
206 spec:
207   group: crd.projectcalico.org
208   names:
209     kind: BGPPeer
210     listKind: BGPPeerList
211     plural: bgppeers
212     singular: bgppeer
213   scope: Cluster
214   versions:
215   - name: v1
216     schema:
217       openAPIV3Schema:
218         properties:
219           apiVersion:
220             description: 'APIVersion defines the versioned schema of this representation
221               of an object. Servers should convert recognized schemas to the latest
222               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
223             type: string
224           kind:
225             description: 'Kind is a string value representing the REST resource this
226               object represents. Servers may infer this from the endpoint the client
227               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
228             type: string
229           metadata:
230             type: object
231           spec:
232             description: BGPPeerSpec contains the specification for a BGPPeer resource.
233             properties:
234               asNumber:
235                 description: The AS Number of the peer.
236                 format: int32
237                 type: integer
238               keepOriginalNextHop:
239                 description: Option to keep the original nexthop field when routes
240                   are sent to a BGP Peer. Setting "true" configures the selected BGP
241                   Peers node to use the "next hop keep;" instead of "next hop self;"(default)
242                   in the specific branch of the Node on "bird.cfg".
243                 type: boolean
244               node:
245                 description: The node name identifying the Calico node instance that
246                   is peering with this peer. If this is not set, this represents a
247                   global peer, i.e. a peer that peers with every node in the deployment.
248                 type: string
249               nodeSelector:
250                 description: Selector for the nodes that should have this peering.  When
251                   this is set, the Node field must be empty.
252                 type: string
253               peerIP:
254                 description: The IP address of the peer followed by an optional port
255                   number to peer with. If port number is given, format should be `[<IPv6>]:port`
256                   or `<IPv4>:<port>` for IPv4. If optional port number is not set,
257                   and this peer IP and ASNumber belongs to a calico/node with ListenPort
258                   set in BGPConfiguration, then we use that port to peer.
259                 type: string
260               peerSelector:
261                 description: Selector for the remote nodes to peer with.  When this
262                   is set, the PeerIP and ASNumber fields must be empty.  For each
263                   peering between the local node and selected remote nodes, we configure
264                   an IPv4 peering if both ends have NodeBGPSpec.IPv4Address specified,
265                   and an IPv6 peering if both ends have NodeBGPSpec.IPv6Address specified.  The
266                   remote AS number comes from the remote node’s NodeBGPSpec.ASNumber,
267                   or the global default if that is not set.
268                 type: string
269             required:
270             - asNumber
271             - peerIP
272             type: object
273         type: object
274     served: true
275     storage: true
276 status:
277   acceptedNames:
278     kind: ""
279     plural: ""
280   conditions: []
281   storedVersions: []
282
283 ---
284
285 ---
286 apiVersion: apiextensions.k8s.io/v1
287 kind: CustomResourceDefinition
288 metadata:
289   annotations:
290     controller-gen.kubebuilder.io/version: (devel)
291   creationTimestamp: null
292   name: blockaffinities.crd.projectcalico.org
293 spec:
294   group: crd.projectcalico.org
295   names:
296     kind: BlockAffinity
297     listKind: BlockAffinityList
298     plural: blockaffinities
299     singular: blockaffinity
300   scope: Cluster
301   versions:
302   - name: v1
303     schema:
304       openAPIV3Schema:
305         properties:
306           apiVersion:
307             description: 'APIVersion defines the versioned schema of this representation
308               of an object. Servers should convert recognized schemas to the latest
309               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
310             type: string
311           kind:
312             description: 'Kind is a string value representing the REST resource this
313               object represents. Servers may infer this from the endpoint the client
314               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
315             type: string
316           metadata:
317             type: object
318           spec:
319             description: BlockAffinitySpec contains the specification for a BlockAffinity
320               resource.
321             properties:
322               cidr:
323                 type: string
324               deleted:
325                 description: Deleted indicates that this block affinity is being deleted.
326                   This field is a string for compatibility with older releases that
327                   mistakenly treat this field as a string.
328                 type: string
329               node:
330                 type: string
331               state:
332                 type: string
333             required:
334             - cidr
335             - deleted
336             - node
337             - state
338             type: object
339         type: object
340     served: true
341     storage: true
342 status:
343   acceptedNames:
344     kind: ""
345     plural: ""
346   conditions: []
347   storedVersions: []
348
349 ---
350
351 ---
352 apiVersion: apiextensions.k8s.io/v1
353 kind: CustomResourceDefinition
354 metadata:
355   annotations:
356     controller-gen.kubebuilder.io/version: (devel)
357   creationTimestamp: null
358   name: clusterinformations.crd.projectcalico.org
359 spec:
360   group: crd.projectcalico.org
361   names:
362     kind: ClusterInformation
363     listKind: ClusterInformationList
364     plural: clusterinformations
365     singular: clusterinformation
366   scope: Cluster
367   versions:
368   - name: v1
369     schema:
370       openAPIV3Schema:
371         description: ClusterInformation contains the cluster specific information.
372         properties:
373           apiVersion:
374             description: 'APIVersion defines the versioned schema of this representation
375               of an object. Servers should convert recognized schemas to the latest
376               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
377             type: string
378           kind:
379             description: 'Kind is a string value representing the REST resource this
380               object represents. Servers may infer this from the endpoint the client
381               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
382             type: string
383           metadata:
384             type: object
385           spec:
386             description: ClusterInformationSpec contains the values of describing
387               the cluster.
388             properties:
389               calicoVersion:
390                 description: CalicoVersion is the version of Calico that the cluster
391                   is running
392                 type: string
393               clusterGUID:
394                 description: ClusterGUID is the GUID of the cluster
395                 type: string
396               clusterType:
397                 description: ClusterType describes the type of the cluster
398                 type: string
399               datastoreReady:
400                 description: DatastoreReady is used during significant datastore migrations
401                   to signal to components such as Felix that it should wait before
402                   accessing the datastore.
403                 type: boolean
404               variant:
405                 description: Variant declares which variant of Calico should be active.
406                 type: string
407             type: object
408         type: object
409     served: true
410     storage: true
411 status:
412   acceptedNames:
413     kind: ""
414     plural: ""
415   conditions: []
416   storedVersions: []
417
418 ---
419
420 ---
421 apiVersion: apiextensions.k8s.io/v1
422 kind: CustomResourceDefinition
423 metadata:
424   annotations:
425     controller-gen.kubebuilder.io/version: (devel)
426   creationTimestamp: null
427   name: felixconfigurations.crd.projectcalico.org
428 spec:
429   group: crd.projectcalico.org
430   names:
431     kind: FelixConfiguration
432     listKind: FelixConfigurationList
433     plural: felixconfigurations
434     singular: felixconfiguration
435   scope: Cluster
436   versions:
437   - name: v1
438     schema:
439       openAPIV3Schema:
440         description: Felix Configuration contains the configuration for Felix.
441         properties:
442           apiVersion:
443             description: 'APIVersion defines the versioned schema of this representation
444               of an object. Servers should convert recognized schemas to the latest
445               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
446             type: string
447           kind:
448             description: 'Kind is a string value representing the REST resource this
449               object represents. Servers may infer this from the endpoint the client
450               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
451             type: string
452           metadata:
453             type: object
454           spec:
455             description: FelixConfigurationSpec contains the values of the Felix configuration.
456             properties:
457               allowIPIPPacketsFromWorkloads:
458                 description: 'AllowIPIPPacketsFromWorkloads controls whether Felix
459                   will add a rule to drop IPIP encapsulated traffic from workloads
460                   [Default: false]'
461                 type: boolean
462               allowVXLANPacketsFromWorkloads:
463                 description: 'AllowVXLANPacketsFromWorkloads controls whether Felix
464                   will add a rule to drop VXLAN encapsulated traffic from workloads
465                   [Default: false]'
466                 type: boolean
467               awsSrcDstCheck:
468                 description: 'Set source-destination-check on AWS EC2 instances. Accepted
469                   value must be one of "DoNothing", "Enabled" or "Disabled". [Default:
470                   DoNothing]'
471                 enum:
472                 - DoNothing
473                 - Enable
474                 - Disable
475                 type: string
476               bpfConnectTimeLoadBalancingEnabled:
477                 description: 'BPFConnectTimeLoadBalancingEnabled when in BPF mode,
478                   controls whether Felix installs the connection-time load balancer.  The
479                   connect-time load balancer is required for the host to be able to
480                   reach Kubernetes services and it improves the performance of pod-to-service
481                   connections.  The only reason to disable it is for debugging purposes.  [Default:
482                   true]'
483                 type: boolean
484               bpfDataIfacePattern:
485                 description: 'BPFDataIfacePattern is a regular expression that controls
486                   which interfaces Felix should attach BPF programs to in order to
487                   catch traffic to/from the network.  This needs to match the interfaces
488                   that Calico workload traffic flows over as well as any interfaces
489                   that handle incoming traffic to nodeports and services from outside
490                   the cluster.  It should not match the workload interfaces (usually
491                   named cali...). [Default: ^(en.*|eth.*|tunl0$)]'
492                 type: string
493               bpfDisableUnprivileged:
494                 description: 'BPFDisableUnprivileged, if enabled, Felix sets the kernel.unprivileged_bpf_disabled
495                   sysctl to disable unprivileged use of BPF.  This ensures that unprivileged
496                   users cannot access Calico''s BPF maps and cannot insert their own
497                   BPF programs to interfere with Calico''s. [Default: true]'
498                 type: boolean
499               bpfEnabled:
500                 description: 'BPFEnabled, if enabled Felix will use the BPF dataplane.
501                   [Default: false]'
502                 type: boolean
503               bpfExternalServiceMode:
504                 description: 'BPFExternalServiceMode in BPF mode, controls how connections
505                   from outside the cluster to services (node ports and cluster IPs)
506                   are forwarded to remote workloads.  If set to "Tunnel" then both
507                   request and response traffic is tunneled to the remote node.  If
508                   set to "DSR", the request traffic is tunneled but the response traffic
509                   is sent directly from the remote node.  In "DSR" mode, the remote
510                   node appears to use the IP of the ingress node; this requires a
511                   permissive L2 network.  [Default: Tunnel]'
512                 type: string
513               bpfKubeProxyEndpointSlicesEnabled:
514                 description: BPFKubeProxyEndpointSlicesEnabled in BPF mode, controls
515                   whether Felix's embedded kube-proxy accepts EndpointSlices or not.
516                 type: boolean
517               bpfKubeProxyIptablesCleanupEnabled:
518                 description: 'BPFKubeProxyIptablesCleanupEnabled, if enabled in BPF
519                   mode, Felix will proactively clean up the upstream Kubernetes kube-proxy''s
520                   iptables chains.  Should only be enabled if kube-proxy is not running.  [Default:
521                   true]'
522                 type: boolean
523               bpfKubeProxyMinSyncPeriod:
524                 description: 'BPFKubeProxyMinSyncPeriod, in BPF mode, controls the
525                   minimum time between updates to the dataplane for Felix''s embedded
526                   kube-proxy.  Lower values give reduced set-up latency.  Higher values
527                   reduce Felix CPU usage by batching up more work.  [Default: 1s]'
528                 type: string
529               bpfLogLevel:
530                 description: 'BPFLogLevel controls the log level of the BPF programs
531                   when in BPF dataplane mode.  One of "Off", "Info", or "Debug".  The
532                   logs are emitted to the BPF trace pipe, accessible with the command
533                   `tc exec bpf debug`. [Default: Off].'
534                 type: string
535               chainInsertMode:
536                 description: 'ChainInsertMode controls whether Felix hooks the kernel’s
537                   top-level iptables chains by inserting a rule at the top of the
538                   chain or by appending a rule at the bottom. insert is the safe default
539                   since it prevents Calico’s rules from being bypassed. If you switch
540                   to append mode, be sure that the other rules in the chains signal
541                   acceptance by falling through to the Calico rules, otherwise the
542                   Calico policy will be bypassed. [Default: insert]'
543                 type: string
544               dataplaneDriver:
545                 type: string
546               debugDisableLogDropping:
547                 type: boolean
548               debugMemoryProfilePath:
549                 type: string
550               debugSimulateCalcGraphHangAfter:
551                 type: string
552               debugSimulateDataplaneHangAfter:
553                 type: string
554               defaultEndpointToHostAction:
555                 description: 'DefaultEndpointToHostAction controls what happens to
556                   traffic that goes from a workload endpoint to the host itself (after
557                   the traffic hits the endpoint egress policy). By default Calico
558                   blocks traffic from workload endpoints to the host itself with an
559                   iptables “DROP” action. If you want to allow some or all traffic
560                   from endpoint to host, set this parameter to RETURN or ACCEPT. Use
561                   RETURN if you have your own rules in the iptables “INPUT” chain;
562                   Calico will insert its rules at the top of that chain, then “RETURN”
563                   packets to the “INPUT” chain once it has completed processing workload
564                   endpoint egress policy. Use ACCEPT to unconditionally accept packets
565                   from workloads after processing workload endpoint egress policy.
566                   [Default: Drop]'
567                 type: string
568               deviceRouteProtocol:
569                 description: This defines the route protocol added to programmed device
570                   routes, by default this will be RTPROT_BOOT when left blank.
571                 type: integer
572               deviceRouteSourceAddress:
573                 description: This is the source address to use on programmed device
574                   routes. By default the source address is left blank, leaving the
575                   kernel to choose the source address used.
576                 type: string
577               disableConntrackInvalidCheck:
578                 type: boolean
579               endpointReportingDelay:
580                 type: string
581               endpointReportingEnabled:
582                 type: boolean
583               externalNodesList:
584                 description: ExternalNodesCIDRList is a list of CIDR's of external-non-calico-nodes
585                   which may source tunnel traffic and have the tunneled traffic be
586                   accepted at calico nodes.
587                 items:
588                   type: string
589                 type: array
590               failsafeInboundHostPorts:
591                 description: 'FailsafeInboundHostPorts is a comma-delimited list of
592                   UDP/TCP ports that Felix will allow incoming traffic to host endpoints
593                   on irrespective of the security policy. This is useful to avoid
594                   accidentally cutting off a host with incorrect configuration. Each
595                   port should be specified as tcp:<port-number> or udp:<port-number>.
596                   For back-compatibility, if the protocol is not specified, it defaults
597                   to “tcp”. To disable all inbound host ports, use the value none.
598                   The default value allows ssh access and DHCP. [Default: tcp:22,
599                   udp:68, tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666, tcp:6667]'
600                 items:
601                   description: ProtoPort is combination of protocol and port, both
602                     must be specified.
603                   properties:
604                     port:
605                       type: integer
606                     protocol:
607                       type: string
608                   required:
609                   - port
610                   - protocol
611                   type: object
612                 type: array
613               failsafeOutboundHostPorts:
614                 description: 'FailsafeOutboundHostPorts is a comma-delimited list
615                   of UDP/TCP ports that Felix will allow outgoing traffic from host
616                   endpoints to irrespective of the security policy. This is useful
617                   to avoid accidentally cutting off a host with incorrect configuration.
618                   Each port should be specified as tcp:<port-number> or udp:<port-number>.
619                   For back-compatibility, if the protocol is not specified, it defaults
620                   to “tcp”. To disable all outbound host ports, use the value none.
621                   The default value opens etcd’s standard ports to ensure that Felix
622                   does not get cut off from etcd as well as allowing DHCP and DNS.
623                   [Default: tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666, tcp:6667,
624                   udp:53, udp:67]'
625                 items:
626                   description: ProtoPort is combination of protocol and port, both
627                     must be specified.
628                   properties:
629                     port:
630                       type: integer
631                     protocol:
632                       type: string
633                   required:
634                   - port
635                   - protocol
636                   type: object
637                 type: array
638               featureDetectOverride:
639                 description: FeatureDetectOverride is used to override the feature
640                   detection. Values are specified in a comma separated list with no
641                   spaces, example; "SNATFullyRandom=true,MASQFullyRandom=false,RestoreSupportsLock=".
642                   "true" or "false" will force the feature, empty or omitted values
643                   are auto-detected.
644                 type: string
645               genericXDPEnabled:
646                 description: 'GenericXDPEnabled enables Generic XDP so network cards
647                   that don''t support XDP offload or driver modes can use XDP. This
648                   is not recommended since it doesn''t provide better performance
649                   than iptables. [Default: false]'
650                 type: boolean
651               healthEnabled:
652                 type: boolean
653               healthHost:
654                 type: string
655               healthPort:
656                 type: integer
657               interfaceExclude:
658                 description: 'InterfaceExclude is a comma-separated list of interfaces
659                   that Felix should exclude when monitoring for host endpoints. The
660                   default value ensures that Felix ignores Kubernetes'' IPVS dummy
661                   interface, which is used internally by kube-proxy. If you want to
662                   exclude multiple interface names using a single value, the list
663                   supports regular expressions. For regular expressions you must wrap
664                   the value with ''/''. For example having values ''/^kube/,veth1''
665                   will exclude all interfaces that begin with ''kube'' and also the
666                   interface ''veth1''. [Default: kube-ipvs0]'
667                 type: string
668               interfacePrefix:
669                 description: 'InterfacePrefix is the interface name prefix that identifies
670                   workload endpoints and so distinguishes them from host endpoint
671                   interfaces. Note: in environments other than bare metal, the orchestrators
672                   configure this appropriately. For example our Kubernetes and Docker
673                   integrations set the ‘cali’ value, and our OpenStack integration
674                   sets the ‘tap’ value. [Default: cali]'
675                 type: string
676               interfaceRefreshInterval:
677                 description: InterfaceRefreshInterval is the period at which Felix
678                   rescans local interfaces to verify their state. The rescan can be
679                   disabled by setting the interval to 0.
680                 type: string
681               ipipEnabled:
682                 type: boolean
683               ipipMTU:
684                 description: 'IPIPMTU is the MTU to set on the tunnel device. See
685                   Configuring MTU [Default: 1440]'
686                 type: integer
687               ipsetsRefreshInterval:
688                 description: 'IpsetsRefreshInterval is the period at which Felix re-checks
689                   all iptables state to ensure that no other process has accidentally
690                   broken Calico’s rules. Set to 0 to disable iptables refresh. [Default:
691                   90s]'
692                 type: string
693               iptablesBackend:
694                 description: IptablesBackend specifies which backend of iptables will
695                   be used. The default is legacy.
696                 type: string
697               iptablesFilterAllowAction:
698                 type: string
699               iptablesLockFilePath:
700                 description: 'IptablesLockFilePath is the location of the iptables
701                   lock file. You may need to change this if the lock file is not in
702                   its standard location (for example if you have mapped it into Felix’s
703                   container at a different path). [Default: /run/xtables.lock]'
704                 type: string
705               iptablesLockProbeInterval:
706                 description: 'IptablesLockProbeInterval is the time that Felix will
707                   wait between attempts to acquire the iptables lock if it is not
708                   available. Lower values make Felix more responsive when the lock
709                   is contended, but use more CPU. [Default: 50ms]'
710                 type: string
711               iptablesLockTimeout:
712                 description: 'IptablesLockTimeout is the time that Felix will wait
713                   for the iptables lock, or 0, to disable. To use this feature, Felix
714                   must share the iptables lock file with all other processes that
715                   also take the lock. When running Felix inside a container, this
716                   requires the /run directory of the host to be mounted into the calico/node
717                   or calico/felix container. [Default: 0s disabled]'
718                 type: string
719               iptablesMangleAllowAction:
720                 type: string
721               iptablesMarkMask:
722                 description: 'IptablesMarkMask is the mask that Felix selects its
723                   IPTables Mark bits from. Should be a 32 bit hexadecimal number with
724                   at least 8 bits set, none of which clash with any other mark bits
725                   in use on the system. [Default: 0xff000000]'
726                 format: int32
727                 type: integer
728               iptablesNATOutgoingInterfaceFilter:
729                 type: string
730               iptablesPostWriteCheckInterval:
731                 description: 'IptablesPostWriteCheckInterval is the period after Felix
732                   has done a write to the dataplane that it schedules an extra read
733                   back in order to check the write was not clobbered by another process.
734                   This should only occur if another application on the system doesn’t
735                   respect the iptables lock. [Default: 1s]'
736                 type: string
737               iptablesRefreshInterval:
738                 description: 'IptablesRefreshInterval is the period at which Felix
739                   re-checks the IP sets in the dataplane to ensure that no other process
740                   has accidentally broken Calico’s rules. Set to 0 to disable IP sets
741                   refresh. Note: the default for this value is lower than the other
742                   refresh intervals as a workaround for a Linux kernel bug that was
743                   fixed in kernel version 4.11. If you are using v4.11 or greater
744                   you may want to set this to, a higher value to reduce Felix CPU
745                   usage. [Default: 10s]'
746                 type: string
747               ipv6Support:
748                 type: boolean
749               kubeNodePortRanges:
750                 description: 'KubeNodePortRanges holds list of port ranges used for
751                   service node ports. Only used if felix detects kube-proxy running
752                   in ipvs mode. Felix uses these ranges to separate host and workload
753                   traffic. [Default: 30000:32767].'
754                 items:
755                   anyOf:
756                   - type: integer
757                   - type: string
758                   pattern: ^.*
759                   x-kubernetes-int-or-string: true
760                 type: array
761               logFilePath:
762                 description: 'LogFilePath is the full path to the Felix log. Set to
763                   none to disable file logging. [Default: /var/log/calico/felix.log]'
764                 type: string
765               logPrefix:
766                 description: 'LogPrefix is the log prefix that Felix uses when rendering
767                   LOG rules. [Default: calico-packet]'
768                 type: string
769               logSeverityFile:
770                 description: 'LogSeverityFile is the log severity above which logs
771                   are sent to the log file. [Default: Info]'
772                 type: string
773               logSeverityScreen:
774                 description: 'LogSeverityScreen is the log severity above which logs
775                   are sent to the stdout. [Default: Info]'
776                 type: string
777               logSeveritySys:
778                 description: 'LogSeveritySys is the log severity above which logs
779                   are sent to the syslog. Set to None for no logging to syslog. [Default:
780                   Info]'
781                 type: string
782               maxIpsetSize:
783                 type: integer
784               metadataAddr:
785                 description: 'MetadataAddr is the IP address or domain name of the
786                   server that can answer VM queries for cloud-init metadata. In OpenStack,
787                   this corresponds to the machine running nova-api (or in Ubuntu,
788                   nova-api-metadata). A value of none (case insensitive) means that
789                   Felix should not set up any NAT rule for the metadata path. [Default:
790                   127.0.0.1]'
791                 type: string
792               metadataPort:
793                 description: 'MetadataPort is the port of the metadata server. This,
794                   combined with global.MetadataAddr (if not ‘None’), is used to set
795                   up a NAT rule, from 169.254.169.254:80 to MetadataAddr:MetadataPort.
796                   In most cases this should not need to be changed [Default: 8775].'
797                 type: integer
798               natOutgoingAddress:
799                 description: NATOutgoingAddress specifies an address to use when performing
800                   source NAT for traffic in a natOutgoing pool that is leaving the
801                   network. By default the address used is an address on the interface
802                   the traffic is leaving on (ie it uses the iptables MASQUERADE target)
803                 type: string
804               natPortRange:
805                 anyOf:
806                 - type: integer
807                 - type: string
808                 description: NATPortRange specifies the range of ports that is used
809                   for port mapping when doing outgoing NAT. When unset the default
810                   behavior of the network stack is used.
811                 pattern: ^.*
812                 x-kubernetes-int-or-string: true
813               netlinkTimeout:
814                 type: string
815               openstackRegion:
816                 description: 'OpenstackRegion is the name of the region that a particular
817                   Felix belongs to. In a multi-region Calico/OpenStack deployment,
818                   this must be configured somehow for each Felix (here in the datamodel,
819                   or in felix.cfg or the environment on each compute node), and must
820                   match the [calico] openstack_region value configured in neutron.conf
821                   on each node. [Default: Empty]'
822                 type: string
823               policySyncPathPrefix:
824                 description: 'PolicySyncPathPrefix is used to by Felix to communicate
825                   policy changes to external services, like Application layer policy.
826                   [Default: Empty]'
827                 type: string
828               prometheusGoMetricsEnabled:
829                 description: 'PrometheusGoMetricsEnabled disables Go runtime metrics
830                   collection, which the Prometheus client does by default, when set
831                   to false. This reduces the number of metrics reported, reducing
832                   Prometheus load. [Default: true]'
833                 type: boolean
834               prometheusMetricsEnabled:
835                 description: 'PrometheusMetricsEnabled enables the Prometheus metrics
836                   server in Felix if set to true. [Default: false]'
837                 type: boolean
838               prometheusMetricsHost:
839                 description: 'PrometheusMetricsHost is the host that the Prometheus
840                   metrics server should bind to. [Default: empty]'
841                 type: string
842               prometheusMetricsPort:
843                 description: 'PrometheusMetricsPort is the TCP port that the Prometheus
844                   metrics server should bind to. [Default: 9091]'
845                 type: integer
846               prometheusProcessMetricsEnabled:
847                 description: 'PrometheusProcessMetricsEnabled disables process metrics
848                   collection, which the Prometheus client does by default, when set
849                   to false. This reduces the number of metrics reported, reducing
850                   Prometheus load. [Default: true]'
851                 type: boolean
852               removeExternalRoutes:
853                 description: Whether or not to remove device routes that have not
854                   been programmed by Felix. Disabling this will allow external applications
855                   to also add device routes. This is enabled by default which means
856                   we will remove externally added routes.
857                 type: boolean
858               reportingInterval:
859                 description: 'ReportingInterval is the interval at which Felix reports
860                   its status into the datastore or 0 to disable. Must be non-zero
861                   in OpenStack deployments. [Default: 30s]'
862                 type: string
863               reportingTTL:
864                 description: 'ReportingTTL is the time-to-live setting for process-wide
865                   status reports. [Default: 90s]'
866                 type: string
867               routeRefreshInterval:
868                 description: 'RouterefreshInterval is the period at which Felix re-checks
869                   the routes in the dataplane to ensure that no other process has
870                   accidentally broken Calico’s rules. Set to 0 to disable route refresh.
871                   [Default: 90s]'
872                 type: string
873               routeSource:
874                 description: 'RouteSource configures where Felix gets its routing
875                   information. - WorkloadIPs: use workload endpoints to construct
876                   routes. - CalicoIPAM: the default - use IPAM data to construct routes.'
877                 type: string
878               routeTableRange:
879                 description: Calico programs additional Linux route tables for various
880                   purposes.  RouteTableRange specifies the indices of the route tables
881                   that Calico should use.
882                 properties:
883                   max:
884                     type: integer
885                   min:
886                     type: integer
887                 required:
888                 - max
889                 - min
890                 type: object
891               sidecarAccelerationEnabled:
892                 description: 'SidecarAccelerationEnabled enables experimental sidecar
893                   acceleration [Default: false]'
894                 type: boolean
895               usageReportingEnabled:
896                 description: 'UsageReportingEnabled reports anonymous Calico version
897                   number and cluster size to projectcalico.org. Logs warnings returned
898                   by the usage server. For example, if a significant security vulnerability
899                   has been discovered in the version of Calico being used. [Default:
900                   true]'
901                 type: boolean
902               usageReportingInitialDelay:
903                 description: 'UsageReportingInitialDelay controls the minimum delay
904                   before Felix makes a report. [Default: 300s]'
905                 type: string
906               usageReportingInterval:
907                 description: 'UsageReportingInterval controls the interval at which
908                   Felix makes reports. [Default: 86400s]'
909                 type: string
910               useInternalDataplaneDriver:
911                 type: boolean
912               vxlanEnabled:
913                 type: boolean
914               vxlanMTU:
915                 description: 'VXLANMTU is the MTU to set on the tunnel device. See
916                   Configuring MTU [Default: 1440]'
917                 type: integer
918               vxlanPort:
919                 type: integer
920               vxlanVNI:
921                 type: integer
922               wireguardEnabled:
923                 description: 'WireguardEnabled controls whether Wireguard is enabled.
924                   [Default: false]'
925                 type: boolean
926               wireguardInterfaceName:
927                 description: 'WireguardInterfaceName specifies the name to use for
928                   the Wireguard interface. [Default: wg.calico]'
929                 type: string
930               wireguardListeningPort:
931                 description: 'WireguardListeningPort controls the listening port used
932                   by Wireguard. [Default: 51820]'
933                 type: integer
934               wireguardMTU:
935                 description: 'WireguardMTU controls the MTU on the Wireguard interface.
936                   See Configuring MTU [Default: 1420]'
937                 type: integer
938               wireguardRoutingRulePriority:
939                 description: 'WireguardRoutingRulePriority controls the priority value
940                   to use for the Wireguard routing rule. [Default: 99]'
941                 type: integer
942               xdpEnabled:
943                 description: 'XDPEnabled enables XDP acceleration for suitable untracked
944                   incoming deny rules. [Default: true]'
945                 type: boolean
946               xdpRefreshInterval:
947                 description: 'XDPRefreshInterval is the period at which Felix re-checks
948                   all XDP state to ensure that no other process has accidentally broken
949                   Calico''s BPF maps or attached programs. Set to 0 to disable XDP
950                   refresh. [Default: 90s]'
951                 type: string
952             type: object
953         type: object
954     served: true
955     storage: true
956 status:
957   acceptedNames:
958     kind: ""
959     plural: ""
960   conditions: []
961   storedVersions: []
962
963 ---
964
965 ---
966 apiVersion: apiextensions.k8s.io/v1
967 kind: CustomResourceDefinition
968 metadata:
969   annotations:
970     controller-gen.kubebuilder.io/version: (devel)
971   creationTimestamp: null
972   name: globalnetworkpolicies.crd.projectcalico.org
973 spec:
974   group: crd.projectcalico.org
975   names:
976     kind: GlobalNetworkPolicy
977     listKind: GlobalNetworkPolicyList
978     plural: globalnetworkpolicies
979     singular: globalnetworkpolicy
980   scope: Cluster
981   versions:
982   - name: v1
983     schema:
984       openAPIV3Schema:
985         properties:
986           apiVersion:
987             description: 'APIVersion defines the versioned schema of this representation
988               of an object. Servers should convert recognized schemas to the latest
989               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
990             type: string
991           kind:
992             description: 'Kind is a string value representing the REST resource this
993               object represents. Servers may infer this from the endpoint the client
994               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
995             type: string
996           metadata:
997             type: object
998           spec:
999             properties:
1000               applyOnForward:
1001                 description: ApplyOnForward indicates to apply the rules in this policy
1002                   on forward traffic.
1003                 type: boolean
1004               doNotTrack:
1005                 description: DoNotTrack indicates whether packets matched by the rules
1006                   in this policy should go through the data plane's connection tracking,
1007                   such as Linux conntrack.  If True, the rules in this policy are
1008                   applied before any data plane connection tracking, and packets allowed
1009                   by this policy are marked as not to be tracked.
1010                 type: boolean
1011               egress:
1012                 description: The ordered set of egress rules.  Each rule contains
1013                   a set of packet match criteria and a corresponding action to apply.
1014                 items:
1015                   description: "A Rule encapsulates a set of match criteria and an
1016                     action.  Both selector-based security Policy and security Profiles
1017                     reference rules - separated out as a list of rules for both ingress
1018                     and egress packet matching. \n Each positive match criteria has
1019                     a negated version, prefixed with ”Not”. All the match criteria
1020                     within a rule must be satisfied for a packet to match. A single
1021                     rule can contain the positive and negative version of a match
1022                     and both must be satisfied for the rule to match."
1023                   properties:
1024                     action:
1025                       type: string
1026                     destination:
1027                       description: Destination contains the match criteria that apply
1028                         to destination entity.
1029                       properties:
1030                         namespaceSelector:
1031                           description: "NamespaceSelector is an optional field that
1032                             contains a selector expression. Only traffic that originates
1033                             from (or terminates at) endpoints within the selected
1034                             namespaces will be matched. When both NamespaceSelector
1035                             and Selector are defined on the same rule, then only workload
1036                             endpoints that are matched by both selectors will be selected
1037                             by the rule. \n For NetworkPolicy, an empty NamespaceSelector
1038                             implies that the Selector is limited to selecting only
1039                             workload endpoints in the same namespace as the NetworkPolicy.
1040                             \n For NetworkPolicy, `global()` NamespaceSelector implies
1041                             that the Selector is limited to selecting only GlobalNetworkSet
1042                             or HostEndpoint. \n For GlobalNetworkPolicy, an empty
1043                             NamespaceSelector implies the Selector applies to workload
1044                             endpoints across all namespaces."
1045                           type: string
1046                         nets:
1047                           description: Nets is an optional field that restricts the
1048                             rule to only apply to traffic that originates from (or
1049                             terminates at) IP addresses in any of the given subnets.
1050                           items:
1051                             type: string
1052                           type: array
1053                         notNets:
1054                           description: NotNets is the negated version of the Nets
1055                             field.
1056                           items:
1057                             type: string
1058                           type: array
1059                         notPorts:
1060                           description: NotPorts is the negated version of the Ports
1061                             field. Since only some protocols have ports, if any ports
1062                             are specified it requires the Protocol match in the Rule
1063                             to be set to "TCP" or "UDP".
1064                           items:
1065                             anyOf:
1066                             - type: integer
1067                             - type: string
1068                             pattern: ^.*
1069                             x-kubernetes-int-or-string: true
1070                           type: array
1071                         notSelector:
1072                           description: NotSelector is the negated version of the Selector
1073                             field.  See Selector field for subtleties with negated
1074                             selectors.
1075                           type: string
1076                         ports:
1077                           description: "Ports is an optional field that restricts
1078                             the rule to only apply to traffic that has a source (destination)
1079                             port that matches one of these ranges/values. This value
1080                             is a list of integers or strings that represent ranges
1081                             of ports. \n Since only some protocols have ports, if
1082                             any ports are specified it requires the Protocol match
1083                             in the Rule to be set to \"TCP\" or \"UDP\"."
1084                           items:
1085                             anyOf:
1086                             - type: integer
1087                             - type: string
1088                             pattern: ^.*
1089                             x-kubernetes-int-or-string: true
1090                           type: array
1091                         selector:
1092                           description: "Selector is an optional field that contains
1093                             a selector expression (see Policy for sample syntax).
1094                             \ Only traffic that originates from (terminates at) endpoints
1095                             matching the selector will be matched. \n Note that: in
1096                             addition to the negated version of the Selector (see NotSelector
1097                             below), the selector expression syntax itself supports
1098                             negation.  The two types of negation are subtly different.
1099                             One negates the set of matched endpoints, the other negates
1100                             the whole match: \n \tSelector = \"!has(my_label)\" matches
1101                             packets that are from other Calico-controlled \tendpoints
1102                             that do not have the label “my_label”. \n \tNotSelector
1103                             = \"has(my_label)\" matches packets that are not from
1104                             Calico-controlled \tendpoints that do have the label “my_label”.
1105                             \n The effect is that the latter will accept packets from
1106                             non-Calico sources whereas the former is limited to packets
1107                             from Calico-controlled endpoints."
1108                           type: string
1109                         serviceAccounts:
1110                           description: ServiceAccounts is an optional field that restricts
1111                             the rule to only apply to traffic that originates from
1112                             (or terminates at) a pod running as a matching service
1113                             account.
1114                           properties:
1115                             names:
1116                               description: Names is an optional field that restricts
1117                                 the rule to only apply to traffic that originates
1118                                 from (or terminates at) a pod running as a service
1119                                 account whose name is in the list.
1120                               items:
1121                                 type: string
1122                               type: array
1123                             selector:
1124                               description: Selector is an optional field that restricts
1125                                 the rule to only apply to traffic that originates
1126                                 from (or terminates at) a pod running as a service
1127                                 account that matches the given label selector. If
1128                                 both Names and Selector are specified then they are
1129                                 AND'ed.
1130                               type: string
1131                           type: object
1132                       type: object
1133                     http:
1134                       description: HTTP contains match criteria that apply to HTTP
1135                         requests.
1136                       properties:
1137                         methods:
1138                           description: Methods is an optional field that restricts
1139                             the rule to apply only to HTTP requests that use one of
1140                             the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple
1141                             methods are OR'd together.
1142                           items:
1143                             type: string
1144                           type: array
1145                         paths:
1146                           description: 'Paths is an optional field that restricts
1147                             the rule to apply to HTTP requests that use one of the
1148                             listed HTTP Paths. Multiple paths are OR''d together.
1149                             e.g: - exact: /foo - prefix: /bar NOTE: Each entry may
1150                             ONLY specify either a `exact` or a `prefix` match. The
1151                             validator will check for it.'
1152                           items:
1153                             description: 'HTTPPath specifies an HTTP path to match.
1154                               It may be either of the form: exact: <path>: which matches
1155                               the path exactly or prefix: <path-prefix>: which matches
1156                               the path prefix'
1157                             properties:
1158                               exact:
1159                                 type: string
1160                               prefix:
1161                                 type: string
1162                             type: object
1163                           type: array
1164                       type: object
1165                     icmp:
1166                       description: ICMP is an optional field that restricts the rule
1167                         to apply to a specific type and code of ICMP traffic.  This
1168                         should only be specified if the Protocol field is set to "ICMP"
1169                         or "ICMPv6".
1170                       properties:
1171                         code:
1172                           description: Match on a specific ICMP code.  If specified,
1173                             the Type value must also be specified. This is a technical
1174                             limitation imposed by the kernel’s iptables firewall,
1175                             which Calico uses to enforce the rule.
1176                           type: integer
1177                         type:
1178                           description: Match on a specific ICMP type.  For example
1179                             a value of 8 refers to ICMP Echo Request (i.e. pings).
1180                           type: integer
1181                       type: object
1182                     ipVersion:
1183                       description: IPVersion is an optional field that restricts the
1184                         rule to only match a specific IP version.
1185                       type: integer
1186                     metadata:
1187                       description: Metadata contains additional information for this
1188                         rule
1189                       properties:
1190                         annotations:
1191                           additionalProperties:
1192                             type: string
1193                           description: Annotations is a set of key value pairs that
1194                             give extra information about the rule
1195                           type: object
1196                       type: object
1197                     notICMP:
1198                       description: NotICMP is the negated version of the ICMP field.
1199                       properties:
1200                         code:
1201                           description: Match on a specific ICMP code.  If specified,
1202                             the Type value must also be specified. This is a technical
1203                             limitation imposed by the kernel’s iptables firewall,
1204                             which Calico uses to enforce the rule.
1205                           type: integer
1206                         type:
1207                           description: Match on a specific ICMP type.  For example
1208                             a value of 8 refers to ICMP Echo Request (i.e. pings).
1209                           type: integer
1210                       type: object
1211                     notProtocol:
1212                       anyOf:
1213                       - type: integer
1214                       - type: string
1215                       description: NotProtocol is the negated version of the Protocol
1216                         field.
1217                       pattern: ^.*
1218                       x-kubernetes-int-or-string: true
1219                     protocol:
1220                       anyOf:
1221                       - type: integer
1222                       - type: string
1223                       description: "Protocol is an optional field that restricts the
1224                         rule to only apply to traffic of a specific IP protocol. Required
1225                         if any of the EntityRules contain Ports (because ports only
1226                         apply to certain protocols). \n Must be one of these string
1227                         values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",
1228                         \"UDPLite\" or an integer in the range 1-255."
1229                       pattern: ^.*
1230                       x-kubernetes-int-or-string: true
1231                     source:
1232                       description: Source contains the match criteria that apply to
1233                         source entity.
1234                       properties:
1235                         namespaceSelector:
1236                           description: "NamespaceSelector is an optional field that
1237                             contains a selector expression. Only traffic that originates
1238                             from (or terminates at) endpoints within the selected
1239                             namespaces will be matched. When both NamespaceSelector
1240                             and Selector are defined on the same rule, then only workload
1241                             endpoints that are matched by both selectors will be selected
1242                             by the rule. \n For NetworkPolicy, an empty NamespaceSelector
1243                             implies that the Selector is limited to selecting only
1244                             workload endpoints in the same namespace as the NetworkPolicy.
1245                             \n For NetworkPolicy, `global()` NamespaceSelector implies
1246                             that the Selector is limited to selecting only GlobalNetworkSet
1247                             or HostEndpoint. \n For GlobalNetworkPolicy, an empty
1248                             NamespaceSelector implies the Selector applies to workload
1249                             endpoints across all namespaces."
1250                           type: string
1251                         nets:
1252                           description: Nets is an optional field that restricts the
1253                             rule to only apply to traffic that originates from (or
1254                             terminates at) IP addresses in any of the given subnets.
1255                           items:
1256                             type: string
1257                           type: array
1258                         notNets:
1259                           description: NotNets is the negated version of the Nets
1260                             field.
1261                           items:
1262                             type: string
1263                           type: array
1264                         notPorts:
1265                           description: NotPorts is the negated version of the Ports
1266                             field. Since only some protocols have ports, if any ports
1267                             are specified it requires the Protocol match in the Rule
1268                             to be set to "TCP" or "UDP".
1269                           items:
1270                             anyOf:
1271                             - type: integer
1272                             - type: string
1273                             pattern: ^.*
1274                             x-kubernetes-int-or-string: true
1275                           type: array
1276                         notSelector:
1277                           description: NotSelector is the negated version of the Selector
1278                             field.  See Selector field for subtleties with negated
1279                             selectors.
1280                           type: string
1281                         ports:
1282                           description: "Ports is an optional field that restricts
1283                             the rule to only apply to traffic that has a source (destination)
1284                             port that matches one of these ranges/values. This value
1285                             is a list of integers or strings that represent ranges
1286                             of ports. \n Since only some protocols have ports, if
1287                             any ports are specified it requires the Protocol match
1288                             in the Rule to be set to \"TCP\" or \"UDP\"."
1289                           items:
1290                             anyOf:
1291                             - type: integer
1292                             - type: string
1293                             pattern: ^.*
1294                             x-kubernetes-int-or-string: true
1295                           type: array
1296                         selector:
1297                           description: "Selector is an optional field that contains
1298                             a selector expression (see Policy for sample syntax).
1299                             \ Only traffic that originates from (terminates at) endpoints
1300                             matching the selector will be matched. \n Note that: in
1301                             addition to the negated version of the Selector (see NotSelector
1302                             below), the selector expression syntax itself supports
1303                             negation.  The two types of negation are subtly different.
1304                             One negates the set of matched endpoints, the other negates
1305                             the whole match: \n \tSelector = \"!has(my_label)\" matches
1306                             packets that are from other Calico-controlled \tendpoints
1307                             that do not have the label “my_label”. \n \tNotSelector
1308                             = \"has(my_label)\" matches packets that are not from
1309                             Calico-controlled \tendpoints that do have the label “my_label”.
1310                             \n The effect is that the latter will accept packets from
1311                             non-Calico sources whereas the former is limited to packets
1312                             from Calico-controlled endpoints."
1313                           type: string
1314                         serviceAccounts:
1315                           description: ServiceAccounts is an optional field that restricts
1316                             the rule to only apply to traffic that originates from
1317                             (or terminates at) a pod running as a matching service
1318                             account.
1319                           properties:
1320                             names:
1321                               description: Names is an optional field that restricts
1322                                 the rule to only apply to traffic that originates
1323                                 from (or terminates at) a pod running as a service
1324                                 account whose name is in the list.
1325                               items:
1326                                 type: string
1327                               type: array
1328                             selector:
1329                               description: Selector is an optional field that restricts
1330                                 the rule to only apply to traffic that originates
1331                                 from (or terminates at) a pod running as a service
1332                                 account that matches the given label selector. If
1333                                 both Names and Selector are specified then they are
1334                                 AND'ed.
1335                               type: string
1336                           type: object
1337                       type: object
1338                   required:
1339                   - action
1340                   type: object
1341                 type: array
1342               ingress:
1343                 description: The ordered set of ingress rules.  Each rule contains
1344                   a set of packet match criteria and a corresponding action to apply.
1345                 items:
1346                   description: "A Rule encapsulates a set of match criteria and an
1347                     action.  Both selector-based security Policy and security Profiles
1348                     reference rules - separated out as a list of rules for both ingress
1349                     and egress packet matching. \n Each positive match criteria has
1350                     a negated version, prefixed with ”Not”. All the match criteria
1351                     within a rule must be satisfied for a packet to match. A single
1352                     rule can contain the positive and negative version of a match
1353                     and both must be satisfied for the rule to match."
1354                   properties:
1355                     action:
1356                       type: string
1357                     destination:
1358                       description: Destination contains the match criteria that apply
1359                         to destination entity.
1360                       properties:
1361                         namespaceSelector:
1362                           description: "NamespaceSelector is an optional field that
1363                             contains a selector expression. Only traffic that originates
1364                             from (or terminates at) endpoints within the selected
1365                             namespaces will be matched. When both NamespaceSelector
1366                             and Selector are defined on the same rule, then only workload
1367                             endpoints that are matched by both selectors will be selected
1368                             by the rule. \n For NetworkPolicy, an empty NamespaceSelector
1369                             implies that the Selector is limited to selecting only
1370                             workload endpoints in the same namespace as the NetworkPolicy.
1371                             \n For NetworkPolicy, `global()` NamespaceSelector implies
1372                             that the Selector is limited to selecting only GlobalNetworkSet
1373                             or HostEndpoint. \n For GlobalNetworkPolicy, an empty
1374                             NamespaceSelector implies the Selector applies to workload
1375                             endpoints across all namespaces."
1376                           type: string
1377                         nets:
1378                           description: Nets is an optional field that restricts the
1379                             rule to only apply to traffic that originates from (or
1380                             terminates at) IP addresses in any of the given subnets.
1381                           items:
1382                             type: string
1383                           type: array
1384                         notNets:
1385                           description: NotNets is the negated version of the Nets
1386                             field.
1387                           items:
1388                             type: string
1389                           type: array
1390                         notPorts:
1391                           description: NotPorts is the negated version of the Ports
1392                             field. Since only some protocols have ports, if any ports
1393                             are specified it requires the Protocol match in the Rule
1394                             to be set to "TCP" or "UDP".
1395                           items:
1396                             anyOf:
1397                             - type: integer
1398                             - type: string
1399                             pattern: ^.*
1400                             x-kubernetes-int-or-string: true
1401                           type: array
1402                         notSelector:
1403                           description: NotSelector is the negated version of the Selector
1404                             field.  See Selector field for subtleties with negated
1405                             selectors.
1406                           type: string
1407                         ports:
1408                           description: "Ports is an optional field that restricts
1409                             the rule to only apply to traffic that has a source (destination)
1410                             port that matches one of these ranges/values. This value
1411                             is a list of integers or strings that represent ranges
1412                             of ports. \n Since only some protocols have ports, if
1413                             any ports are specified it requires the Protocol match
1414                             in the Rule to be set to \"TCP\" or \"UDP\"."
1415                           items:
1416                             anyOf:
1417                             - type: integer
1418                             - type: string
1419                             pattern: ^.*
1420                             x-kubernetes-int-or-string: true
1421                           type: array
1422                         selector:
1423                           description: "Selector is an optional field that contains
1424                             a selector expression (see Policy for sample syntax).
1425                             \ Only traffic that originates from (terminates at) endpoints
1426                             matching the selector will be matched. \n Note that: in
1427                             addition to the negated version of the Selector (see NotSelector
1428                             below), the selector expression syntax itself supports
1429                             negation.  The two types of negation are subtly different.
1430                             One negates the set of matched endpoints, the other negates
1431                             the whole match: \n \tSelector = \"!has(my_label)\" matches
1432                             packets that are from other Calico-controlled \tendpoints
1433                             that do not have the label “my_label”. \n \tNotSelector
1434                             = \"has(my_label)\" matches packets that are not from
1435                             Calico-controlled \tendpoints that do have the label “my_label”.
1436                             \n The effect is that the latter will accept packets from
1437                             non-Calico sources whereas the former is limited to packets
1438                             from Calico-controlled endpoints."
1439                           type: string
1440                         serviceAccounts:
1441                           description: ServiceAccounts is an optional field that restricts
1442                             the rule to only apply to traffic that originates from
1443                             (or terminates at) a pod running as a matching service
1444                             account.
1445                           properties:
1446                             names:
1447                               description: Names is an optional field that restricts
1448                                 the rule to only apply to traffic that originates
1449                                 from (or terminates at) a pod running as a service
1450                                 account whose name is in the list.
1451                               items:
1452                                 type: string
1453                               type: array
1454                             selector:
1455                               description: Selector is an optional field that restricts
1456                                 the rule to only apply to traffic that originates
1457                                 from (or terminates at) a pod running as a service
1458                                 account that matches the given label selector. If
1459                                 both Names and Selector are specified then they are
1460                                 AND'ed.
1461                               type: string
1462                           type: object
1463                       type: object
1464                     http:
1465                       description: HTTP contains match criteria that apply to HTTP
1466                         requests.
1467                       properties:
1468                         methods:
1469                           description: Methods is an optional field that restricts
1470                             the rule to apply only to HTTP requests that use one of
1471                             the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple
1472                             methods are OR'd together.
1473                           items:
1474                             type: string
1475                           type: array
1476                         paths:
1477                           description: 'Paths is an optional field that restricts
1478                             the rule to apply to HTTP requests that use one of the
1479                             listed HTTP Paths. Multiple paths are OR''d together.
1480                             e.g: - exact: /foo - prefix: /bar NOTE: Each entry may
1481                             ONLY specify either a `exact` or a `prefix` match. The
1482                             validator will check for it.'
1483                           items:
1484                             description: 'HTTPPath specifies an HTTP path to match.
1485                               It may be either of the form: exact: <path>: which matches
1486                               the path exactly or prefix: <path-prefix>: which matches
1487                               the path prefix'
1488                             properties:
1489                               exact:
1490                                 type: string
1491                               prefix:
1492                                 type: string
1493                             type: object
1494                           type: array
1495                       type: object
1496                     icmp:
1497                       description: ICMP is an optional field that restricts the rule
1498                         to apply to a specific type and code of ICMP traffic.  This
1499                         should only be specified if the Protocol field is set to "ICMP"
1500                         or "ICMPv6".
1501                       properties:
1502                         code:
1503                           description: Match on a specific ICMP code.  If specified,
1504                             the Type value must also be specified. This is a technical
1505                             limitation imposed by the kernel’s iptables firewall,
1506                             which Calico uses to enforce the rule.
1507                           type: integer
1508                         type:
1509                           description: Match on a specific ICMP type.  For example
1510                             a value of 8 refers to ICMP Echo Request (i.e. pings).
1511                           type: integer
1512                       type: object
1513                     ipVersion:
1514                       description: IPVersion is an optional field that restricts the
1515                         rule to only match a specific IP version.
1516                       type: integer
1517                     metadata:
1518                       description: Metadata contains additional information for this
1519                         rule
1520                       properties:
1521                         annotations:
1522                           additionalProperties:
1523                             type: string
1524                           description: Annotations is a set of key value pairs that
1525                             give extra information about the rule
1526                           type: object
1527                       type: object
1528                     notICMP:
1529                       description: NotICMP is the negated version of the ICMP field.
1530                       properties:
1531                         code:
1532                           description: Match on a specific ICMP code.  If specified,
1533                             the Type value must also be specified. This is a technical
1534                             limitation imposed by the kernel’s iptables firewall,
1535                             which Calico uses to enforce the rule.
1536                           type: integer
1537                         type:
1538                           description: Match on a specific ICMP type.  For example
1539                             a value of 8 refers to ICMP Echo Request (i.e. pings).
1540                           type: integer
1541                       type: object
1542                     notProtocol:
1543                       anyOf:
1544                       - type: integer
1545                       - type: string
1546                       description: NotProtocol is the negated version of the Protocol
1547                         field.
1548                       pattern: ^.*
1549                       x-kubernetes-int-or-string: true
1550                     protocol:
1551                       anyOf:
1552                       - type: integer
1553                       - type: string
1554                       description: "Protocol is an optional field that restricts the
1555                         rule to only apply to traffic of a specific IP protocol. Required
1556                         if any of the EntityRules contain Ports (because ports only
1557                         apply to certain protocols). \n Must be one of these string
1558                         values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",
1559                         \"UDPLite\" or an integer in the range 1-255."
1560                       pattern: ^.*
1561                       x-kubernetes-int-or-string: true
1562                     source:
1563                       description: Source contains the match criteria that apply to
1564                         source entity.
1565                       properties:
1566                         namespaceSelector:
1567                           description: "NamespaceSelector is an optional field that
1568                             contains a selector expression. Only traffic that originates
1569                             from (or terminates at) endpoints within the selected
1570                             namespaces will be matched. When both NamespaceSelector
1571                             and Selector are defined on the same rule, then only workload
1572                             endpoints that are matched by both selectors will be selected
1573                             by the rule. \n For NetworkPolicy, an empty NamespaceSelector
1574                             implies that the Selector is limited to selecting only
1575                             workload endpoints in the same namespace as the NetworkPolicy.
1576                             \n For NetworkPolicy, `global()` NamespaceSelector implies
1577                             that the Selector is limited to selecting only GlobalNetworkSet
1578                             or HostEndpoint. \n For GlobalNetworkPolicy, an empty
1579                             NamespaceSelector implies the Selector applies to workload
1580                             endpoints across all namespaces."
1581                           type: string
1582                         nets:
1583                           description: Nets is an optional field that restricts the
1584                             rule to only apply to traffic that originates from (or
1585                             terminates at) IP addresses in any of the given subnets.
1586                           items:
1587                             type: string
1588                           type: array
1589                         notNets:
1590                           description: NotNets is the negated version of the Nets
1591                             field.
1592                           items:
1593                             type: string
1594                           type: array
1595                         notPorts:
1596                           description: NotPorts is the negated version of the Ports
1597                             field. Since only some protocols have ports, if any ports
1598                             are specified it requires the Protocol match in the Rule
1599                             to be set to "TCP" or "UDP".
1600                           items:
1601                             anyOf:
1602                             - type: integer
1603                             - type: string
1604                             pattern: ^.*
1605                             x-kubernetes-int-or-string: true
1606                           type: array
1607                         notSelector:
1608                           description: NotSelector is the negated version of the Selector
1609                             field.  See Selector field for subtleties with negated
1610                             selectors.
1611                           type: string
1612                         ports:
1613                           description: "Ports is an optional field that restricts
1614                             the rule to only apply to traffic that has a source (destination)
1615                             port that matches one of these ranges/values. This value
1616                             is a list of integers or strings that represent ranges
1617                             of ports. \n Since only some protocols have ports, if
1618                             any ports are specified it requires the Protocol match
1619                             in the Rule to be set to \"TCP\" or \"UDP\"."
1620                           items:
1621                             anyOf:
1622                             - type: integer
1623                             - type: string
1624                             pattern: ^.*
1625                             x-kubernetes-int-or-string: true
1626                           type: array
1627                         selector:
1628                           description: "Selector is an optional field that contains
1629                             a selector expression (see Policy for sample syntax).
1630                             \ Only traffic that originates from (terminates at) endpoints
1631                             matching the selector will be matched. \n Note that: in
1632                             addition to the negated version of the Selector (see NotSelector
1633                             below), the selector expression syntax itself supports
1634                             negation.  The two types of negation are subtly different.
1635                             One negates the set of matched endpoints, the other negates
1636                             the whole match: \n \tSelector = \"!has(my_label)\" matches
1637                             packets that are from other Calico-controlled \tendpoints
1638                             that do not have the label “my_label”. \n \tNotSelector
1639                             = \"has(my_label)\" matches packets that are not from
1640                             Calico-controlled \tendpoints that do have the label “my_label”.
1641                             \n The effect is that the latter will accept packets from
1642                             non-Calico sources whereas the former is limited to packets
1643                             from Calico-controlled endpoints."
1644                           type: string
1645                         serviceAccounts:
1646                           description: ServiceAccounts is an optional field that restricts
1647                             the rule to only apply to traffic that originates from
1648                             (or terminates at) a pod running as a matching service
1649                             account.
1650                           properties:
1651                             names:
1652                               description: Names is an optional field that restricts
1653                                 the rule to only apply to traffic that originates
1654                                 from (or terminates at) a pod running as a service
1655                                 account whose name is in the list.
1656                               items:
1657                                 type: string
1658                               type: array
1659                             selector:
1660                               description: Selector is an optional field that restricts
1661                                 the rule to only apply to traffic that originates
1662                                 from (or terminates at) a pod running as a service
1663                                 account that matches the given label selector. If
1664                                 both Names and Selector are specified then they are
1665                                 AND'ed.
1666                               type: string
1667                           type: object
1668                       type: object
1669                   required:
1670                   - action
1671                   type: object
1672                 type: array
1673               namespaceSelector:
1674                 description: NamespaceSelector is an optional field for an expression
1675                   used to select a pod based on namespaces.
1676                 type: string
1677               order:
1678                 description: Order is an optional field that specifies the order in
1679                   which the policy is applied. Policies with higher "order" are applied
1680                   after those with lower order.  If the order is omitted, it may be
1681                   considered to be "infinite" - i.e. the policy will be applied last.  Policies
1682                   with identical order will be applied in alphanumerical order based
1683                   on the Policy "Name".
1684                 type: number
1685               preDNAT:
1686                 description: PreDNAT indicates to apply the rules in this policy before
1687                   any DNAT.
1688                 type: boolean
1689               selector:
1690                 description: "The selector is an expression used to pick pick out
1691                   the endpoints that the policy should be applied to. \n Selector
1692                   expressions follow this syntax: \n \tlabel == \"string_literal\"
1693                   \ ->  comparison, e.g. my_label == \"foo bar\" \tlabel != \"string_literal\"
1694                   \  ->  not equal; also matches if label is not present \tlabel in
1695                   { \"a\", \"b\", \"c\", ... }  ->  true if the value of label X is
1696                   one of \"a\", \"b\", \"c\" \tlabel not in { \"a\", \"b\", \"c\",
1697                   ... }  ->  true if the value of label X is not one of \"a\", \"b\",
1698                   \"c\" \thas(label_name)  -> True if that label is present \t! expr
1699                   -> negation of expr \texpr && expr  -> Short-circuit and \texpr
1700                   || expr  -> Short-circuit or \t( expr ) -> parens for grouping \tall()
1701                   or the empty selector -> matches all endpoints. \n Label names are
1702                   allowed to contain alphanumerics, -, _ and /. String literals are
1703                   more permissive but they do not support escape characters. \n Examples
1704                   (with made-up labels): \n \ttype == \"webserver\" && deployment
1705                   == \"prod\" \ttype in {\"frontend\", \"backend\"} \tdeployment !=
1706                   \"dev\" \t! has(label_name)"
1707                 type: string
1708               serviceAccountSelector:
1709                 description: ServiceAccountSelector is an optional field for an expression
1710                   used to select a pod based on service accounts.
1711                 type: string
1712               types:
1713                 description: "Types indicates whether this policy applies to ingress,
1714                   or to egress, or to both.  When not explicitly specified (and so
1715                   the value on creation is empty or nil), Calico defaults Types according
1716                   to what Ingress and Egress rules are present in the policy.  The
1717                   default is: \n - [ PolicyTypeIngress ], if there are no Egress rules
1718                   (including the case where there are   also no Ingress rules) \n
1719                   - [ PolicyTypeEgress ], if there are Egress rules but no Ingress
1720                   rules \n - [ PolicyTypeIngress, PolicyTypeEgress ], if there are
1721                   both Ingress and Egress rules. \n When the policy is read back again,
1722                   Types will always be one of these values, never empty or nil."
1723                 items:
1724                   description: PolicyType enumerates the possible values of the PolicySpec
1725                     Types field.
1726                   type: string
1727                 type: array
1728             type: object
1729         type: object
1730     served: true
1731     storage: true
1732 status:
1733   acceptedNames:
1734     kind: ""
1735     plural: ""
1736   conditions: []
1737   storedVersions: []
1738
1739 ---
1740
1741 ---
1742 apiVersion: apiextensions.k8s.io/v1
1743 kind: CustomResourceDefinition
1744 metadata:
1745   annotations:
1746     controller-gen.kubebuilder.io/version: (devel)
1747   creationTimestamp: null
1748   name: globalnetworksets.crd.projectcalico.org
1749 spec:
1750   group: crd.projectcalico.org
1751   names:
1752     kind: GlobalNetworkSet
1753     listKind: GlobalNetworkSetList
1754     plural: globalnetworksets
1755     singular: globalnetworkset
1756   scope: Cluster
1757   versions:
1758   - name: v1
1759     schema:
1760       openAPIV3Schema:
1761         description: GlobalNetworkSet contains a set of arbitrary IP sub-networks/CIDRs
1762           that share labels to allow rules to refer to them via selectors.  The labels
1763           of GlobalNetworkSet are not namespaced.
1764         properties:
1765           apiVersion:
1766             description: 'APIVersion defines the versioned schema of this representation
1767               of an object. Servers should convert recognized schemas to the latest
1768               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1769             type: string
1770           kind:
1771             description: 'Kind is a string value representing the REST resource this
1772               object represents. Servers may infer this from the endpoint the client
1773               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1774             type: string
1775           metadata:
1776             type: object
1777           spec:
1778             description: GlobalNetworkSetSpec contains the specification for a NetworkSet
1779               resource.
1780             properties:
1781               nets:
1782                 description: The list of IP networks that belong to this set.
1783                 items:
1784                   type: string
1785                 type: array
1786             type: object
1787         type: object
1788     served: true
1789     storage: true
1790 status:
1791   acceptedNames:
1792     kind: ""
1793     plural: ""
1794   conditions: []
1795   storedVersions: []
1796
1797 ---
1798
1799 ---
1800 apiVersion: apiextensions.k8s.io/v1
1801 kind: CustomResourceDefinition
1802 metadata:
1803   annotations:
1804     controller-gen.kubebuilder.io/version: (devel)
1805   creationTimestamp: null
1806   name: hostendpoints.crd.projectcalico.org
1807 spec:
1808   group: crd.projectcalico.org
1809   names:
1810     kind: HostEndpoint
1811     listKind: HostEndpointList
1812     plural: hostendpoints
1813     singular: hostendpoint
1814   scope: Cluster
1815   versions:
1816   - name: v1
1817     schema:
1818       openAPIV3Schema:
1819         properties:
1820           apiVersion:
1821             description: 'APIVersion defines the versioned schema of this representation
1822               of an object. Servers should convert recognized schemas to the latest
1823               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1824             type: string
1825           kind:
1826             description: 'Kind is a string value representing the REST resource this
1827               object represents. Servers may infer this from the endpoint the client
1828               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1829             type: string
1830           metadata:
1831             type: object
1832           spec:
1833             description: HostEndpointSpec contains the specification for a HostEndpoint
1834               resource.
1835             properties:
1836               expectedIPs:
1837                 description: "The expected IP addresses (IPv4 and IPv6) of the endpoint.
1838                   If \"InterfaceName\" is not present, Calico will look for an interface
1839                   matching any of the IPs in the list and apply policy to that. Note:
1840                   \tWhen using the selector match criteria in an ingress or egress
1841                   security Policy \tor Profile, Calico converts the selector into
1842                   a set of IP addresses. For host \tendpoints, the ExpectedIPs field
1843                   is used for that purpose. (If only the interface \tname is specified,
1844                   Calico does not learn the IPs of the interface for use in match
1845                   \tcriteria.)"
1846                 items:
1847                   type: string
1848                 type: array
1849               interfaceName:
1850                 description: "Either \"*\", or the name of a specific Linux interface
1851                   to apply policy to; or empty.  \"*\" indicates that this HostEndpoint
1852                   governs all traffic to, from or through the default network namespace
1853                   of the host named by the \"Node\" field; entering and leaving that
1854                   namespace via any interface, including those from/to non-host-networked
1855                   local workloads. \n If InterfaceName is not \"*\", this HostEndpoint
1856                   only governs traffic that enters or leaves the host through the
1857                   specific interface named by InterfaceName, or - when InterfaceName
1858                   is empty - through the specific interface that has one of the IPs
1859                   in ExpectedIPs. Therefore, when InterfaceName is empty, at least
1860                   one expected IP must be specified.  Only external interfaces (such
1861                   as “eth0”) are supported here; it isn't possible for a HostEndpoint
1862                   to protect traffic through a specific local workload interface.
1863                   \n Note: Only some kinds of policy are implemented for \"*\" HostEndpoints;
1864                   initially just pre-DNAT policy.  Please check Calico documentation
1865                   for the latest position."
1866                 type: string
1867               node:
1868                 description: The node name identifying the Calico node instance.
1869                 type: string
1870               ports:
1871                 description: Ports contains the endpoint's named ports, which may
1872                   be referenced in security policy rules.
1873                 items:
1874                   properties:
1875                     name:
1876                       type: string
1877                     port:
1878                       type: integer
1879                     protocol:
1880                       anyOf:
1881                       - type: integer
1882                       - type: string
1883                       pattern: ^.*
1884                       x-kubernetes-int-or-string: true
1885                   required:
1886                   - name
1887                   - port
1888                   - protocol
1889                   type: object
1890                 type: array
1891               profiles:
1892                 description: A list of identifiers of security Profile objects that
1893                   apply to this endpoint. Each profile is applied in the order that
1894                   they appear in this list.  Profile rules are applied after the selector-based
1895                   security policy.
1896                 items:
1897                   type: string
1898                 type: array
1899             type: object
1900         type: object
1901     served: true
1902     storage: true
1903 status:
1904   acceptedNames:
1905     kind: ""
1906     plural: ""
1907   conditions: []
1908   storedVersions: []
1909
1910 ---
1911
1912 ---
1913 apiVersion: apiextensions.k8s.io/v1
1914 kind: CustomResourceDefinition
1915 metadata:
1916   annotations:
1917     controller-gen.kubebuilder.io/version: (devel)
1918   creationTimestamp: null
1919   name: ipamblocks.crd.projectcalico.org
1920 spec:
1921   group: crd.projectcalico.org
1922   names:
1923     kind: IPAMBlock
1924     listKind: IPAMBlockList
1925     plural: ipamblocks
1926     singular: ipamblock
1927   scope: Cluster
1928   versions:
1929   - name: v1
1930     schema:
1931       openAPIV3Schema:
1932         properties:
1933           apiVersion:
1934             description: 'APIVersion defines the versioned schema of this representation
1935               of an object. Servers should convert recognized schemas to the latest
1936               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1937             type: string
1938           kind:
1939             description: 'Kind is a string value representing the REST resource this
1940               object represents. Servers may infer this from the endpoint the client
1941               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1942             type: string
1943           metadata:
1944             type: object
1945           spec:
1946             description: IPAMBlockSpec contains the specification for an IPAMBlock
1947               resource.
1948             properties:
1949               affinity:
1950                 type: string
1951               allocations:
1952                 items:
1953                   type: integer
1954                   # TODO: This nullable is manually added in. We should update controller-gen
1955                   # to handle []*int properly itself.
1956                   nullable: true
1957                 type: array
1958               attributes:
1959                 items:
1960                   properties:
1961                     handle_id:
1962                       type: string
1963                     secondary:
1964                       additionalProperties:
1965                         type: string
1966                       type: object
1967                   type: object
1968                 type: array
1969               cidr:
1970                 type: string
1971               deleted:
1972                 type: boolean
1973               strictAffinity:
1974                 type: boolean
1975               unallocated:
1976                 items:
1977                   type: integer
1978                 type: array
1979             required:
1980             - allocations
1981             - attributes
1982             - cidr
1983             - deleted
1984             - strictAffinity
1985             - unallocated
1986             type: object
1987         type: object
1988     served: true
1989     storage: true
1990 status:
1991   acceptedNames:
1992     kind: ""
1993     plural: ""
1994   conditions: []
1995   storedVersions: []
1996
1997 ---
1998
1999 ---
2000 apiVersion: apiextensions.k8s.io/v1
2001 kind: CustomResourceDefinition
2002 metadata:
2003   annotations:
2004     controller-gen.kubebuilder.io/version: (devel)
2005   creationTimestamp: null
2006   name: ipamconfigs.crd.projectcalico.org
2007 spec:
2008   group: crd.projectcalico.org
2009   names:
2010     kind: IPAMConfig
2011     listKind: IPAMConfigList
2012     plural: ipamconfigs
2013     singular: ipamconfig
2014   scope: Cluster
2015   versions:
2016   - name: v1
2017     schema:
2018       openAPIV3Schema:
2019         properties:
2020           apiVersion:
2021             description: 'APIVersion defines the versioned schema of this representation
2022               of an object. Servers should convert recognized schemas to the latest
2023               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2024             type: string
2025           kind:
2026             description: 'Kind is a string value representing the REST resource this
2027               object represents. Servers may infer this from the endpoint the client
2028               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2029             type: string
2030           metadata:
2031             type: object
2032           spec:
2033             description: IPAMConfigSpec contains the specification for an IPAMConfig
2034               resource.
2035             properties:
2036               autoAllocateBlocks:
2037                 type: boolean
2038               strictAffinity:
2039                 type: boolean
2040             required:
2041             - autoAllocateBlocks
2042             - strictAffinity
2043             type: object
2044         type: object
2045     served: true
2046     storage: true
2047 status:
2048   acceptedNames:
2049     kind: ""
2050     plural: ""
2051   conditions: []
2052   storedVersions: []
2053
2054 ---
2055
2056 ---
2057 apiVersion: apiextensions.k8s.io/v1
2058 kind: CustomResourceDefinition
2059 metadata:
2060   annotations:
2061     controller-gen.kubebuilder.io/version: (devel)
2062   creationTimestamp: null
2063   name: ipamhandles.crd.projectcalico.org
2064 spec:
2065   group: crd.projectcalico.org
2066   names:
2067     kind: IPAMHandle
2068     listKind: IPAMHandleList
2069     plural: ipamhandles
2070     singular: ipamhandle
2071   scope: Cluster
2072   versions:
2073   - name: v1
2074     schema:
2075       openAPIV3Schema:
2076         properties:
2077           apiVersion:
2078             description: 'APIVersion defines the versioned schema of this representation
2079               of an object. Servers should convert recognized schemas to the latest
2080               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2081             type: string
2082           kind:
2083             description: 'Kind is a string value representing the REST resource this
2084               object represents. Servers may infer this from the endpoint the client
2085               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2086             type: string
2087           metadata:
2088             type: object
2089           spec:
2090             description: IPAMHandleSpec contains the specification for an IPAMHandle
2091               resource.
2092             properties:
2093               block:
2094                 additionalProperties:
2095                   type: integer
2096                 type: object
2097               handleID:
2098                 type: string
2099             required:
2100             - block
2101             - handleID
2102             type: object
2103         type: object
2104     served: true
2105     storage: true
2106 status:
2107   acceptedNames:
2108     kind: ""
2109     plural: ""
2110   conditions: []
2111   storedVersions: []
2112
2113 ---
2114
2115 ---
2116 apiVersion: apiextensions.k8s.io/v1
2117 kind: CustomResourceDefinition
2118 metadata:
2119   annotations:
2120     controller-gen.kubebuilder.io/version: (devel)
2121   creationTimestamp: null
2122   name: ippools.crd.projectcalico.org
2123 spec:
2124   group: crd.projectcalico.org
2125   names:
2126     kind: IPPool
2127     listKind: IPPoolList
2128     plural: ippools
2129     singular: ippool
2130   scope: Cluster
2131   versions:
2132   - name: v1
2133     schema:
2134       openAPIV3Schema:
2135         properties:
2136           apiVersion:
2137             description: 'APIVersion defines the versioned schema of this representation
2138               of an object. Servers should convert recognized schemas to the latest
2139               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2140             type: string
2141           kind:
2142             description: 'Kind is a string value representing the REST resource this
2143               object represents. Servers may infer this from the endpoint the client
2144               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2145             type: string
2146           metadata:
2147             type: object
2148           spec:
2149             description: IPPoolSpec contains the specification for an IPPool resource.
2150             properties:
2151               blockSize:
2152                 description: The block size to use for IP address assignments from
2153                   this pool. Defaults to 26 for IPv4 and 112 for IPv6.
2154                 type: integer
2155               cidr:
2156                 description: The pool CIDR.
2157                 type: string
2158               disabled:
2159                 description: When disabled is true, Calico IPAM will not assign addresses
2160                   from this pool.
2161                 type: boolean
2162               ipip:
2163                 description: 'Deprecated: this field is only used for APIv1 backwards
2164                   compatibility. Setting this field is not allowed, this field is
2165                   for internal use only.'
2166                 properties:
2167                   enabled:
2168                     description: When enabled is true, ipip tunneling will be used
2169                       to deliver packets to destinations within this pool.
2170                     type: boolean
2171                   mode:
2172                     description: The IPIP mode.  This can be one of "always" or "cross-subnet".  A
2173                       mode of "always" will also use IPIP tunneling for routing to
2174                       destination IP addresses within this pool.  A mode of "cross-subnet"
2175                       will only use IPIP tunneling when the destination node is on
2176                       a different subnet to the originating node.  The default value
2177                       (if not specified) is "always".
2178                     type: string
2179                 type: object
2180               ipipMode:
2181                 description: Contains configuration for IPIP tunneling for this pool.
2182                   If not specified, then this is defaulted to "Never" (i.e. IPIP tunneling
2183                   is disabled).
2184                 type: string
2185               nat-outgoing:
2186                 description: 'Deprecated: this field is only used for APIv1 backwards
2187                   compatibility. Setting this field is not allowed, this field is
2188                   for internal use only.'
2189                 type: boolean
2190               natOutgoing:
2191                 description: When nat-outgoing is true, packets sent from Calico networked
2192                   containers in this pool to destinations outside of this pool will
2193                   be masqueraded.
2194                 type: boolean
2195               nodeSelector:
2196                 description: Allows IPPool to allocate for a specific node by label
2197                   selector.
2198                 type: string
2199               vxlanMode:
2200                 description: Contains configuration for VXLAN tunneling for this pool.
2201                   If not specified, then this is defaulted to "Never" (i.e. VXLAN
2202                   tunneling is disabled).
2203                 type: string
2204             required:
2205             - cidr
2206             type: object
2207         type: object
2208     served: true
2209     storage: true
2210 status:
2211   acceptedNames:
2212     kind: ""
2213     plural: ""
2214   conditions: []
2215   storedVersions: []
2216
2217 ---
2218
2219 ---
2220 apiVersion: apiextensions.k8s.io/v1
2221 kind: CustomResourceDefinition
2222 metadata:
2223   annotations:
2224     controller-gen.kubebuilder.io/version: (devel)
2225   creationTimestamp: null
2226   name: kubecontrollersconfigurations.crd.projectcalico.org
2227 spec:
2228   group: crd.projectcalico.org
2229   names:
2230     kind: KubeControllersConfiguration
2231     listKind: KubeControllersConfigurationList
2232     plural: kubecontrollersconfigurations
2233     singular: kubecontrollersconfiguration
2234   scope: Cluster
2235   versions:
2236   - name: v1
2237     schema:
2238       openAPIV3Schema:
2239         properties:
2240           apiVersion:
2241             description: 'APIVersion defines the versioned schema of this representation
2242               of an object. Servers should convert recognized schemas to the latest
2243               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2244             type: string
2245           kind:
2246             description: 'Kind is a string value representing the REST resource this
2247               object represents. Servers may infer this from the endpoint the client
2248               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2249             type: string
2250           metadata:
2251             type: object
2252           spec:
2253             description: KubeControllersConfigurationSpec contains the values of the
2254               Kubernetes controllers configuration.
2255             properties:
2256               controllers:
2257                 description: Controllers enables and configures individual Kubernetes
2258                   controllers
2259                 properties:
2260                   namespace:
2261                     description: Namespace enables and configures the namespace controller.
2262                       Enabled by default, set to nil to disable.
2263                     properties:
2264                       reconcilerPeriod:
2265                         description: 'ReconcilerPeriod is the period to perform reconciliation
2266                           with the Calico datastore. [Default: 5m]'
2267                         type: string
2268                     type: object
2269                   node:
2270                     description: Node enables and configures the node controller.
2271                       Enabled by default, set to nil to disable.
2272                     properties:
2273                       hostEndpoint:
2274                         description: HostEndpoint controls syncing nodes to host endpoints.
2275                           Disabled by default, set to nil to disable.
2276                         properties:
2277                           autoCreate:
2278                             description: 'AutoCreate enables automatic creation of
2279                               host endpoints for every node. [Default: Disabled]'
2280                             type: string
2281                         type: object
2282                       reconcilerPeriod:
2283                         description: 'ReconcilerPeriod is the period to perform reconciliation
2284                           with the Calico datastore. [Default: 5m]'
2285                         type: string
2286                       syncLabels:
2287                         description: 'SyncLabels controls whether to copy Kubernetes
2288                           node labels to Calico nodes. [Default: Enabled]'
2289                         type: string
2290                     type: object
2291                   policy:
2292                     description: Policy enables and configures the policy controller.
2293                       Enabled by default, set to nil to disable.
2294                     properties:
2295                       reconcilerPeriod:
2296                         description: 'ReconcilerPeriod is the period to perform reconciliation
2297                           with the Calico datastore. [Default: 5m]'
2298                         type: string
2299                     type: object
2300                   serviceAccount:
2301                     description: ServiceAccount enables and configures the service
2302                       account controller. Enabled by default, set to nil to disable.
2303                     properties:
2304                       reconcilerPeriod:
2305                         description: 'ReconcilerPeriod is the period to perform reconciliation
2306                           with the Calico datastore. [Default: 5m]'
2307                         type: string
2308                     type: object
2309                   workloadEndpoint:
2310                     description: WorkloadEndpoint enables and configures the workload
2311                       endpoint controller. Enabled by default, set to nil to disable.
2312                     properties:
2313                       reconcilerPeriod:
2314                         description: 'ReconcilerPeriod is the period to perform reconciliation
2315                           with the Calico datastore. [Default: 5m]'
2316                         type: string
2317                     type: object
2318                 type: object
2319               etcdV3CompactionPeriod:
2320                 description: 'EtcdV3CompactionPeriod is the period between etcdv3
2321                   compaction requests. Set to 0 to disable. [Default: 10m]'
2322                 type: string
2323               healthChecks:
2324                 description: 'HealthChecks enables or disables support for health
2325                   checks [Default: Enabled]'
2326                 type: string
2327               logSeverityScreen:
2328                 description: 'LogSeverityScreen is the log severity above which logs
2329                   are sent to the stdout. [Default: Info]'
2330                 type: string
2331             required:
2332             - controllers
2333             type: object
2334           status:
2335             description: KubeControllersConfigurationStatus represents the status
2336               of the configuration. It's useful for admins to be able to see the actual
2337               config that was applied, which can be modified by environment variables
2338               on the kube-controllers process.
2339             properties:
2340               environmentVars:
2341                 additionalProperties:
2342                   type: string
2343                 description: EnvironmentVars contains the environment variables on
2344                   the kube-controllers that influenced the RunningConfig.
2345                 type: object
2346               runningConfig:
2347                 description: RunningConfig contains the effective config that is running
2348                   in the kube-controllers pod, after merging the API resource with
2349                   any environment variables.
2350                 properties:
2351                   controllers:
2352                     description: Controllers enables and configures individual Kubernetes
2353                       controllers
2354                     properties:
2355                       namespace:
2356                         description: Namespace enables and configures the namespace
2357                           controller. Enabled by default, set to nil to disable.
2358                         properties:
2359                           reconcilerPeriod:
2360                             description: 'ReconcilerPeriod is the period to perform
2361                               reconciliation with the Calico datastore. [Default:
2362                               5m]'
2363                             type: string
2364                         type: object
2365                       node:
2366                         description: Node enables and configures the node controller.
2367                           Enabled by default, set to nil to disable.
2368                         properties:
2369                           hostEndpoint:
2370                             description: HostEndpoint controls syncing nodes to host
2371                               endpoints. Disabled by default, set to nil to disable.
2372                             properties:
2373                               autoCreate:
2374                                 description: 'AutoCreate enables automatic creation
2375                                   of host endpoints for every node. [Default: Disabled]'
2376                                 type: string
2377                             type: object
2378                           reconcilerPeriod:
2379                             description: 'ReconcilerPeriod is the period to perform
2380                               reconciliation with the Calico datastore. [Default:
2381                               5m]'
2382                             type: string
2383                           syncLabels:
2384                             description: 'SyncLabels controls whether to copy Kubernetes
2385                               node labels to Calico nodes. [Default: Enabled]'
2386                             type: string
2387                         type: object
2388                       policy:
2389                         description: Policy enables and configures the policy controller.
2390                           Enabled by default, set to nil to disable.
2391                         properties:
2392                           reconcilerPeriod:
2393                             description: 'ReconcilerPeriod is the period to perform
2394                               reconciliation with the Calico datastore. [Default:
2395                               5m]'
2396                             type: string
2397                         type: object
2398                       serviceAccount:
2399                         description: ServiceAccount enables and configures the service
2400                           account controller. Enabled by default, set to nil to disable.
2401                         properties:
2402                           reconcilerPeriod:
2403                             description: 'ReconcilerPeriod is the period to perform
2404                               reconciliation with the Calico datastore. [Default:
2405                               5m]'
2406                             type: string
2407                         type: object
2408                       workloadEndpoint:
2409                         description: WorkloadEndpoint enables and configures the workload
2410                           endpoint controller. Enabled by default, set to nil to disable.
2411                         properties:
2412                           reconcilerPeriod:
2413                             description: 'ReconcilerPeriod is the period to perform
2414                               reconciliation with the Calico datastore. [Default:
2415                               5m]'
2416                             type: string
2417                         type: object
2418                     type: object
2419                   etcdV3CompactionPeriod:
2420                     description: 'EtcdV3CompactionPeriod is the period between etcdv3
2421                       compaction requests. Set to 0 to disable. [Default: 10m]'
2422                     type: string
2423                   healthChecks:
2424                     description: 'HealthChecks enables or disables support for health
2425                       checks [Default: Enabled]'
2426                     type: string
2427                   logSeverityScreen:
2428                     description: 'LogSeverityScreen is the log severity above which
2429                       logs are sent to the stdout. [Default: Info]'
2430                     type: string
2431                 required:
2432                 - controllers
2433                 type: object
2434             type: object
2435         type: object
2436     served: true
2437     storage: true
2438 status:
2439   acceptedNames:
2440     kind: ""
2441     plural: ""
2442   conditions: []
2443   storedVersions: []
2444
2445 ---
2446
2447 ---
2448 apiVersion: apiextensions.k8s.io/v1
2449 kind: CustomResourceDefinition
2450 metadata:
2451   annotations:
2452     controller-gen.kubebuilder.io/version: (devel)
2453   creationTimestamp: null
2454   name: networkpolicies.crd.projectcalico.org
2455 spec:
2456   group: crd.projectcalico.org
2457   names:
2458     kind: NetworkPolicy
2459     listKind: NetworkPolicyList
2460     plural: networkpolicies
2461     singular: networkpolicy
2462   scope: Namespaced
2463   versions:
2464   - name: v1
2465     schema:
2466       openAPIV3Schema:
2467         properties:
2468           apiVersion:
2469             description: 'APIVersion defines the versioned schema of this representation
2470               of an object. Servers should convert recognized schemas to the latest
2471               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2472             type: string
2473           kind:
2474             description: 'Kind is a string value representing the REST resource this
2475               object represents. Servers may infer this from the endpoint the client
2476               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2477             type: string
2478           metadata:
2479             type: object
2480           spec:
2481             properties:
2482               egress:
2483                 description: The ordered set of egress rules.  Each rule contains
2484                   a set of packet match criteria and a corresponding action to apply.
2485                 items:
2486                   description: "A Rule encapsulates a set of match criteria and an
2487                     action.  Both selector-based security Policy and security Profiles
2488                     reference rules - separated out as a list of rules for both ingress
2489                     and egress packet matching. \n Each positive match criteria has
2490                     a negated version, prefixed with ”Not”. All the match criteria
2491                     within a rule must be satisfied for a packet to match. A single
2492                     rule can contain the positive and negative version of a match
2493                     and both must be satisfied for the rule to match."
2494                   properties:
2495                     action:
2496                       type: string
2497                     destination:
2498                       description: Destination contains the match criteria that apply
2499                         to destination entity.
2500                       properties:
2501                         namespaceSelector:
2502                           description: "NamespaceSelector is an optional field that
2503                             contains a selector expression. Only traffic that originates
2504                             from (or terminates at) endpoints within the selected
2505                             namespaces will be matched. When both NamespaceSelector
2506                             and Selector are defined on the same rule, then only workload
2507                             endpoints that are matched by both selectors will be selected
2508                             by the rule. \n For NetworkPolicy, an empty NamespaceSelector
2509                             implies that the Selector is limited to selecting only
2510                             workload endpoints in the same namespace as the NetworkPolicy.
2511                             \n For NetworkPolicy, `global()` NamespaceSelector implies
2512                             that the Selector is limited to selecting only GlobalNetworkSet
2513                             or HostEndpoint. \n For GlobalNetworkPolicy, an empty
2514                             NamespaceSelector implies the Selector applies to workload
2515                             endpoints across all namespaces."
2516                           type: string
2517                         nets:
2518                           description: Nets is an optional field that restricts the
2519                             rule to only apply to traffic that originates from (or
2520                             terminates at) IP addresses in any of the given subnets.
2521                           items:
2522                             type: string
2523                           type: array
2524                         notNets:
2525                           description: NotNets is the negated version of the Nets
2526                             field.
2527                           items:
2528                             type: string
2529                           type: array
2530                         notPorts:
2531                           description: NotPorts is the negated version of the Ports
2532                             field. Since only some protocols have ports, if any ports
2533                             are specified it requires the Protocol match in the Rule
2534                             to be set to "TCP" or "UDP".
2535                           items:
2536                             anyOf:
2537                             - type: integer
2538                             - type: string
2539                             pattern: ^.*
2540                             x-kubernetes-int-or-string: true
2541                           type: array
2542                         notSelector:
2543                           description: NotSelector is the negated version of the Selector
2544                             field.  See Selector field for subtleties with negated
2545                             selectors.
2546                           type: string
2547                         ports:
2548                           description: "Ports is an optional field that restricts
2549                             the rule to only apply to traffic that has a source (destination)
2550                             port that matches one of these ranges/values. This value
2551                             is a list of integers or strings that represent ranges
2552                             of ports. \n Since only some protocols have ports, if
2553                             any ports are specified it requires the Protocol match
2554                             in the Rule to be set to \"TCP\" or \"UDP\"."
2555                           items:
2556                             anyOf:
2557                             - type: integer
2558                             - type: string
2559                             pattern: ^.*
2560                             x-kubernetes-int-or-string: true
2561                           type: array
2562                         selector:
2563                           description: "Selector is an optional field that contains
2564                             a selector expression (see Policy for sample syntax).
2565                             \ Only traffic that originates from (terminates at) endpoints
2566                             matching the selector will be matched. \n Note that: in
2567                             addition to the negated version of the Selector (see NotSelector
2568                             below), the selector expression syntax itself supports
2569                             negation.  The two types of negation are subtly different.
2570                             One negates the set of matched endpoints, the other negates
2571                             the whole match: \n \tSelector = \"!has(my_label)\" matches
2572                             packets that are from other Calico-controlled \tendpoints
2573                             that do not have the label “my_label”. \n \tNotSelector
2574                             = \"has(my_label)\" matches packets that are not from
2575                             Calico-controlled \tendpoints that do have the label “my_label”.
2576                             \n The effect is that the latter will accept packets from
2577                             non-Calico sources whereas the former is limited to packets
2578                             from Calico-controlled endpoints."
2579                           type: string
2580                         serviceAccounts:
2581                           description: ServiceAccounts is an optional field that restricts
2582                             the rule to only apply to traffic that originates from
2583                             (or terminates at) a pod running as a matching service
2584                             account.
2585                           properties:
2586                             names:
2587                               description: Names is an optional field that restricts
2588                                 the rule to only apply to traffic that originates
2589                                 from (or terminates at) a pod running as a service
2590                                 account whose name is in the list.
2591                               items:
2592                                 type: string
2593                               type: array
2594                             selector:
2595                               description: Selector is an optional field that restricts
2596                                 the rule to only apply to traffic that originates
2597                                 from (or terminates at) a pod running as a service
2598                                 account that matches the given label selector. If
2599                                 both Names and Selector are specified then they are
2600                                 AND'ed.
2601                               type: string
2602                           type: object
2603                       type: object
2604                     http:
2605                       description: HTTP contains match criteria that apply to HTTP
2606                         requests.
2607                       properties:
2608                         methods:
2609                           description: Methods is an optional field that restricts
2610                             the rule to apply only to HTTP requests that use one of
2611                             the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple
2612                             methods are OR'd together.
2613                           items:
2614                             type: string
2615                           type: array
2616                         paths:
2617                           description: 'Paths is an optional field that restricts
2618                             the rule to apply to HTTP requests that use one of the
2619                             listed HTTP Paths. Multiple paths are OR''d together.
2620                             e.g: - exact: /foo - prefix: /bar NOTE: Each entry may
2621                             ONLY specify either a `exact` or a `prefix` match. The
2622                             validator will check for it.'
2623                           items:
2624                             description: 'HTTPPath specifies an HTTP path to match.
2625                               It may be either of the form: exact: <path>: which matches
2626                               the path exactly or prefix: <path-prefix>: which matches
2627                               the path prefix'
2628                             properties:
2629                               exact:
2630                                 type: string
2631                               prefix:
2632                                 type: string
2633                             type: object
2634                           type: array
2635                       type: object
2636                     icmp:
2637                       description: ICMP is an optional field that restricts the rule
2638                         to apply to a specific type and code of ICMP traffic.  This
2639                         should only be specified if the Protocol field is set to "ICMP"
2640                         or "ICMPv6".
2641                       properties:
2642                         code:
2643                           description: Match on a specific ICMP code.  If specified,
2644                             the Type value must also be specified. This is a technical
2645                             limitation imposed by the kernel’s iptables firewall,
2646                             which Calico uses to enforce the rule.
2647                           type: integer
2648                         type:
2649                           description: Match on a specific ICMP type.  For example
2650                             a value of 8 refers to ICMP Echo Request (i.e. pings).
2651                           type: integer
2652                       type: object
2653                     ipVersion:
2654                       description: IPVersion is an optional field that restricts the
2655                         rule to only match a specific IP version.
2656                       type: integer
2657                     metadata:
2658                       description: Metadata contains additional information for this
2659                         rule
2660                       properties:
2661                         annotations:
2662                           additionalProperties:
2663                             type: string
2664                           description: Annotations is a set of key value pairs that
2665                             give extra information about the rule
2666                           type: object
2667                       type: object
2668                     notICMP:
2669                       description: NotICMP is the negated version of the ICMP field.
2670                       properties:
2671                         code:
2672                           description: Match on a specific ICMP code.  If specified,
2673                             the Type value must also be specified. This is a technical
2674                             limitation imposed by the kernel’s iptables firewall,
2675                             which Calico uses to enforce the rule.
2676                           type: integer
2677                         type:
2678                           description: Match on a specific ICMP type.  For example
2679                             a value of 8 refers to ICMP Echo Request (i.e. pings).
2680                           type: integer
2681                       type: object
2682                     notProtocol:
2683                       anyOf:
2684                       - type: integer
2685                       - type: string
2686                       description: NotProtocol is the negated version of the Protocol
2687                         field.
2688                       pattern: ^.*
2689                       x-kubernetes-int-or-string: true
2690                     protocol:
2691                       anyOf:
2692                       - type: integer
2693                       - type: string
2694                       description: "Protocol is an optional field that restricts the
2695                         rule to only apply to traffic of a specific IP protocol. Required
2696                         if any of the EntityRules contain Ports (because ports only
2697                         apply to certain protocols). \n Must be one of these string
2698                         values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",
2699                         \"UDPLite\" or an integer in the range 1-255."
2700                       pattern: ^.*
2701                       x-kubernetes-int-or-string: true
2702                     source:
2703                       description: Source contains the match criteria that apply to
2704                         source entity.
2705                       properties:
2706                         namespaceSelector:
2707                           description: "NamespaceSelector is an optional field that
2708                             contains a selector expression. Only traffic that originates
2709                             from (or terminates at) endpoints within the selected
2710                             namespaces will be matched. When both NamespaceSelector
2711                             and Selector are defined on the same rule, then only workload
2712                             endpoints that are matched by both selectors will be selected
2713                             by the rule. \n For NetworkPolicy, an empty NamespaceSelector
2714                             implies that the Selector is limited to selecting only
2715                             workload endpoints in the same namespace as the NetworkPolicy.
2716                             \n For NetworkPolicy, `global()` NamespaceSelector implies
2717                             that the Selector is limited to selecting only GlobalNetworkSet
2718                             or HostEndpoint. \n For GlobalNetworkPolicy, an empty
2719                             NamespaceSelector implies the Selector applies to workload
2720                             endpoints across all namespaces."
2721                           type: string
2722                         nets:
2723                           description: Nets is an optional field that restricts the
2724                             rule to only apply to traffic that originates from (or
2725                             terminates at) IP addresses in any of the given subnets.
2726                           items:
2727                             type: string
2728                           type: array
2729                         notNets:
2730                           description: NotNets is the negated version of the Nets
2731                             field.
2732                           items:
2733                             type: string
2734                           type: array
2735                         notPorts:
2736                           description: NotPorts is the negated version of the Ports
2737                             field. Since only some protocols have ports, if any ports
2738                             are specified it requires the Protocol match in the Rule
2739                             to be set to "TCP" or "UDP".
2740                           items:
2741                             anyOf:
2742                             - type: integer
2743                             - type: string
2744                             pattern: ^.*
2745                             x-kubernetes-int-or-string: true
2746                           type: array
2747                         notSelector:
2748                           description: NotSelector is the negated version of the Selector
2749                             field.  See Selector field for subtleties with negated
2750                             selectors.
2751                           type: string
2752                         ports:
2753                           description: "Ports is an optional field that restricts
2754                             the rule to only apply to traffic that has a source (destination)
2755                             port that matches one of these ranges/values. This value
2756                             is a list of integers or strings that represent ranges
2757                             of ports. \n Since only some protocols have ports, if
2758                             any ports are specified it requires the Protocol match
2759                             in the Rule to be set to \"TCP\" or \"UDP\"."
2760                           items:
2761                             anyOf:
2762                             - type: integer
2763                             - type: string
2764                             pattern: ^.*
2765                             x-kubernetes-int-or-string: true
2766                           type: array
2767                         selector:
2768                           description: "Selector is an optional field that contains
2769                             a selector expression (see Policy for sample syntax).
2770                             \ Only traffic that originates from (terminates at) endpoints
2771                             matching the selector will be matched. \n Note that: in
2772                             addition to the negated version of the Selector (see NotSelector
2773                             below), the selector expression syntax itself supports
2774                             negation.  The two types of negation are subtly different.
2775                             One negates the set of matched endpoints, the other negates
2776                             the whole match: \n \tSelector = \"!has(my_label)\" matches
2777                             packets that are from other Calico-controlled \tendpoints
2778                             that do not have the label “my_label”. \n \tNotSelector
2779                             = \"has(my_label)\" matches packets that are not from
2780                             Calico-controlled \tendpoints that do have the label “my_label”.
2781                             \n The effect is that the latter will accept packets from
2782                             non-Calico sources whereas the former is limited to packets
2783                             from Calico-controlled endpoints."
2784                           type: string
2785                         serviceAccounts:
2786                           description: ServiceAccounts is an optional field that restricts
2787                             the rule to only apply to traffic that originates from
2788                             (or terminates at) a pod running as a matching service
2789                             account.
2790                           properties:
2791                             names:
2792                               description: Names is an optional field that restricts
2793                                 the rule to only apply to traffic that originates
2794                                 from (or terminates at) a pod running as a service
2795                                 account whose name is in the list.
2796                               items:
2797                                 type: string
2798                               type: array
2799                             selector:
2800                               description: Selector is an optional field that restricts
2801                                 the rule to only apply to traffic that originates
2802                                 from (or terminates at) a pod running as a service
2803                                 account that matches the given label selector. If
2804                                 both Names and Selector are specified then they are
2805                                 AND'ed.
2806                               type: string
2807                           type: object
2808                       type: object
2809                   required:
2810                   - action
2811                   type: object
2812                 type: array
2813               ingress:
2814                 description: The ordered set of ingress rules.  Each rule contains
2815                   a set of packet match criteria and a corresponding action to apply.
2816                 items:
2817                   description: "A Rule encapsulates a set of match criteria and an
2818                     action.  Both selector-based security Policy and security Profiles
2819                     reference rules - separated out as a list of rules for both ingress
2820                     and egress packet matching. \n Each positive match criteria has
2821                     a negated version, prefixed with ”Not”. All the match criteria
2822                     within a rule must be satisfied for a packet to match. A single
2823                     rule can contain the positive and negative version of a match
2824                     and both must be satisfied for the rule to match."
2825                   properties:
2826                     action:
2827                       type: string
2828                     destination:
2829                       description: Destination contains the match criteria that apply
2830                         to destination entity.
2831                       properties:
2832                         namespaceSelector:
2833                           description: "NamespaceSelector is an optional field that
2834                             contains a selector expression. Only traffic that originates
2835                             from (or terminates at) endpoints within the selected
2836                             namespaces will be matched. When both NamespaceSelector
2837                             and Selector are defined on the same rule, then only workload
2838                             endpoints that are matched by both selectors will be selected
2839                             by the rule. \n For NetworkPolicy, an empty NamespaceSelector
2840                             implies that the Selector is limited to selecting only
2841                             workload endpoints in the same namespace as the NetworkPolicy.
2842                             \n For NetworkPolicy, `global()` NamespaceSelector implies
2843                             that the Selector is limited to selecting only GlobalNetworkSet
2844                             or HostEndpoint. \n For GlobalNetworkPolicy, an empty
2845                             NamespaceSelector implies the Selector applies to workload
2846                             endpoints across all namespaces."
2847                           type: string
2848                         nets:
2849                           description: Nets is an optional field that restricts the
2850                             rule to only apply to traffic that originates from (or
2851                             terminates at) IP addresses in any of the given subnets.
2852                           items:
2853                             type: string
2854                           type: array
2855                         notNets:
2856                           description: NotNets is the negated version of the Nets
2857                             field.
2858                           items:
2859                             type: string
2860                           type: array
2861                         notPorts:
2862                           description: NotPorts is the negated version of the Ports
2863                             field. Since only some protocols have ports, if any ports
2864                             are specified it requires the Protocol match in the Rule
2865                             to be set to "TCP" or "UDP".
2866                           items:
2867                             anyOf:
2868                             - type: integer
2869                             - type: string
2870                             pattern: ^.*
2871                             x-kubernetes-int-or-string: true
2872                           type: array
2873                         notSelector:
2874                           description: NotSelector is the negated version of the Selector
2875                             field.  See Selector field for subtleties with negated
2876                             selectors.
2877                           type: string
2878                         ports:
2879                           description: "Ports is an optional field that restricts
2880                             the rule to only apply to traffic that has a source (destination)
2881                             port that matches one of these ranges/values. This value
2882                             is a list of integers or strings that represent ranges
2883                             of ports. \n Since only some protocols have ports, if
2884                             any ports are specified it requires the Protocol match
2885                             in the Rule to be set to \"TCP\" or \"UDP\"."
2886                           items:
2887                             anyOf:
2888                             - type: integer
2889                             - type: string
2890                             pattern: ^.*
2891                             x-kubernetes-int-or-string: true
2892                           type: array
2893                         selector:
2894                           description: "Selector is an optional field that contains
2895                             a selector expression (see Policy for sample syntax).
2896                             \ Only traffic that originates from (terminates at) endpoints
2897                             matching the selector will be matched. \n Note that: in
2898                             addition to the negated version of the Selector (see NotSelector
2899                             below), the selector expression syntax itself supports
2900                             negation.  The two types of negation are subtly different.
2901                             One negates the set of matched endpoints, the other negates
2902                             the whole match: \n \tSelector = \"!has(my_label)\" matches
2903                             packets that are from other Calico-controlled \tendpoints
2904                             that do not have the label “my_label”. \n \tNotSelector
2905                             = \"has(my_label)\" matches packets that are not from
2906                             Calico-controlled \tendpoints that do have the label “my_label”.
2907                             \n The effect is that the latter will accept packets from
2908                             non-Calico sources whereas the former is limited to packets
2909                             from Calico-controlled endpoints."
2910                           type: string
2911                         serviceAccounts:
2912                           description: ServiceAccounts is an optional field that restricts
2913                             the rule to only apply to traffic that originates from
2914                             (or terminates at) a pod running as a matching service
2915                             account.
2916                           properties:
2917                             names:
2918                               description: Names is an optional field that restricts
2919                                 the rule to only apply to traffic that originates
2920                                 from (or terminates at) a pod running as a service
2921                                 account whose name is in the list.
2922                               items:
2923                                 type: string
2924                               type: array
2925                             selector:
2926                               description: Selector is an optional field that restricts
2927                                 the rule to only apply to traffic that originates
2928                                 from (or terminates at) a pod running as a service
2929                                 account that matches the given label selector. If
2930                                 both Names and Selector are specified then they are
2931                                 AND'ed.
2932                               type: string
2933                           type: object
2934                       type: object
2935                     http:
2936                       description: HTTP contains match criteria that apply to HTTP
2937                         requests.
2938                       properties:
2939                         methods:
2940                           description: Methods is an optional field that restricts
2941                             the rule to apply only to HTTP requests that use one of
2942                             the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple
2943                             methods are OR'd together.
2944                           items:
2945                             type: string
2946                           type: array
2947                         paths:
2948                           description: 'Paths is an optional field that restricts
2949                             the rule to apply to HTTP requests that use one of the
2950                             listed HTTP Paths. Multiple paths are OR''d together.
2951                             e.g: - exact: /foo - prefix: /bar NOTE: Each entry may
2952                             ONLY specify either a `exact` or a `prefix` match. The
2953                             validator will check for it.'
2954                           items:
2955                             description: 'HTTPPath specifies an HTTP path to match.
2956                               It may be either of the form: exact: <path>: which matches
2957                               the path exactly or prefix: <path-prefix>: which matches
2958                               the path prefix'
2959                             properties:
2960                               exact:
2961                                 type: string
2962                               prefix:
2963                                 type: string
2964                             type: object
2965                           type: array
2966                       type: object
2967                     icmp:
2968                       description: ICMP is an optional field that restricts the rule
2969                         to apply to a specific type and code of ICMP traffic.  This
2970                         should only be specified if the Protocol field is set to "ICMP"
2971                         or "ICMPv6".
2972                       properties:
2973                         code:
2974                           description: Match on a specific ICMP code.  If specified,
2975                             the Type value must also be specified. This is a technical
2976                             limitation imposed by the kernel’s iptables firewall,
2977                             which Calico uses to enforce the rule.
2978                           type: integer
2979                         type:
2980                           description: Match on a specific ICMP type.  For example
2981                             a value of 8 refers to ICMP Echo Request (i.e. pings).
2982                           type: integer
2983                       type: object
2984                     ipVersion:
2985                       description: IPVersion is an optional field that restricts the
2986                         rule to only match a specific IP version.
2987                       type: integer
2988                     metadata:
2989                       description: Metadata contains additional information for this
2990                         rule
2991                       properties:
2992                         annotations:
2993                           additionalProperties:
2994                             type: string
2995                           description: Annotations is a set of key value pairs that
2996                             give extra information about the rule
2997                           type: object
2998                       type: object
2999                     notICMP:
3000                       description: NotICMP is the negated version of the ICMP field.
3001                       properties:
3002                         code:
3003                           description: Match on a specific ICMP code.  If specified,
3004                             the Type value must also be specified. This is a technical
3005                             limitation imposed by the kernel’s iptables firewall,
3006                             which Calico uses to enforce the rule.
3007                           type: integer
3008                         type:
3009                           description: Match on a specific ICMP type.  For example
3010                             a value of 8 refers to ICMP Echo Request (i.e. pings).
3011                           type: integer
3012                       type: object
3013                     notProtocol:
3014                       anyOf:
3015                       - type: integer
3016                       - type: string
3017                       description: NotProtocol is the negated version of the Protocol
3018                         field.
3019                       pattern: ^.*
3020                       x-kubernetes-int-or-string: true
3021                     protocol:
3022                       anyOf:
3023                       - type: integer
3024                       - type: string
3025                       description: "Protocol is an optional field that restricts the
3026                         rule to only apply to traffic of a specific IP protocol. Required
3027                         if any of the EntityRules contain Ports (because ports only
3028                         apply to certain protocols). \n Must be one of these string
3029                         values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",
3030                         \"UDPLite\" or an integer in the range 1-255."
3031                       pattern: ^.*
3032                       x-kubernetes-int-or-string: true
3033                     source:
3034                       description: Source contains the match criteria that apply to
3035                         source entity.
3036                       properties:
3037                         namespaceSelector:
3038                           description: "NamespaceSelector is an optional field that
3039                             contains a selector expression. Only traffic that originates
3040                             from (or terminates at) endpoints within the selected
3041                             namespaces will be matched. When both NamespaceSelector
3042                             and Selector are defined on the same rule, then only workload
3043                             endpoints that are matched by both selectors will be selected
3044                             by the rule. \n For NetworkPolicy, an empty NamespaceSelector
3045                             implies that the Selector is limited to selecting only
3046                             workload endpoints in the same namespace as the NetworkPolicy.
3047                             \n For NetworkPolicy, `global()` NamespaceSelector implies
3048                             that the Selector is limited to selecting only GlobalNetworkSet
3049                             or HostEndpoint. \n For GlobalNetworkPolicy, an empty
3050                             NamespaceSelector implies the Selector applies to workload
3051                             endpoints across all namespaces."
3052                           type: string
3053                         nets:
3054                           description: Nets is an optional field that restricts the
3055                             rule to only apply to traffic that originates from (or
3056                             terminates at) IP addresses in any of the given subnets.
3057                           items:
3058                             type: string
3059                           type: array
3060                         notNets:
3061                           description: NotNets is the negated version of the Nets
3062                             field.
3063                           items:
3064                             type: string
3065                           type: array
3066                         notPorts:
3067                           description: NotPorts is the negated version of the Ports
3068                             field. Since only some protocols have ports, if any ports
3069                             are specified it requires the Protocol match in the Rule
3070                             to be set to "TCP" or "UDP".
3071                           items:
3072                             anyOf:
3073                             - type: integer
3074                             - type: string
3075                             pattern: ^.*
3076                             x-kubernetes-int-or-string: true
3077                           type: array
3078                         notSelector:
3079                           description: NotSelector is the negated version of the Selector
3080                             field.  See Selector field for subtleties with negated
3081                             selectors.
3082                           type: string
3083                         ports:
3084                           description: "Ports is an optional field that restricts
3085                             the rule to only apply to traffic that has a source (destination)
3086                             port that matches one of these ranges/values. This value
3087                             is a list of integers or strings that represent ranges
3088                             of ports. \n Since only some protocols have ports, if
3089                             any ports are specified it requires the Protocol match
3090                             in the Rule to be set to \"TCP\" or \"UDP\"."
3091                           items:
3092                             anyOf:
3093                             - type: integer
3094                             - type: string
3095                             pattern: ^.*
3096                             x-kubernetes-int-or-string: true
3097                           type: array
3098                         selector:
3099                           description: "Selector is an optional field that contains
3100                             a selector expression (see Policy for sample syntax).
3101                             \ Only traffic that originates from (terminates at) endpoints
3102                             matching the selector will be matched. \n Note that: in
3103                             addition to the negated version of the Selector (see NotSelector
3104                             below), the selector expression syntax itself supports
3105                             negation.  The two types of negation are subtly different.
3106                             One negates the set of matched endpoints, the other negates
3107                             the whole match: \n \tSelector = \"!has(my_label)\" matches
3108                             packets that are from other Calico-controlled \tendpoints
3109                             that do not have the label “my_label”. \n \tNotSelector
3110                             = \"has(my_label)\" matches packets that are not from
3111                             Calico-controlled \tendpoints that do have the label “my_label”.
3112                             \n The effect is that the latter will accept packets from
3113                             non-Calico sources whereas the former is limited to packets
3114                             from Calico-controlled endpoints."
3115                           type: string
3116                         serviceAccounts:
3117                           description: ServiceAccounts is an optional field that restricts
3118                             the rule to only apply to traffic that originates from
3119                             (or terminates at) a pod running as a matching service
3120                             account.
3121                           properties:
3122                             names:
3123                               description: Names is an optional field that restricts
3124                                 the rule to only apply to traffic that originates
3125                                 from (or terminates at) a pod running as a service
3126                                 account whose name is in the list.
3127                               items:
3128                                 type: string
3129                               type: array
3130                             selector:
3131                               description: Selector is an optional field that restricts
3132                                 the rule to only apply to traffic that originates
3133                                 from (or terminates at) a pod running as a service
3134                                 account that matches the given label selector. If
3135                                 both Names and Selector are specified then they are
3136                                 AND'ed.
3137                               type: string
3138                           type: object
3139                       type: object
3140                   required:
3141                   - action
3142                   type: object
3143                 type: array
3144               order:
3145                 description: Order is an optional field that specifies the order in
3146                   which the policy is applied. Policies with higher "order" are applied
3147                   after those with lower order.  If the order is omitted, it may be
3148                   considered to be "infinite" - i.e. the policy will be applied last.  Policies
3149                   with identical order will be applied in alphanumerical order based
3150                   on the Policy "Name".
3151                 type: number
3152               selector:
3153                 description: "The selector is an expression used to pick pick out
3154                   the endpoints that the policy should be applied to. \n Selector
3155                   expressions follow this syntax: \n \tlabel == \"string_literal\"
3156                   \ ->  comparison, e.g. my_label == \"foo bar\" \tlabel != \"string_literal\"
3157                   \  ->  not equal; also matches if label is not present \tlabel in
3158                   { \"a\", \"b\", \"c\", ... }  ->  true if the value of label X is
3159                   one of \"a\", \"b\", \"c\" \tlabel not in { \"a\", \"b\", \"c\",
3160                   ... }  ->  true if the value of label X is not one of \"a\", \"b\",
3161                   \"c\" \thas(label_name)  -> True if that label is present \t! expr
3162                   -> negation of expr \texpr && expr  -> Short-circuit and \texpr
3163                   || expr  -> Short-circuit or \t( expr ) -> parens for grouping \tall()
3164                   or the empty selector -> matches all endpoints. \n Label names are
3165                   allowed to contain alphanumerics, -, _ and /. String literals are
3166                   more permissive but they do not support escape characters. \n Examples
3167                   (with made-up labels): \n \ttype == \"webserver\" && deployment
3168                   == \"prod\" \ttype in {\"frontend\", \"backend\"} \tdeployment !=
3169                   \"dev\" \t! has(label_name)"
3170                 type: string
3171               serviceAccountSelector:
3172                 description: ServiceAccountSelector is an optional field for an expression
3173                   used to select a pod based on service accounts.
3174                 type: string
3175               types:
3176                 description: "Types indicates whether this policy applies to ingress,
3177                   or to egress, or to both.  When not explicitly specified (and so
3178                   the value on creation is empty or nil), Calico defaults Types according
3179                   to what Ingress and Egress are present in the policy.  The default
3180                   is: \n - [ PolicyTypeIngress ], if there are no Egress rules (including
3181                   the case where there are   also no Ingress rules) \n - [ PolicyTypeEgress
3182                   ], if there are Egress rules but no Ingress rules \n - [ PolicyTypeIngress,
3183                   PolicyTypeEgress ], if there are both Ingress and Egress rules.
3184                   \n When the policy is read back again, Types will always be one
3185                   of these values, never empty or nil."
3186                 items:
3187                   description: PolicyType enumerates the possible values of the PolicySpec
3188                     Types field.
3189                   type: string
3190                 type: array
3191             type: object
3192         type: object
3193     served: true
3194     storage: true
3195 status:
3196   acceptedNames:
3197     kind: ""
3198     plural: ""
3199   conditions: []
3200   storedVersions: []
3201
3202 ---
3203
3204 ---
3205 apiVersion: apiextensions.k8s.io/v1
3206 kind: CustomResourceDefinition
3207 metadata:
3208   annotations:
3209     controller-gen.kubebuilder.io/version: (devel)
3210   creationTimestamp: null
3211   name: networksets.crd.projectcalico.org
3212 spec:
3213   group: crd.projectcalico.org
3214   names:
3215     kind: NetworkSet
3216     listKind: NetworkSetList
3217     plural: networksets
3218     singular: networkset
3219   scope: Namespaced
3220   versions:
3221   - name: v1
3222     schema:
3223       openAPIV3Schema:
3224         description: NetworkSet is the Namespaced-equivalent of the GlobalNetworkSet.
3225         properties:
3226           apiVersion:
3227             description: 'APIVersion defines the versioned schema of this representation
3228               of an object. Servers should convert recognized schemas to the latest
3229               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3230             type: string
3231           kind:
3232             description: 'Kind is a string value representing the REST resource this
3233               object represents. Servers may infer this from the endpoint the client
3234               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3235             type: string
3236           metadata:
3237             type: object
3238           spec:
3239             description: NetworkSetSpec contains the specification for a NetworkSet
3240               resource.
3241             properties:
3242               nets:
3243                 description: The list of IP networks that belong to this set.
3244                 items:
3245                   type: string
3246                 type: array
3247             type: object
3248         type: object
3249     served: true
3250     storage: true
3251 status:
3252   acceptedNames:
3253     kind: ""
3254     plural: ""
3255   conditions: []
3256   storedVersions: []
3257
3258 ---
3259 ---
3260 # Source: calico/templates/calico-kube-controllers-rbac.yaml
3261
3262 # Include a clusterrole for the kube-controllers component,
3263 # and bind it to the calico-kube-controllers serviceaccount.
3264 kind: ClusterRole
3265 apiVersion: rbac.authorization.k8s.io/v1
3266 metadata:
3267   name: calico-kube-controllers
3268 rules:
3269   # Nodes are watched to monitor for deletions.
3270   - apiGroups: [""]
3271     resources:
3272       - nodes
3273     verbs:
3274       - watch
3275       - list
3276       - get
3277   # Pods are queried to check for existence.
3278   - apiGroups: [""]
3279     resources:
3280       - pods
3281     verbs:
3282       - get
3283   # IPAM resources are manipulated when nodes are deleted.
3284   - apiGroups: ["crd.projectcalico.org"]
3285     resources:
3286       - ippools
3287     verbs:
3288       - list
3289   - apiGroups: ["crd.projectcalico.org"]
3290     resources:
3291       - blockaffinities
3292       - ipamblocks
3293       - ipamhandles
3294     verbs:
3295       - get
3296       - list
3297       - create
3298       - update
3299       - delete
3300   # kube-controllers manages hostendpoints.
3301   - apiGroups: ["crd.projectcalico.org"]
3302     resources:
3303       - hostendpoints
3304     verbs:
3305       - get
3306       - list
3307       - create
3308       - update
3309       - delete
3310   # Needs access to update clusterinformations.
3311   - apiGroups: ["crd.projectcalico.org"]
3312     resources:
3313       - clusterinformations
3314     verbs:
3315       - get
3316       - create
3317       - update
3318   # KubeControllersConfiguration is where it gets its config
3319   - apiGroups: ["crd.projectcalico.org"]
3320     resources:
3321       - kubecontrollersconfigurations
3322     verbs:
3323       # read its own config
3324       - get
3325       # create a default if none exists
3326       - create
3327       # update status
3328       - update
3329       # watch for changes
3330       - watch
3331 ---
3332 kind: ClusterRoleBinding
3333 apiVersion: rbac.authorization.k8s.io/v1
3334 metadata:
3335   name: calico-kube-controllers
3336 roleRef:
3337   apiGroup: rbac.authorization.k8s.io
3338   kind: ClusterRole
3339   name: calico-kube-controllers
3340 subjects:
3341 - kind: ServiceAccount
3342   name: calico-kube-controllers
3343   namespace: kube-system
3344 ---
3345
3346 ---
3347 # Source: calico/templates/calico-node-rbac.yaml
3348 # Include a clusterrole for the calico-node DaemonSet,
3349 # and bind it to the calico-node serviceaccount.
3350 kind: ClusterRole
3351 apiVersion: rbac.authorization.k8s.io/v1
3352 metadata:
3353   name: calico-node
3354 rules:
3355   # The CNI plugin needs to get pods, nodes, and namespaces.
3356   - apiGroups: [""]
3357     resources:
3358       - pods
3359       - nodes
3360       - namespaces
3361     verbs:
3362       - get
3363   - apiGroups: [""]
3364     resources:
3365       - endpoints
3366       - services
3367     verbs:
3368       # Used to discover service IPs for advertisement.
3369       - watch
3370       - list
3371       # Used to discover Typhas.
3372       - get
3373   # Pod CIDR auto-detection on kubeadm needs access to config maps.
3374   - apiGroups: [""]
3375     resources:
3376       - configmaps
3377     verbs:
3378       - get
3379   - apiGroups: [""]
3380     resources:
3381       - nodes/status
3382     verbs:
3383       # Needed for clearing NodeNetworkUnavailable flag.
3384       - patch
3385       # Calico stores some configuration information in node annotations.
3386       - update
3387   # Watch for changes to Kubernetes NetworkPolicies.
3388   - apiGroups: ["networking.k8s.io"]
3389     resources:
3390       - networkpolicies
3391     verbs:
3392       - watch
3393       - list
3394   # Used by Calico for policy information.
3395   - apiGroups: [""]
3396     resources:
3397       - pods
3398       - namespaces
3399       - serviceaccounts
3400     verbs:
3401       - list
3402       - watch
3403   # The CNI plugin patches pods/status.
3404   - apiGroups: [""]
3405     resources:
3406       - pods/status
3407     verbs:
3408       - patch
3409   # Calico monitors various CRDs for config.
3410   - apiGroups: ["crd.projectcalico.org"]
3411     resources:
3412       - globalfelixconfigs
3413       - felixconfigurations
3414       - bgppeers
3415       - globalbgpconfigs
3416       - bgpconfigurations
3417       - ippools
3418       - ipamblocks
3419       - globalnetworkpolicies
3420       - globalnetworksets
3421       - networkpolicies
3422       - networksets
3423       - clusterinformations
3424       - hostendpoints
3425       - blockaffinities
3426     verbs:
3427       - get
3428       - list
3429       - watch
3430   # Calico must create and update some CRDs on startup.
3431   - apiGroups: ["crd.projectcalico.org"]
3432     resources:
3433       - ippools
3434       - felixconfigurations
3435       - clusterinformations
3436     verbs:
3437       - create
3438       - update
3439   # Calico stores some configuration information on the node.
3440   - apiGroups: [""]
3441     resources:
3442       - nodes
3443     verbs:
3444       - get
3445       - list
3446       - watch
3447   # These permissions are only required for upgrade from v2.6, and can
3448   # be removed after upgrade or on fresh installations.
3449   - apiGroups: ["crd.projectcalico.org"]
3450     resources:
3451       - bgpconfigurations
3452       - bgppeers
3453     verbs:
3454       - create
3455       - update
3456   # These permissions are required for Calico CNI to perform IPAM allocations.
3457   - apiGroups: ["crd.projectcalico.org"]
3458     resources:
3459       - blockaffinities
3460       - ipamblocks
3461       - ipamhandles
3462     verbs:
3463       - get
3464       - list
3465       - create
3466       - update
3467       - delete
3468   - apiGroups: ["crd.projectcalico.org"]
3469     resources:
3470       - ipamconfigs
3471     verbs:
3472       - get
3473   # Block affinities must also be watchable by confd for route aggregation.
3474   - apiGroups: ["crd.projectcalico.org"]
3475     resources:
3476       - blockaffinities
3477     verbs:
3478       - watch
3479   # The Calico IPAM migration needs to get daemonsets. These permissions can be
3480   # removed if not upgrading from an installation using host-local IPAM.
3481   - apiGroups: ["apps"]
3482     resources:
3483       - daemonsets
3484     verbs:
3485       - get
3486
3487 ---
3488 apiVersion: rbac.authorization.k8s.io/v1
3489 kind: ClusterRoleBinding
3490 metadata:
3491   name: calico-node
3492 roleRef:
3493   apiGroup: rbac.authorization.k8s.io
3494   kind: ClusterRole
3495   name: calico-node
3496 subjects:
3497 - kind: ServiceAccount
3498   name: calico-node
3499   namespace: kube-system
3500
3501 ---
3502 # Source: calico/templates/calico-node.yaml
3503 # This manifest installs the calico-node container, as well
3504 # as the CNI plugins and network config on
3505 # each master and worker node in a Kubernetes cluster.
3506 kind: DaemonSet
3507 apiVersion: apps/v1
3508 metadata:
3509   name: calico-node
3510   namespace: kube-system
3511   labels:
3512     k8s-app: calico-node
3513 spec:
3514   selector:
3515     matchLabels:
3516       k8s-app: calico-node
3517   updateStrategy:
3518     type: RollingUpdate
3519     rollingUpdate:
3520       maxUnavailable: 1
3521   template:
3522     metadata:
3523       labels:
3524         k8s-app: calico-node
3525     spec:
3526       nodeSelector:
3527         kubernetes.io/os: linux
3528       hostNetwork: true
3529       tolerations:
3530         # Make sure calico-node gets scheduled on all nodes.
3531         - effect: NoSchedule
3532           operator: Exists
3533         # Mark the pod as a critical add-on for rescheduling.
3534         - key: CriticalAddonsOnly
3535           operator: Exists
3536         - effect: NoExecute
3537           operator: Exists
3538       serviceAccountName: calico-node
3539       # Minimize downtime during a rolling upgrade or deletion; tell Kubernetes to do a "force
3540       # deletion": https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods.
3541       terminationGracePeriodSeconds: 0
3542       priorityClassName: system-node-critical
3543       initContainers:
3544         # This container performs upgrade from host-local IPAM to calico-ipam.
3545         # It can be deleted if this is a fresh installation, or if you have already
3546         # upgraded to use calico-ipam.
3547         - name: upgrade-ipam
3548           image: calico/cni:v3.16.1
3549           command: ["/opt/cni/bin/calico-ipam", "-upgrade"]
3550           envFrom:
3551           - configMapRef:
3552               # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
3553               name: kubernetes-services-endpoint
3554               optional: true
3555           env:
3556             - name: KUBERNETES_NODE_NAME
3557               valueFrom:
3558                 fieldRef:
3559                   fieldPath: spec.nodeName
3560             - name: CALICO_NETWORKING_BACKEND
3561               valueFrom:
3562                 configMapKeyRef:
3563                   name: calico-config
3564                   key: calico_backend
3565           volumeMounts:
3566             - mountPath: /var/lib/cni/networks
3567               name: host-local-net-dir
3568             - mountPath: /host/opt/cni/bin
3569               name: cni-bin-dir
3570           securityContext:
3571             privileged: true
3572         # This container installs the CNI binaries
3573         # and CNI network config file on each node.
3574         - name: install-cni
3575           image: calico/cni:v3.16.1
3576           command: ["/opt/cni/bin/install"]
3577           envFrom:
3578           - configMapRef:
3579               # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
3580               name: kubernetes-services-endpoint
3581               optional: true
3582           env:
3583             # Name of the CNI config file to create.
3584             - name: CNI_CONF_NAME
3585               value: "10-calico.conflist"
3586             # The CNI network config to install on each node.
3587             - name: CNI_NETWORK_CONFIG
3588               valueFrom:
3589                 configMapKeyRef:
3590                   name: calico-config
3591                   key: cni_network_config
3592             # Set the hostname based on the k8s node name.
3593             - name: KUBERNETES_NODE_NAME
3594               valueFrom:
3595                 fieldRef:
3596                   fieldPath: spec.nodeName
3597             # CNI MTU Config variable
3598             - name: CNI_MTU
3599               valueFrom:
3600                 configMapKeyRef:
3601                   name: calico-config
3602                   key: veth_mtu
3603             # Prevents the container from sleeping forever.
3604             - name: SLEEP
3605               value: "false"
3606           volumeMounts:
3607             - mountPath: /host/opt/cni/bin
3608               name: cni-bin-dir
3609             - mountPath: /host/etc/cni/net.d
3610               name: cni-net-dir
3611           securityContext:
3612             privileged: true
3613         # Adds a Flex Volume Driver that creates a per-pod Unix Domain Socket to allow Dikastes
3614         # to communicate with Felix over the Policy Sync API.
3615         - name: flexvol-driver
3616           image: calico/pod2daemon-flexvol:v3.16.1
3617           volumeMounts:
3618           - name: flexvol-driver-host
3619             mountPath: /host/driver
3620           securityContext:
3621             privileged: true
3622       containers:
3623         # Runs calico-node container on each Kubernetes node. This
3624         # container programs network policy and routes on each
3625         # host.
3626         - name: calico-node
3627           image: calico/node:v3.16.1
3628           envFrom:
3629           - configMapRef:
3630               # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
3631               name: kubernetes-services-endpoint
3632               optional: true
3633           env:
3634             # Use Kubernetes API as the backing datastore.
3635             - name: DATASTORE_TYPE
3636               value: "kubernetes"
3637             # Wait for the datastore.
3638             - name: WAIT_FOR_DATASTORE
3639               value: "true"
3640             # Set based on the k8s node name.
3641             - name: NODENAME
3642               valueFrom:
3643                 fieldRef:
3644                   fieldPath: spec.nodeName
3645             # Choose the backend to use.
3646             - name: CALICO_NETWORKING_BACKEND
3647               valueFrom:
3648                 configMapKeyRef:
3649                   name: calico-config
3650                   key: calico_backend
3651             # Cluster type to identify the deployment type
3652             - name: CLUSTER_TYPE
3653               value: "k8s,bgp"
3654             # Auto-detect the BGP IP address.
3655             - name: IP
3656               value: "autodetect"
3657             # Enable IPIP
3658             - name: CALICO_IPV4POOL_IPIP
3659               value: "Always"
3660             # Enable or Disable VXLAN on the default IP pool.
3661             - name: CALICO_IPV4POOL_VXLAN
3662               value: "Never"
3663             # Set MTU for tunnel device used if ipip is enabled
3664             - name: FELIX_IPINIPMTU
3665               valueFrom:
3666                 configMapKeyRef:
3667                   name: calico-config
3668                   key: veth_mtu
3669             # Set MTU for the VXLAN tunnel device.
3670             - name: FELIX_VXLANMTU
3671               valueFrom:
3672                 configMapKeyRef:
3673                   name: calico-config
3674                   key: veth_mtu
3675             # Set MTU for the Wireguard tunnel device.
3676             - name: FELIX_WIREGUARDMTU
3677               valueFrom:
3678                 configMapKeyRef:
3679                   name: calico-config
3680                   key: veth_mtu
3681             # The default IPv4 pool to create on startup if none exists. Pod IPs will be
3682             # chosen from this range. Changing this value after installation will have
3683             # no effect. This should fall within `--cluster-cidr`.
3684             # - name: CALICO_IPV4POOL_CIDR
3685             #   value: "192.168.0.0/16"
3686             # Disable file logging so `kubectl logs` works.
3687             - name: CALICO_DISABLE_FILE_LOGGING
3688               value: "true"
3689             # Set Felix endpoint to host default action to ACCEPT.
3690             - name: FELIX_DEFAULTENDPOINTTOHOSTACTION
3691               value: "ACCEPT"
3692             # Disable IPv6 on Kubernetes.
3693             - name: FELIX_IPV6SUPPORT
3694               value: "false"
3695             # Set Felix logging to "info"
3696             - name: FELIX_LOGSEVERITYSCREEN
3697               value: "info"
3698             - name: FELIX_HEALTHENABLED
3699               value: "true"
3700           securityContext:
3701             privileged: true
3702           resources:
3703             requests:
3704               cpu: 250m
3705           livenessProbe:
3706             exec:
3707               command:
3708               - /bin/calico-node
3709               - -felix-live
3710               - -bird-live
3711             periodSeconds: 10
3712             initialDelaySeconds: 10
3713             failureThreshold: 6
3714           readinessProbe:
3715             exec:
3716               command:
3717               - /bin/calico-node
3718               - -felix-ready
3719               - -bird-ready
3720             periodSeconds: 10
3721           volumeMounts:
3722             - mountPath: /lib/modules
3723               name: lib-modules
3724               readOnly: true
3725             - mountPath: /run/xtables.lock
3726               name: xtables-lock
3727               readOnly: false
3728             - mountPath: /var/run/calico
3729               name: var-run-calico
3730               readOnly: false
3731             - mountPath: /var/lib/calico
3732               name: var-lib-calico
3733               readOnly: false
3734             - name: policysync
3735               mountPath: /var/run/nodeagent
3736             # For eBPF mode, we need to be able to mount the BPF filesystem at /sys/fs/bpf so we mount in the
3737             # parent directory.
3738             - name: sysfs
3739               mountPath: /sys/fs/
3740               # Bidirectional means that, if we mount the BPF filesystem at /sys/fs/bpf it will propagate to the host.
3741               # If the host is known to mount that filesystem already then Bidirectional can be omitted.
3742               mountPropagation: Bidirectional
3743       volumes:
3744         # Used by calico-node.
3745         - name: lib-modules
3746           hostPath:
3747             path: /lib/modules
3748         - name: var-run-calico
3749           hostPath:
3750             path: /var/run/calico
3751         - name: var-lib-calico
3752           hostPath:
3753             path: /var/lib/calico
3754         - name: xtables-lock
3755           hostPath:
3756             path: /run/xtables.lock
3757             type: FileOrCreate
3758         - name: sysfs
3759           hostPath:
3760             path: /sys/fs/
3761             type: DirectoryOrCreate
3762         # Used to install CNI.
3763         - name: cni-bin-dir
3764           hostPath:
3765             path: /opt/cni/bin
3766         - name: cni-net-dir
3767           hostPath:
3768             path: /etc/cni/net.d
3769         # Mount in the directory for host-local IPAM allocations. This is
3770         # used when upgrading from host-local to calico-ipam, and can be removed
3771         # if not using the upgrade-ipam init container.
3772         - name: host-local-net-dir
3773           hostPath:
3774             path: /var/lib/cni/networks
3775         # Used to create per-pod Unix Domain Sockets
3776         - name: policysync
3777           hostPath:
3778             type: DirectoryOrCreate
3779             path: /var/run/nodeagent
3780         # Used to install Flex Volume Driver
3781         - name: flexvol-driver-host
3782           hostPath:
3783             type: DirectoryOrCreate
3784             path: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/nodeagent~uds
3785 ---
3786
3787 apiVersion: v1
3788 kind: ServiceAccount
3789 metadata:
3790   name: calico-node
3791   namespace: kube-system
3792
3793 ---
3794 # Source: calico/templates/calico-kube-controllers.yaml
3795 # See https://github.com/projectcalico/kube-controllers
3796 apiVersion: apps/v1
3797 kind: Deployment
3798 metadata:
3799   name: calico-kube-controllers
3800   namespace: kube-system
3801   labels:
3802     k8s-app: calico-kube-controllers
3803 spec:
3804   # The controllers can only have a single active instance.
3805   replicas: 1
3806   selector:
3807     matchLabels:
3808       k8s-app: calico-kube-controllers
3809   strategy:
3810     type: Recreate
3811   template:
3812     metadata:
3813       name: calico-kube-controllers
3814       namespace: kube-system
3815       labels:
3816         k8s-app: calico-kube-controllers
3817     spec:
3818       nodeSelector:
3819         kubernetes.io/os: linux
3820       tolerations:
3821         # Mark the pod as a critical add-on for rescheduling.
3822         - key: CriticalAddonsOnly
3823           operator: Exists
3824         - key: node-role.kubernetes.io/master
3825           effect: NoSchedule
3826       serviceAccountName: calico-kube-controllers
3827       priorityClassName: system-cluster-critical
3828       containers:
3829         - name: calico-kube-controllers
3830           image: calico/kube-controllers:v3.16.1
3831           env:
3832             # Choose which controllers to run.
3833             - name: ENABLED_CONTROLLERS
3834               value: node
3835             - name: DATASTORE_TYPE
3836               value: kubernetes
3837           readinessProbe:
3838             exec:
3839               command:
3840               - /usr/bin/check-status
3841               - -r
3842
3843 ---
3844
3845 apiVersion: v1
3846 kind: ServiceAccount
3847 metadata:
3848   name: calico-kube-controllers
3849   namespace: kube-system
3850
3851 ---
3852 # Source: calico/templates/calico-etcd-secrets.yaml
3853
3854 ---
3855 # Source: calico/templates/calico-typha.yaml
3856
3857 ---
3858 # Source: calico/templates/configure-canal.yaml
3859
3860