istio

Форк
0
/
calico.yaml 
5109 строк · 246.5 Кб
1
---
2
# Source: calico/templates/calico-kube-controllers.yaml
3
# This manifest creates a Pod Disruption Budget for Controller to allow K8s Cluster Autoscaler to evict
4

5
apiVersion: policy/v1
6
kind: PodDisruptionBudget
7
metadata:
8
  name: calico-kube-controllers
9
  namespace: kube-system
10
  labels:
11
    k8s-app: calico-kube-controllers
12
spec:
13
  maxUnavailable: 1
14
  selector:
15
    matchLabels:
16
      k8s-app: calico-kube-controllers
17
---
18
# Source: calico/templates/calico-kube-controllers.yaml
19
apiVersion: v1
20
kind: ServiceAccount
21
metadata:
22
  name: calico-kube-controllers
23
  namespace: kube-system
24
---
25
# Source: calico/templates/calico-node.yaml
26
apiVersion: v1
27
kind: ServiceAccount
28
metadata:
29
  name: calico-node
30
  namespace: kube-system
31
---
32
# Source: calico/templates/calico-node.yaml
33
apiVersion: v1
34
kind: ServiceAccount
35
metadata:
36
  name: calico-cni-plugin
37
  namespace: kube-system
38
---
39
# Source: calico/templates/calico-config.yaml
40
# This ConfigMap is used to configure a self-hosted Calico installation.
41
kind: ConfigMap
42
apiVersion: v1
43
metadata:
44
  name: calico-config
45
  namespace: kube-system
46
data:
47
  # Typha is disabled.
48
  typha_service_name: "none"
49
  # Configure the backend to use.
50
  calico_backend: "bird"
51

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

57
  # The CNI network configuration to install on each node. The special
58
  # values in this config will be automatically populated.
59
  cni_network_config: |-
60
    {
61
      "name": "k8s-pod-network",
62
      "cniVersion": "0.3.1",
63
      "plugins": [
64
        {
65
          "type": "calico",
66
          "log_level": "info",
67
          "log_file_path": "/var/log/calico/cni/cni.log",
68
          "datastore_type": "kubernetes",
69
          "nodename": "__KUBERNETES_NODE_NAME__",
70
          "mtu": __CNI_MTU__,
71
          "ipam": {
72
              "type": "calico-ipam"
73
          },
74
          "policy": {
75
              "type": "k8s"
76
          },
77
          "kubernetes": {
78
              "kubeconfig": "__KUBECONFIG_FILEPATH__"
79
          }
80
        },
81
        {
82
          "type": "portmap",
83
          "snat": true,
84
          "capabilities": {"portMappings": true}
85
        },
86
        {
87
          "type": "bandwidth",
88
          "capabilities": {"bandwidth": true}
89
        }
90
      ]
91
    }
92
---
93
# Source: calico/templates/kdd-crds.yaml
94
apiVersion: apiextensions.k8s.io/v1
95
kind: CustomResourceDefinition
96
metadata:
97
  name: bgpconfigurations.crd.projectcalico.org
98
spec:
99
  group: crd.projectcalico.org
100
  names:
101
    kind: BGPConfiguration
102
    listKind: BGPConfigurationList
103
    plural: bgpconfigurations
104
    singular: bgpconfiguration
105
  preserveUnknownFields: false
106
  scope: Cluster
107
  versions:
108
  - name: v1
109
    schema:
110
      openAPIV3Schema:
111
        description: BGPConfiguration contains the configuration for any BGP routing.
112
        properties:
113
          apiVersion:
114
            description: 'APIVersion defines the versioned schema of this representation
115
              of an object. Servers should convert recognized schemas to the latest
116
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
117
            type: string
118
          kind:
119
            description: 'Kind is a string value representing the REST resource this
120
              object represents. Servers may infer this from the endpoint the client
121
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
122
            type: string
123
          metadata:
124
            type: object
125
          spec:
126
            description: BGPConfigurationSpec contains the values of the BGP configuration.
127
            properties:
128
              asNumber:
129
                description: 'ASNumber is the default AS number used by a node. [Default:
130
                  64512]'
131
                format: int32
132
                type: integer
133
              bindMode:
134
                description: BindMode indicates whether to listen for BGP connections
135
                  on all addresses (None) or only on the node's canonical IP address
136
                  Node.Spec.BGP.IPvXAddress (NodeIP). Default behaviour is to listen
137
                  for BGP connections on all addresses.
138
                type: string
139
              communities:
140
                description: Communities is a list of BGP community values and their
141
                  arbitrary names for tagging routes.
142
                items:
143
                  description: Community contains standard or large community value
144
                    and its name.
145
                  properties:
146
                    name:
147
                      description: Name given to community value.
148
                      type: string
149
                    value:
150
                      description: Value must be of format `aa:nn` or `aa:nn:mm`.
151
                        For standard community use `aa:nn` format, where `aa` and
152
                        `nn` are 16 bit number. For large community use `aa:nn:mm`
153
                        format, where `aa`, `nn` and `mm` are 32 bit number. Where,
154
                        `aa` is an AS Number, `nn` and `mm` are per-AS identifier.
155
                      pattern: ^(\d+):(\d+)$|^(\d+):(\d+):(\d+)$
156
                      type: string
157
                  type: object
158
                type: array
159
              ignoredInterfaces:
160
                description: IgnoredInterfaces indicates the network interfaces that
161
                  needs to be excluded when reading device routes.
162
                items:
163
                  type: string
164
                type: array
165
              listenPort:
166
                description: ListenPort is the port where BGP protocol should listen.
167
                  Defaults to 179
168
                maximum: 65535
169
                minimum: 1
170
                type: integer
171
              logSeverityScreen:
172
                description: 'LogSeverityScreen is the log severity above which logs
173
                  are sent to the stdout. [Default: INFO]'
174
                type: string
175
              nodeMeshMaxRestartTime:
176
                description: Time to allow for software restart for node-to-mesh peerings.  When
177
                  specified, this is configured as the graceful restart timeout.  When
178
                  not specified, the BIRD default of 120s is used. This field can
179
                  only be set on the default BGPConfiguration instance and requires
180
                  that NodeMesh is enabled
181
                type: string
182
              nodeMeshPassword:
183
                description: Optional BGP password for full node-to-mesh peerings.
184
                  This field can only be set on the default BGPConfiguration instance
185
                  and requires that NodeMesh is enabled
186
                properties:
187
                  secretKeyRef:
188
                    description: Selects a key of a secret in the node pod's namespace.
189
                    properties:
190
                      key:
191
                        description: The key of the secret to select from.  Must be
192
                          a valid secret key.
193
                        type: string
194
                      name:
195
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
196
                          TODO: Add other useful fields. apiVersion, kind, uid?'
197
                        type: string
198
                      optional:
199
                        description: Specify whether the Secret or its key must be
200
                          defined
201
                        type: boolean
202
                    required:
203
                    - key
204
                    type: object
205
                type: object
206
              nodeToNodeMeshEnabled:
207
                description: 'NodeToNodeMeshEnabled sets whether full node to node
208
                  BGP mesh is enabled. [Default: true]'
209
                type: boolean
210
              prefixAdvertisements:
211
                description: PrefixAdvertisements contains per-prefix advertisement
212
                  configuration.
213
                items:
214
                  description: PrefixAdvertisement configures advertisement properties
215
                    for the specified CIDR.
216
                  properties:
217
                    cidr:
218
                      description: CIDR for which properties should be advertised.
219
                      type: string
220
                    communities:
221
                      description: Communities can be list of either community names
222
                        already defined in `Specs.Communities` or community value
223
                        of format `aa:nn` or `aa:nn:mm`. For standard community use
224
                        `aa:nn` format, where `aa` and `nn` are 16 bit number. For
225
                        large community use `aa:nn:mm` format, where `aa`, `nn` and
226
                        `mm` are 32 bit number. Where,`aa` is an AS Number, `nn` and
227
                        `mm` are per-AS identifier.
228
                      items:
229
                        type: string
230
                      type: array
231
                  type: object
232
                type: array
233
              serviceClusterIPs:
234
                description: ServiceClusterIPs are the CIDR blocks from which service
235
                  cluster IPs are allocated. If specified, Calico will advertise these
236
                  blocks, as well as any cluster IPs within them.
237
                items:
238
                  description: ServiceClusterIPBlock represents a single allowed ClusterIP
239
                    CIDR block.
240
                  properties:
241
                    cidr:
242
                      type: string
243
                  type: object
244
                type: array
245
              serviceExternalIPs:
246
                description: ServiceExternalIPs are the CIDR blocks for Kubernetes
247
                  Service External IPs. Kubernetes Service ExternalIPs will only be
248
                  advertised if they are within one of these blocks.
249
                items:
250
                  description: ServiceExternalIPBlock represents a single allowed
251
                    External IP CIDR block.
252
                  properties:
253
                    cidr:
254
                      type: string
255
                  type: object
256
                type: array
257
              serviceLoadBalancerIPs:
258
                description: ServiceLoadBalancerIPs are the CIDR blocks for Kubernetes
259
                  Service LoadBalancer IPs. Kubernetes Service status.LoadBalancer.Ingress
260
                  IPs will only be advertised if they are within one of these blocks.
261
                items:
262
                  description: ServiceLoadBalancerIPBlock represents a single allowed
263
                    LoadBalancer IP CIDR block.
264
                  properties:
265
                    cidr:
266
                      type: string
267
                  type: object
268
                type: array
269
            type: object
270
        type: object
271
    served: true
272
    storage: true
273
status:
274
  acceptedNames:
275
    kind: ""
276
    plural: ""
277
  conditions: []
278
  storedVersions: []
279
---
280
# Source: calico/templates/kdd-crds.yaml
281
apiVersion: apiextensions.k8s.io/v1
282
kind: CustomResourceDefinition
283
metadata:
284
  annotations:
285
    controller-gen.kubebuilder.io/version: (devel)
286
  creationTimestamp: null
287
  name: bgpfilters.crd.projectcalico.org
288
spec:
289
  group: crd.projectcalico.org
290
  names:
291
    kind: BGPFilter
292
    listKind: BGPFilterList
293
    plural: bgpfilters
294
    singular: bgpfilter
295
  scope: Cluster
296
  versions:
297
  - name: v1
298
    schema:
299
      openAPIV3Schema:
300
        properties:
301
          apiVersion:
302
            description: 'APIVersion defines the versioned schema of this representation
303
              of an object. Servers should convert recognized schemas to the latest
304
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
305
            type: string
306
          kind:
307
            description: 'Kind is a string value representing the REST resource this
308
              object represents. Servers may infer this from the endpoint the client
309
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
310
            type: string
311
          metadata:
312
            type: object
313
          spec:
314
            description: BGPFilterSpec contains the IPv4 and IPv6 filter rules of
315
              the BGP Filter.
316
            properties:
317
              exportV4:
318
                description: The ordered set of IPv4 BGPFilter rules acting on exporting
319
                  routes to a peer.
320
                items:
321
                  description: BGPFilterRuleV4 defines a BGP filter rule consisting
322
                    a single IPv4 CIDR block and a filter action for this CIDR.
323
                  properties:
324
                    action:
325
                      type: string
326
                    cidr:
327
                      type: string
328
                    interface:
329
                      type: string
330
                    matchOperator:
331
                      type: string
332
                    source:
333
                      type: string
334
                  required:
335
                  - action
336
                  type: object
337
                type: array
338
              exportV6:
339
                description: The ordered set of IPv6 BGPFilter rules acting on exporting
340
                  routes to a peer.
341
                items:
342
                  description: BGPFilterRuleV6 defines a BGP filter rule consisting
343
                    a single IPv6 CIDR block and a filter action for this CIDR.
344
                  properties:
345
                    action:
346
                      type: string
347
                    cidr:
348
                      type: string
349
                    interface:
350
                      type: string
351
                    matchOperator:
352
                      type: string
353
                    source:
354
                      type: string
355
                  required:
356
                  - action
357
                  type: object
358
                type: array
359
              importV4:
360
                description: The ordered set of IPv4 BGPFilter rules acting on importing
361
                  routes from a peer.
362
                items:
363
                  description: BGPFilterRuleV4 defines a BGP filter rule consisting
364
                    a single IPv4 CIDR block and a filter action for this CIDR.
365
                  properties:
366
                    action:
367
                      type: string
368
                    cidr:
369
                      type: string
370
                    interface:
371
                      type: string
372
                    matchOperator:
373
                      type: string
374
                    source:
375
                      type: string
376
                  required:
377
                  - action
378
                  type: object
379
                type: array
380
              importV6:
381
                description: The ordered set of IPv6 BGPFilter rules acting on importing
382
                  routes from a peer.
383
                items:
384
                  description: BGPFilterRuleV6 defines a BGP filter rule consisting
385
                    a single IPv6 CIDR block and a filter action for this CIDR.
386
                  properties:
387
                    action:
388
                      type: string
389
                    cidr:
390
                      type: string
391
                    interface:
392
                      type: string
393
                    matchOperator:
394
                      type: string
395
                    source:
396
                      type: string
397
                  required:
398
                  - action
399
                  type: object
400
                type: array
401
            type: object
402
        type: object
403
    served: true
404
    storage: true
405
status:
406
  acceptedNames:
407
    kind: ""
408
    plural: ""
409
  conditions: []
410
  storedVersions: []
411
---
412
# Source: calico/templates/kdd-crds.yaml
413
apiVersion: apiextensions.k8s.io/v1
414
kind: CustomResourceDefinition
415
metadata:
416
  name: bgppeers.crd.projectcalico.org
417
spec:
418
  group: crd.projectcalico.org
419
  names:
420
    kind: BGPPeer
421
    listKind: BGPPeerList
422
    plural: bgppeers
423
    singular: bgppeer
424
  preserveUnknownFields: false
425
  scope: Cluster
426
  versions:
427
  - name: v1
428
    schema:
429
      openAPIV3Schema:
430
        properties:
431
          apiVersion:
432
            description: 'APIVersion defines the versioned schema of this representation
433
              of an object. Servers should convert recognized schemas to the latest
434
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
435
            type: string
436
          kind:
437
            description: 'Kind is a string value representing the REST resource this
438
              object represents. Servers may infer this from the endpoint the client
439
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
440
            type: string
441
          metadata:
442
            type: object
443
          spec:
444
            description: BGPPeerSpec contains the specification for a BGPPeer resource.
445
            properties:
446
              asNumber:
447
                description: The AS Number of the peer.
448
                format: int32
449
                type: integer
450
              filters:
451
                description: The ordered set of BGPFilters applied on this BGP peer.
452
                items:
453
                  type: string
454
                type: array
455
              keepOriginalNextHop:
456
                description: Option to keep the original nexthop field when routes
457
                  are sent to a BGP Peer. Setting "true" configures the selected BGP
458
                  Peers node to use the "next hop keep;" instead of "next hop self;"(default)
459
                  in the specific branch of the Node on "bird.cfg".
460
                type: boolean
461
              maxRestartTime:
462
                description: Time to allow for software restart.  When specified,
463
                  this is configured as the graceful restart timeout.  When not specified,
464
                  the BIRD default of 120s is used.
465
                type: string
466
              node:
467
                description: The node name identifying the Calico node instance that
468
                  is targeted by this peer. If this is not set, and no nodeSelector
469
                  is specified, then this BGP peer selects all nodes in the cluster.
470
                type: string
471
              nodeSelector:
472
                description: Selector for the nodes that should have this peering.  When
473
                  this is set, the Node field must be empty.
474
                type: string
475
              numAllowedLocalASNumbers:
476
                description: Maximum number of local AS numbers that are allowed in
477
                  the AS path for received routes. This removes BGP loop prevention
478
                  and should only be used if absolutely necesssary.
479
                format: int32
480
                type: integer
481
              password:
482
                description: Optional BGP password for the peerings generated by this
483
                  BGPPeer resource.
484
                properties:
485
                  secretKeyRef:
486
                    description: Selects a key of a secret in the node pod's namespace.
487
                    properties:
488
                      key:
489
                        description: The key of the secret to select from.  Must be
490
                          a valid secret key.
491
                        type: string
492
                      name:
493
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
494
                          TODO: Add other useful fields. apiVersion, kind, uid?'
495
                        type: string
496
                      optional:
497
                        description: Specify whether the Secret or its key must be
498
                          defined
499
                        type: boolean
500
                    required:
501
                    - key
502
                    type: object
503
                type: object
504
              peerIP:
505
                description: The IP address of the peer followed by an optional port
506
                  number to peer with. If port number is given, format should be `[<IPv6>]:port`
507
                  or `<IPv4>:<port>` for IPv4. If optional port number is not set,
508
                  and this peer IP and ASNumber belongs to a calico/node with ListenPort
509
                  set in BGPConfiguration, then we use that port to peer.
510
                type: string
511
              peerSelector:
512
                description: Selector for the remote nodes to peer with.  When this
513
                  is set, the PeerIP and ASNumber fields must be empty.  For each
514
                  peering between the local node and selected remote nodes, we configure
515
                  an IPv4 peering if both ends have NodeBGPSpec.IPv4Address specified,
516
                  and an IPv6 peering if both ends have NodeBGPSpec.IPv6Address specified.  The
517
                  remote AS number comes from the remote node's NodeBGPSpec.ASNumber,
518
                  or the global default if that is not set.
519
                type: string
520
              reachableBy:
521
                description: Add an exact, i.e. /32, static route toward peer IP in
522
                  order to prevent route flapping. ReachableBy contains the address
523
                  of the gateway which peer can be reached by.
524
                type: string
525
              sourceAddress:
526
                description: Specifies whether and how to configure a source address
527
                  for the peerings generated by this BGPPeer resource.  Default value
528
                  "UseNodeIP" means to configure the node IP as the source address.  "None"
529
                  means not to configure a source address.
530
                type: string
531
              ttlSecurity:
532
                description: TTLSecurity enables the generalized TTL security mechanism
533
                  (GTSM) which protects against spoofed packets by ignoring received
534
                  packets with a smaller than expected TTL value. The provided value
535
                  is the number of hops (edges) between the peers.
536
                type: integer
537
            type: object
538
        type: object
539
    served: true
540
    storage: true
541
status:
542
  acceptedNames:
543
    kind: ""
544
    plural: ""
545
  conditions: []
546
  storedVersions: []
547
---
548
# Source: calico/templates/kdd-crds.yaml
549
apiVersion: apiextensions.k8s.io/v1
550
kind: CustomResourceDefinition
551
metadata:
552
  name: blockaffinities.crd.projectcalico.org
553
spec:
554
  group: crd.projectcalico.org
555
  names:
556
    kind: BlockAffinity
557
    listKind: BlockAffinityList
558
    plural: blockaffinities
559
    singular: blockaffinity
560
  preserveUnknownFields: false
561
  scope: Cluster
562
  versions:
563
  - name: v1
564
    schema:
565
      openAPIV3Schema:
566
        properties:
567
          apiVersion:
568
            description: 'APIVersion defines the versioned schema of this representation
569
              of an object. Servers should convert recognized schemas to the latest
570
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
571
            type: string
572
          kind:
573
            description: 'Kind is a string value representing the REST resource this
574
              object represents. Servers may infer this from the endpoint the client
575
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
576
            type: string
577
          metadata:
578
            type: object
579
          spec:
580
            description: BlockAffinitySpec contains the specification for a BlockAffinity
581
              resource.
582
            properties:
583
              cidr:
584
                type: string
585
              deleted:
586
                description: Deleted indicates that this block affinity is being deleted.
587
                  This field is a string for compatibility with older releases that
588
                  mistakenly treat this field as a string.
589
                type: string
590
              node:
591
                type: string
592
              state:
593
                type: string
594
            required:
595
            - cidr
596
            - deleted
597
            - node
598
            - state
599
            type: object
600
        type: object
601
    served: true
602
    storage: true
603
status:
604
  acceptedNames:
605
    kind: ""
606
    plural: ""
607
  conditions: []
608
  storedVersions: []
609
---
610
# Source: calico/templates/kdd-crds.yaml
611
apiVersion: apiextensions.k8s.io/v1
612
kind: CustomResourceDefinition
613
metadata:
614
  annotations:
615
    controller-gen.kubebuilder.io/version: (devel)
616
  creationTimestamp: null
617
  name: caliconodestatuses.crd.projectcalico.org
618
spec:
619
  group: crd.projectcalico.org
620
  names:
621
    kind: CalicoNodeStatus
622
    listKind: CalicoNodeStatusList
623
    plural: caliconodestatuses
624
    singular: caliconodestatus
625
  preserveUnknownFields: false
626
  scope: Cluster
627
  versions:
628
  - name: v1
629
    schema:
630
      openAPIV3Schema:
631
        properties:
632
          apiVersion:
633
            description: 'APIVersion defines the versioned schema of this representation
634
              of an object. Servers should convert recognized schemas to the latest
635
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
636
            type: string
637
          kind:
638
            description: 'Kind is a string value representing the REST resource this
639
              object represents. Servers may infer this from the endpoint the client
640
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
641
            type: string
642
          metadata:
643
            type: object
644
          spec:
645
            description: CalicoNodeStatusSpec contains the specification for a CalicoNodeStatus
646
              resource.
647
            properties:
648
              classes:
649
                description: Classes declares the types of information to monitor
650
                  for this calico/node, and allows for selective status reporting
651
                  about certain subsets of information.
652
                items:
653
                  type: string
654
                type: array
655
              node:
656
                description: The node name identifies the Calico node instance for
657
                  node status.
658
                type: string
659
              updatePeriodSeconds:
660
                description: UpdatePeriodSeconds is the period at which CalicoNodeStatus
661
                  should be updated. Set to 0 to disable CalicoNodeStatus refresh.
662
                  Maximum update period is one day.
663
                format: int32
664
                type: integer
665
            type: object
666
          status:
667
            description: CalicoNodeStatusStatus defines the observed state of CalicoNodeStatus.
668
              No validation needed for status since it is updated by Calico.
669
            properties:
670
              agent:
671
                description: Agent holds agent status on the node.
672
                properties:
673
                  birdV4:
674
                    description: BIRDV4 represents the latest observed status of bird4.
675
                    properties:
676
                      lastBootTime:
677
                        description: LastBootTime holds the value of lastBootTime
678
                          from bird.ctl output.
679
                        type: string
680
                      lastReconfigurationTime:
681
                        description: LastReconfigurationTime holds the value of lastReconfigTime
682
                          from bird.ctl output.
683
                        type: string
684
                      routerID:
685
                        description: Router ID used by bird.
686
                        type: string
687
                      state:
688
                        description: The state of the BGP Daemon.
689
                        type: string
690
                      version:
691
                        description: Version of the BGP daemon
692
                        type: string
693
                    type: object
694
                  birdV6:
695
                    description: BIRDV6 represents the latest observed status of bird6.
696
                    properties:
697
                      lastBootTime:
698
                        description: LastBootTime holds the value of lastBootTime
699
                          from bird.ctl output.
700
                        type: string
701
                      lastReconfigurationTime:
702
                        description: LastReconfigurationTime holds the value of lastReconfigTime
703
                          from bird.ctl output.
704
                        type: string
705
                      routerID:
706
                        description: Router ID used by bird.
707
                        type: string
708
                      state:
709
                        description: The state of the BGP Daemon.
710
                        type: string
711
                      version:
712
                        description: Version of the BGP daemon
713
                        type: string
714
                    type: object
715
                type: object
716
              bgp:
717
                description: BGP holds node BGP status.
718
                properties:
719
                  numberEstablishedV4:
720
                    description: The total number of IPv4 established bgp sessions.
721
                    type: integer
722
                  numberEstablishedV6:
723
                    description: The total number of IPv6 established bgp sessions.
724
                    type: integer
725
                  numberNotEstablishedV4:
726
                    description: The total number of IPv4 non-established bgp sessions.
727
                    type: integer
728
                  numberNotEstablishedV6:
729
                    description: The total number of IPv6 non-established bgp sessions.
730
                    type: integer
731
                  peersV4:
732
                    description: PeersV4 represents IPv4 BGP peers status on the node.
733
                    items:
734
                      description: CalicoNodePeer contains the status of BGP peers
735
                        on the node.
736
                      properties:
737
                        peerIP:
738
                          description: IP address of the peer whose condition we are
739
                            reporting.
740
                          type: string
741
                        since:
742
                          description: Since the state or reason last changed.
743
                          type: string
744
                        state:
745
                          description: State is the BGP session state.
746
                          type: string
747
                        type:
748
                          description: Type indicates whether this peer is configured
749
                            via the node-to-node mesh, or via en explicit global or
750
                            per-node BGPPeer object.
751
                          type: string
752
                      type: object
753
                    type: array
754
                  peersV6:
755
                    description: PeersV6 represents IPv6 BGP peers status on the node.
756
                    items:
757
                      description: CalicoNodePeer contains the status of BGP peers
758
                        on the node.
759
                      properties:
760
                        peerIP:
761
                          description: IP address of the peer whose condition we are
762
                            reporting.
763
                          type: string
764
                        since:
765
                          description: Since the state or reason last changed.
766
                          type: string
767
                        state:
768
                          description: State is the BGP session state.
769
                          type: string
770
                        type:
771
                          description: Type indicates whether this peer is configured
772
                            via the node-to-node mesh, or via en explicit global or
773
                            per-node BGPPeer object.
774
                          type: string
775
                      type: object
776
                    type: array
777
                required:
778
                - numberEstablishedV4
779
                - numberEstablishedV6
780
                - numberNotEstablishedV4
781
                - numberNotEstablishedV6
782
                type: object
783
              lastUpdated:
784
                description: LastUpdated is a timestamp representing the server time
785
                  when CalicoNodeStatus object last updated. It is represented in
786
                  RFC3339 form and is in UTC.
787
                format: date-time
788
                nullable: true
789
                type: string
790
              routes:
791
                description: Routes reports routes known to the Calico BGP daemon
792
                  on the node.
793
                properties:
794
                  routesV4:
795
                    description: RoutesV4 represents IPv4 routes on the node.
796
                    items:
797
                      description: CalicoNodeRoute contains the status of BGP routes
798
                        on the node.
799
                      properties:
800
                        destination:
801
                          description: Destination of the route.
802
                          type: string
803
                        gateway:
804
                          description: Gateway for the destination.
805
                          type: string
806
                        interface:
807
                          description: Interface for the destination
808
                          type: string
809
                        learnedFrom:
810
                          description: LearnedFrom contains information regarding
811
                            where this route originated.
812
                          properties:
813
                            peerIP:
814
                              description: If sourceType is NodeMesh or BGPPeer, IP
815
                                address of the router that sent us this route.
816
                              type: string
817
                            sourceType:
818
                              description: Type of the source where a route is learned
819
                                from.
820
                              type: string
821
                          type: object
822
                        type:
823
                          description: Type indicates if the route is being used for
824
                            forwarding or not.
825
                          type: string
826
                      type: object
827
                    type: array
828
                  routesV6:
829
                    description: RoutesV6 represents IPv6 routes on the node.
830
                    items:
831
                      description: CalicoNodeRoute contains the status of BGP routes
832
                        on the node.
833
                      properties:
834
                        destination:
835
                          description: Destination of the route.
836
                          type: string
837
                        gateway:
838
                          description: Gateway for the destination.
839
                          type: string
840
                        interface:
841
                          description: Interface for the destination
842
                          type: string
843
                        learnedFrom:
844
                          description: LearnedFrom contains information regarding
845
                            where this route originated.
846
                          properties:
847
                            peerIP:
848
                              description: If sourceType is NodeMesh or BGPPeer, IP
849
                                address of the router that sent us this route.
850
                              type: string
851
                            sourceType:
852
                              description: Type of the source where a route is learned
853
                                from.
854
                              type: string
855
                          type: object
856
                        type:
857
                          description: Type indicates if the route is being used for
858
                            forwarding or not.
859
                          type: string
860
                      type: object
861
                    type: array
862
                type: object
863
            type: object
864
        type: object
865
    served: true
866
    storage: true
867
status:
868
  acceptedNames:
869
    kind: ""
870
    plural: ""
871
  conditions: []
872
  storedVersions: []
873
---
874
# Source: calico/templates/kdd-crds.yaml
875
apiVersion: apiextensions.k8s.io/v1
876
kind: CustomResourceDefinition
877
metadata:
878
  name: clusterinformations.crd.projectcalico.org
879
spec:
880
  group: crd.projectcalico.org
881
  names:
882
    kind: ClusterInformation
883
    listKind: ClusterInformationList
884
    plural: clusterinformations
885
    singular: clusterinformation
886
  preserveUnknownFields: false
887
  scope: Cluster
888
  versions:
889
  - name: v1
890
    schema:
891
      openAPIV3Schema:
892
        description: ClusterInformation contains the cluster specific information.
893
        properties:
894
          apiVersion:
895
            description: 'APIVersion defines the versioned schema of this representation
896
              of an object. Servers should convert recognized schemas to the latest
897
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
898
            type: string
899
          kind:
900
            description: 'Kind is a string value representing the REST resource this
901
              object represents. Servers may infer this from the endpoint the client
902
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
903
            type: string
904
          metadata:
905
            type: object
906
          spec:
907
            description: ClusterInformationSpec contains the values of describing
908
              the cluster.
909
            properties:
910
              calicoVersion:
911
                description: CalicoVersion is the version of Calico that the cluster
912
                  is running
913
                type: string
914
              clusterGUID:
915
                description: ClusterGUID is the GUID of the cluster
916
                type: string
917
              clusterType:
918
                description: ClusterType describes the type of the cluster
919
                type: string
920
              datastoreReady:
921
                description: DatastoreReady is used during significant datastore migrations
922
                  to signal to components such as Felix that it should wait before
923
                  accessing the datastore.
924
                type: boolean
925
              variant:
926
                description: Variant declares which variant of Calico should be active.
927
                type: string
928
            type: object
929
        type: object
930
    served: true
931
    storage: true
932
status:
933
  acceptedNames:
934
    kind: ""
935
    plural: ""
936
  conditions: []
937
  storedVersions: []
938
---
939
# Source: calico/templates/kdd-crds.yaml
940
apiVersion: apiextensions.k8s.io/v1
941
kind: CustomResourceDefinition
942
metadata:
943
  name: felixconfigurations.crd.projectcalico.org
944
spec:
945
  group: crd.projectcalico.org
946
  names:
947
    kind: FelixConfiguration
948
    listKind: FelixConfigurationList
949
    plural: felixconfigurations
950
    singular: felixconfiguration
951
  preserveUnknownFields: false
952
  scope: Cluster
953
  versions:
954
  - name: v1
955
    schema:
956
      openAPIV3Schema:
957
        description: Felix Configuration contains the configuration for Felix.
958
        properties:
959
          apiVersion:
960
            description: 'APIVersion defines the versioned schema of this representation
961
              of an object. Servers should convert recognized schemas to the latest
962
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
963
            type: string
964
          kind:
965
            description: 'Kind is a string value representing the REST resource this
966
              object represents. Servers may infer this from the endpoint the client
967
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
968
            type: string
969
          metadata:
970
            type: object
971
          spec:
972
            description: FelixConfigurationSpec contains the values of the Felix configuration.
973
            properties:
974
              allowIPIPPacketsFromWorkloads:
975
                description: 'AllowIPIPPacketsFromWorkloads controls whether Felix
976
                  will add a rule to drop IPIP encapsulated traffic from workloads
977
                  [Default: false]'
978
                type: boolean
979
              allowVXLANPacketsFromWorkloads:
980
                description: 'AllowVXLANPacketsFromWorkloads controls whether Felix
981
                  will add a rule to drop VXLAN encapsulated traffic from workloads
982
                  [Default: false]'
983
                type: boolean
984
              awsSrcDstCheck:
985
                description: 'Set source-destination-check on AWS EC2 instances. Accepted
986
                  value must be one of "DoNothing", "Enable" or "Disable". [Default:
987
                  DoNothing]'
988
                enum:
989
                - DoNothing
990
                - Enable
991
                - Disable
992
                type: string
993
              bpfCTLBLogFilter:
994
                description: 'BPFCTLBLogFilter specifies, what is logged by connect
995
                  time load balancer when BPFLogLevel is debug. Currently has to be
996
                  specified as ''all'' when BPFLogFilters is set to see CTLB logs.
997
                  [Default: unset - means logs are emitted when BPFLogLevel id debug
998
                  and BPFLogFilters not set.]'
999
                type: string
1000
              bpfConnectTimeLoadBalancing:
1001
                description: 'BPFConnectTimeLoadBalancing when in BPF mode, controls
1002
                  whether Felix installs the connect-time load balancer. The connect-time
1003
                  load balancer is required for the host to be able to reach Kubernetes
1004
                  services and it improves the performance of pod-to-service connections.When
1005
                  set to TCP, connect time load balancing is available only for services
1006
                  with TCP ports. [Default: TCP]'
1007
                enum:
1008
                - TCP
1009
                - Enabled
1010
                - Disabled
1011
                type: string
1012
              bpfConnectTimeLoadBalancingEnabled:
1013
                description: 'BPFConnectTimeLoadBalancingEnabled when in BPF mode,
1014
                  controls whether Felix installs the connection-time load balancer.  The
1015
                  connect-time load balancer is required for the host to be able to
1016
                  reach Kubernetes services and it improves the performance of pod-to-service
1017
                  connections.  The only reason to disable it is for debugging purposes.
1018
                  This will be deprecated. Use BPFConnectTimeLoadBalancing [Default:
1019
                  true]'
1020
                type: boolean
1021
              bpfDSROptoutCIDRs:
1022
                description: BPFDSROptoutCIDRs is a list of CIDRs which are excluded
1023
                  from DSR. That is, clients in those CIDRs will accesses nodeports
1024
                  as if BPFExternalServiceMode was set to Tunnel.
1025
                items:
1026
                  type: string
1027
                type: array
1028
              bpfDataIfacePattern:
1029
                description: BPFDataIfacePattern is a regular expression that controls
1030
                  which interfaces Felix should attach BPF programs to in order to
1031
                  catch traffic to/from the network.  This needs to match the interfaces
1032
                  that Calico workload traffic flows over as well as any interfaces
1033
                  that handle incoming traffic to nodeports and services from outside
1034
                  the cluster.  It should not match the workload interfaces (usually
1035
                  named cali...).
1036
                type: string
1037
              bpfDisableGROForIfaces:
1038
                description: BPFDisableGROForIfaces is a regular expression that controls
1039
                  which interfaces Felix should disable the Generic Receive Offload
1040
                  [GRO] option.  It should not match the workload interfaces (usually
1041
                  named cali...).
1042
                type: string
1043
              bpfDisableUnprivileged:
1044
                description: 'BPFDisableUnprivileged, if enabled, Felix sets the kernel.unprivileged_bpf_disabled
1045
                  sysctl to disable unprivileged use of BPF.  This ensures that unprivileged
1046
                  users cannot access Calico''s BPF maps and cannot insert their own
1047
                  BPF programs to interfere with Calico''s. [Default: true]'
1048
                type: boolean
1049
              bpfEnabled:
1050
                description: 'BPFEnabled, if enabled Felix will use the BPF dataplane.
1051
                  [Default: false]'
1052
                type: boolean
1053
              bpfEnforceRPF:
1054
                description: 'BPFEnforceRPF enforce strict RPF on all host interfaces
1055
                  with BPF programs regardless of what is the per-interfaces or global
1056
                  setting. Possible values are Disabled, Strict or Loose. [Default:
1057
                  Loose]'
1058
                pattern: ^(?i)(Disabled|Strict|Loose)?$
1059
                type: string
1060
              bpfExtToServiceConnmark:
1061
                description: 'BPFExtToServiceConnmark in BPF mode, control a 32bit
1062
                  mark that is set on connections from an external client to a local
1063
                  service. This mark allows us to control how packets of that connection
1064
                  are routed within the host and how is routing interpreted by RPF
1065
                  check. [Default: 0]'
1066
                type: integer
1067
              bpfExternalServiceMode:
1068
                description: 'BPFExternalServiceMode in BPF mode, controls how connections
1069
                  from outside the cluster to services (node ports and cluster IPs)
1070
                  are forwarded to remote workloads.  If set to "Tunnel" then both
1071
                  request and response traffic is tunneled to the remote node.  If
1072
                  set to "DSR", the request traffic is tunneled but the response traffic
1073
                  is sent directly from the remote node.  In "DSR" mode, the remote
1074
                  node appears to use the IP of the ingress node; this requires a
1075
                  permissive L2 network.  [Default: Tunnel]'
1076
                pattern: ^(?i)(Tunnel|DSR)?$
1077
                type: string
1078
              bpfForceTrackPacketsFromIfaces:
1079
                description: 'BPFForceTrackPacketsFromIfaces in BPF mode, forces traffic
1080
                  from these interfaces to skip Calico''s iptables NOTRACK rule, allowing
1081
                  traffic from those interfaces to be tracked by Linux conntrack.  Should
1082
                  only be used for interfaces that are not used for the Calico fabric.  For
1083
                  example, a docker bridge device for non-Calico-networked containers.
1084
                  [Default: docker+]'
1085
                items:
1086
                  type: string
1087
                type: array
1088
              bpfHostConntrackBypass:
1089
                description: 'BPFHostConntrackBypass Controls whether to bypass Linux
1090
                  conntrack in BPF mode for workloads and services. [Default: true
1091
                  - bypass Linux conntrack]'
1092
                type: boolean
1093
              bpfHostNetworkedNATWithoutCTLB:
1094
                description: 'BPFHostNetworkedNATWithoutCTLB when in BPF mode, controls
1095
                  whether Felix does a NAT without CTLB. This along with BPFConnectTimeLoadBalancing
1096
                  determines the CTLB behavior. [Default: Enabled]'
1097
                enum:
1098
                - Enabled
1099
                - Disabled
1100
                type: string
1101
              bpfKubeProxyEndpointSlicesEnabled:
1102
                description: BPFKubeProxyEndpointSlicesEnabled in BPF mode, controls
1103
                  whether Felix's embedded kube-proxy accepts EndpointSlices or not.
1104
                type: boolean
1105
              bpfKubeProxyIptablesCleanupEnabled:
1106
                description: 'BPFKubeProxyIptablesCleanupEnabled, if enabled in BPF
1107
                  mode, Felix will proactively clean up the upstream Kubernetes kube-proxy''s
1108
                  iptables chains.  Should only be enabled if kube-proxy is not running.  [Default:
1109
                  true]'
1110
                type: boolean
1111
              bpfKubeProxyMinSyncPeriod:
1112
                description: 'BPFKubeProxyMinSyncPeriod, in BPF mode, controls the
1113
                  minimum time between updates to the dataplane for Felix''s embedded
1114
                  kube-proxy.  Lower values give reduced set-up latency.  Higher values
1115
                  reduce Felix CPU usage by batching up more work.  [Default: 1s]'
1116
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1117
                type: string
1118
              bpfL3IfacePattern:
1119
                description: BPFL3IfacePattern is a regular expression that allows
1120
                  to list tunnel devices like wireguard or vxlan (i.e., L3 devices)
1121
                  in addition to BPFDataIfacePattern. That is, tunnel interfaces not
1122
                  created by Calico, that Calico workload traffic flows over as well
1123
                  as any interfaces that handle incoming traffic to nodeports and
1124
                  services from outside the cluster.
1125
                type: string
1126
              bpfLogFilters:
1127
                additionalProperties:
1128
                  type: string
1129
                description: "BPFLogFilters is a map of key=values where the value
1130
                  is a pcap filter expression and the key is an interface name with
1131
                  'all' denoting all interfaces, 'weps' all workload endpoints and
1132
                  'heps' all host endpoints. \n When specified as an env var, it accepts
1133
                  a comma-separated list of key=values. [Default: unset - means all
1134
                  debug logs are emitted]"
1135
                type: object
1136
              bpfLogLevel:
1137
                description: 'BPFLogLevel controls the log level of the BPF programs
1138
                  when in BPF dataplane mode.  One of "Off", "Info", or "Debug".  The
1139
                  logs are emitted to the BPF trace pipe, accessible with the command
1140
                  `tc exec bpf debug`. [Default: Off].'
1141
                pattern: ^(?i)(Off|Info|Debug)?$
1142
                type: string
1143
              bpfMapSizeConntrack:
1144
                description: 'BPFMapSizeConntrack sets the size for the conntrack
1145
                  map.  This map must be large enough to hold an entry for each active
1146
                  connection.  Warning: changing the size of the conntrack map can
1147
                  cause disruption.'
1148
                type: integer
1149
              bpfMapSizeIPSets:
1150
                description: BPFMapSizeIPSets sets the size for ipsets map.  The IP
1151
                  sets map must be large enough to hold an entry for each endpoint
1152
                  matched by every selector in the source/destination matches in network
1153
                  policy.  Selectors such as "all()" can result in large numbers of
1154
                  entries (one entry per endpoint in that case).
1155
                type: integer
1156
              bpfMapSizeIfState:
1157
                description: BPFMapSizeIfState sets the size for ifstate map.  The
1158
                  ifstate map must be large enough to hold an entry for each device
1159
                  (host + workloads) on a host.
1160
                type: integer
1161
              bpfMapSizeNATAffinity:
1162
                type: integer
1163
              bpfMapSizeNATBackend:
1164
                description: BPFMapSizeNATBackend sets the size for nat back end map.
1165
                  This is the total number of endpoints. This is mostly more than
1166
                  the size of the number of services.
1167
                type: integer
1168
              bpfMapSizeNATFrontend:
1169
                description: BPFMapSizeNATFrontend sets the size for nat front end
1170
                  map. FrontendMap should be large enough to hold an entry for each
1171
                  nodeport, external IP and each port in each service.
1172
                type: integer
1173
              bpfMapSizeRoute:
1174
                description: BPFMapSizeRoute sets the size for the routes map.  The
1175
                  routes map should be large enough to hold one entry per workload
1176
                  and a handful of entries per host (enough to cover its own IPs and
1177
                  tunnel IPs).
1178
                type: integer
1179
              bpfPSNATPorts:
1180
                anyOf:
1181
                - type: integer
1182
                - type: string
1183
                description: 'BPFPSNATPorts sets the range from which we randomly
1184
                  pick a port if there is a source port collision. This should be
1185
                  within the ephemeral range as defined by RFC 6056 (1024–65535) and
1186
                  preferably outside the  ephemeral ranges used by common operating
1187
                  systems. Linux uses 32768–60999, while others mostly use the IANA
1188
                  defined range 49152–65535. It is not necessarily a problem if this
1189
                  range overlaps with the operating systems. Both ends of the range
1190
                  are inclusive. [Default: 20000:29999]'
1191
                pattern: ^.*
1192
                x-kubernetes-int-or-string: true
1193
              bpfPolicyDebugEnabled:
1194
                description: BPFPolicyDebugEnabled when true, Felix records detailed
1195
                  information about the BPF policy programs, which can be examined
1196
                  with the calico-bpf command-line tool.
1197
                type: boolean
1198
              chainInsertMode:
1199
                description: 'ChainInsertMode controls whether Felix hooks the kernel''s
1200
                  top-level iptables chains by inserting a rule at the top of the
1201
                  chain or by appending a rule at the bottom. insert is the safe default
1202
                  since it prevents Calico''s rules from being bypassed. If you switch
1203
                  to append mode, be sure that the other rules in the chains signal
1204
                  acceptance by falling through to the Calico rules, otherwise the
1205
                  Calico policy will be bypassed. [Default: insert]'
1206
                pattern: ^(?i)(insert|append)?$
1207
                type: string
1208
              dataplaneDriver:
1209
                description: DataplaneDriver filename of the external dataplane driver
1210
                  to use.  Only used if UseInternalDataplaneDriver is set to false.
1211
                type: string
1212
              dataplaneWatchdogTimeout:
1213
                description: "DataplaneWatchdogTimeout is the readiness/liveness timeout
1214
                  used for Felix's (internal) dataplane driver. Increase this value
1215
                  if you experience spurious non-ready or non-live events when Felix
1216
                  is under heavy load. Decrease the value to get felix to report non-live
1217
                  or non-ready more quickly. [Default: 90s] \n Deprecated: replaced
1218
                  by the generic HealthTimeoutOverrides."
1219
                type: string
1220
              debugDisableLogDropping:
1221
                type: boolean
1222
              debugMemoryProfilePath:
1223
                type: string
1224
              debugSimulateCalcGraphHangAfter:
1225
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1226
                type: string
1227
              debugSimulateDataplaneHangAfter:
1228
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1229
                type: string
1230
              defaultEndpointToHostAction:
1231
                description: 'DefaultEndpointToHostAction controls what happens to
1232
                  traffic that goes from a workload endpoint to the host itself (after
1233
                  the traffic hits the endpoint egress policy). By default Calico
1234
                  blocks traffic from workload endpoints to the host itself with an
1235
                  iptables "DROP" action. If you want to allow some or all traffic
1236
                  from endpoint to host, set this parameter to RETURN or ACCEPT. Use
1237
                  RETURN if you have your own rules in the iptables "INPUT" chain;
1238
                  Calico will insert its rules at the top of that chain, then "RETURN"
1239
                  packets to the "INPUT" chain once it has completed processing workload
1240
                  endpoint egress policy. Use ACCEPT to unconditionally accept packets
1241
                  from workloads after processing workload endpoint egress policy.
1242
                  [Default: Drop]'
1243
                pattern: ^(?i)(Drop|Accept|Return)?$
1244
                type: string
1245
              deviceRouteProtocol:
1246
                description: This defines the route protocol added to programmed device
1247
                  routes, by default this will be RTPROT_BOOT when left blank.
1248
                type: integer
1249
              deviceRouteSourceAddress:
1250
                description: This is the IPv4 source address to use on programmed
1251
                  device routes. By default the source address is left blank, leaving
1252
                  the kernel to choose the source address used.
1253
                type: string
1254
              deviceRouteSourceAddressIPv6:
1255
                description: This is the IPv6 source address to use on programmed
1256
                  device routes. By default the source address is left blank, leaving
1257
                  the kernel to choose the source address used.
1258
                type: string
1259
              disableConntrackInvalidCheck:
1260
                type: boolean
1261
              endpointReportingDelay:
1262
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1263
                type: string
1264
              endpointReportingEnabled:
1265
                type: boolean
1266
              externalNodesList:
1267
                description: ExternalNodesCIDRList is a list of CIDR's of external-non-calico-nodes
1268
                  which may source tunnel traffic and have the tunneled traffic be
1269
                  accepted at calico nodes.
1270
                items:
1271
                  type: string
1272
                type: array
1273
              failsafeInboundHostPorts:
1274
                description: 'FailsafeInboundHostPorts is a list of UDP/TCP ports
1275
                  and CIDRs that Felix will allow incoming traffic to host endpoints
1276
                  on irrespective of the security policy. This is useful to avoid
1277
                  accidentally cutting off a host with incorrect configuration. For
1278
                  back-compatibility, if the protocol is not specified, it defaults
1279
                  to "tcp". If a CIDR is not specified, it will allow traffic from
1280
                  all addresses. To disable all inbound host ports, use the value
1281
                  none. The default value allows ssh access and DHCP. [Default: tcp:22,
1282
                  udp:68, tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666, tcp:6667]'
1283
                items:
1284
                  description: ProtoPort is combination of protocol, port, and CIDR.
1285
                    Protocol and port must be specified.
1286
                  properties:
1287
                    net:
1288
                      type: string
1289
                    port:
1290
                      type: integer
1291
                    protocol:
1292
                      type: string
1293
                  required:
1294
                  - port
1295
                  - protocol
1296
                  type: object
1297
                type: array
1298
              failsafeOutboundHostPorts:
1299
                description: 'FailsafeOutboundHostPorts is a list of UDP/TCP ports
1300
                  and CIDRs that Felix will allow outgoing traffic from host endpoints
1301
                  to irrespective of the security policy. This is useful to avoid
1302
                  accidentally cutting off a host with incorrect configuration. For
1303
                  back-compatibility, if the protocol is not specified, it defaults
1304
                  to "tcp". If a CIDR is not specified, it will allow traffic from
1305
                  all addresses. To disable all outbound host ports, use the value
1306
                  none. The default value opens etcd''s standard ports to ensure that
1307
                  Felix does not get cut off from etcd as well as allowing DHCP and
1308
                  DNS. [Default: tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666,
1309
                  tcp:6667, udp:53, udp:67]'
1310
                items:
1311
                  description: ProtoPort is combination of protocol, port, and CIDR.
1312
                    Protocol and port must be specified.
1313
                  properties:
1314
                    net:
1315
                      type: string
1316
                    port:
1317
                      type: integer
1318
                    protocol:
1319
                      type: string
1320
                  required:
1321
                  - port
1322
                  - protocol
1323
                  type: object
1324
                type: array
1325
              featureDetectOverride:
1326
                description: FeatureDetectOverride is used to override feature detection
1327
                  based on auto-detected platform capabilities.  Values are specified
1328
                  in a comma separated list with no spaces, example; "SNATFullyRandom=true,MASQFullyRandom=false,RestoreSupportsLock=".  "true"
1329
                  or "false" will force the feature, empty or omitted values are auto-detected.
1330
                pattern: ^([a-zA-Z0-9-_]+=(true|false|),)*([a-zA-Z0-9-_]+=(true|false|))?$
1331
                type: string
1332
              featureGates:
1333
                description: FeatureGates is used to enable or disable tech-preview
1334
                  Calico features. Values are specified in a comma separated list
1335
                  with no spaces, example; "BPFConnectTimeLoadBalancingWorkaround=enabled,XyZ=false".
1336
                  This is used to enable features that are not fully production ready.
1337
                pattern: ^([a-zA-Z0-9-_]+=([^=]+),)*([a-zA-Z0-9-_]+=([^=]+))?$
1338
                type: string
1339
              floatingIPs:
1340
                description: FloatingIPs configures whether or not Felix will program
1341
                  non-OpenStack floating IP addresses.  (OpenStack-derived floating
1342
                  IPs are always programmed, regardless of this setting.)
1343
                enum:
1344
                - Enabled
1345
                - Disabled
1346
                type: string
1347
              genericXDPEnabled:
1348
                description: 'GenericXDPEnabled enables Generic XDP so network cards
1349
                  that don''t support XDP offload or driver modes can use XDP. This
1350
                  is not recommended since it doesn''t provide better performance
1351
                  than iptables. [Default: false]'
1352
                type: boolean
1353
              healthEnabled:
1354
                type: boolean
1355
              healthHost:
1356
                type: string
1357
              healthPort:
1358
                type: integer
1359
              healthTimeoutOverrides:
1360
                description: HealthTimeoutOverrides allows the internal watchdog timeouts
1361
                  of individual subcomponents to be overridden.  This is useful for
1362
                  working around "false positive" liveness timeouts that can occur
1363
                  in particularly stressful workloads or if CPU is constrained.  For
1364
                  a list of active subcomponents, see Felix's logs.
1365
                items:
1366
                  properties:
1367
                    name:
1368
                      type: string
1369
                    timeout:
1370
                      type: string
1371
                  required:
1372
                  - name
1373
                  - timeout
1374
                  type: object
1375
                type: array
1376
              interfaceExclude:
1377
                description: 'InterfaceExclude is a comma-separated list of interfaces
1378
                  that Felix should exclude when monitoring for host endpoints. The
1379
                  default value ensures that Felix ignores Kubernetes'' IPVS dummy
1380
                  interface, which is used internally by kube-proxy. If you want to
1381
                  exclude multiple interface names using a single value, the list
1382
                  supports regular expressions. For regular expressions you must wrap
1383
                  the value with ''/''. For example having values ''/^kube/,veth1''
1384
                  will exclude all interfaces that begin with ''kube'' and also the
1385
                  interface ''veth1''. [Default: kube-ipvs0]'
1386
                type: string
1387
              interfacePrefix:
1388
                description: 'InterfacePrefix is the interface name prefix that identifies
1389
                  workload endpoints and so distinguishes them from host endpoint
1390
                  interfaces. Note: in environments other than bare metal, the orchestrators
1391
                  configure this appropriately. For example our Kubernetes and Docker
1392
                  integrations set the ''cali'' value, and our OpenStack integration
1393
                  sets the ''tap'' value. [Default: cali]'
1394
                type: string
1395
              interfaceRefreshInterval:
1396
                description: InterfaceRefreshInterval is the period at which Felix
1397
                  rescans local interfaces to verify their state. The rescan can be
1398
                  disabled by setting the interval to 0.
1399
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1400
                type: string
1401
              ipipEnabled:
1402
                description: 'IPIPEnabled overrides whether Felix should configure
1403
                  an IPIP interface on the host. Optional as Felix determines this
1404
                  based on the existing IP pools. [Default: nil (unset)]'
1405
                type: boolean
1406
              ipipMTU:
1407
                description: 'IPIPMTU is the MTU to set on the tunnel device. See
1408
                  Configuring MTU [Default: 1440]'
1409
                type: integer
1410
              ipsetsRefreshInterval:
1411
                description: 'IpsetsRefreshInterval is the period at which Felix re-checks
1412
                  all iptables state to ensure that no other process has accidentally
1413
                  broken Calico''s rules. Set to 0 to disable iptables refresh. [Default:
1414
                  90s]'
1415
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1416
                type: string
1417
              iptablesBackend:
1418
                description: IptablesBackend specifies which backend of iptables will
1419
                  be used. The default is Auto.
1420
                pattern: ^(?i)(Auto|FelixConfiguration|FelixConfigurationList|Legacy|NFT)?$
1421
                type: string
1422
              iptablesFilterAllowAction:
1423
                pattern: ^(?i)(Accept|Return)?$
1424
                type: string
1425
              iptablesFilterDenyAction:
1426
                description: IptablesFilterDenyAction controls what happens to traffic
1427
                  that is denied by network policy. By default Calico blocks traffic
1428
                  with an iptables "DROP" action. If you want to use "REJECT" action
1429
                  instead you can configure it in here.
1430
                pattern: ^(?i)(Drop|Reject)?$
1431
                type: string
1432
              iptablesLockFilePath:
1433
                description: 'IptablesLockFilePath is the location of the iptables
1434
                  lock file. You may need to change this if the lock file is not in
1435
                  its standard location (for example if you have mapped it into Felix''s
1436
                  container at a different path). [Default: /run/xtables.lock]'
1437
                type: string
1438
              iptablesLockProbeInterval:
1439
                description: 'IptablesLockProbeInterval is the time that Felix will
1440
                  wait between attempts to acquire the iptables lock if it is not
1441
                  available. Lower values make Felix more responsive when the lock
1442
                  is contended, but use more CPU. [Default: 50ms]'
1443
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1444
                type: string
1445
              iptablesLockTimeout:
1446
                description: 'IptablesLockTimeout is the time that Felix will wait
1447
                  for the iptables lock, or 0, to disable. To use this feature, Felix
1448
                  must share the iptables lock file with all other processes that
1449
                  also take the lock. When running Felix inside a container, this
1450
                  requires the /run directory of the host to be mounted into the calico/node
1451
                  or calico/felix container. [Default: 0s disabled]'
1452
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1453
                type: string
1454
              iptablesMangleAllowAction:
1455
                pattern: ^(?i)(Accept|Return)?$
1456
                type: string
1457
              iptablesMarkMask:
1458
                description: 'IptablesMarkMask is the mask that Felix selects its
1459
                  IPTables Mark bits from. Should be a 32 bit hexadecimal number with
1460
                  at least 8 bits set, none of which clash with any other mark bits
1461
                  in use on the system. [Default: 0xff000000]'
1462
                format: int32
1463
                type: integer
1464
              iptablesNATOutgoingInterfaceFilter:
1465
                type: string
1466
              iptablesPostWriteCheckInterval:
1467
                description: 'IptablesPostWriteCheckInterval is the period after Felix
1468
                  has done a write to the dataplane that it schedules an extra read
1469
                  back in order to check the write was not clobbered by another process.
1470
                  This should only occur if another application on the system doesn''t
1471
                  respect the iptables lock. [Default: 1s]'
1472
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1473
                type: string
1474
              iptablesRefreshInterval:
1475
                description: 'IptablesRefreshInterval is the period at which Felix
1476
                  re-checks the IP sets in the dataplane to ensure that no other process
1477
                  has accidentally broken Calico''s rules. Set to 0 to disable IP
1478
                  sets refresh. Note: the default for this value is lower than the
1479
                  other refresh intervals as a workaround for a Linux kernel bug that
1480
                  was fixed in kernel version 4.11. If you are using v4.11 or greater
1481
                  you may want to set this to, a higher value to reduce Felix CPU
1482
                  usage. [Default: 10s]'
1483
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1484
                type: string
1485
              ipv6Support:
1486
                description: IPv6Support controls whether Felix enables support for
1487
                  IPv6 (if supported by the in-use dataplane).
1488
                type: boolean
1489
              kubeNodePortRanges:
1490
                description: 'KubeNodePortRanges holds list of port ranges used for
1491
                  service node ports. Only used if felix detects kube-proxy running
1492
                  in ipvs mode. Felix uses these ranges to separate host and workload
1493
                  traffic. [Default: 30000:32767].'
1494
                items:
1495
                  anyOf:
1496
                  - type: integer
1497
                  - type: string
1498
                  pattern: ^.*
1499
                  x-kubernetes-int-or-string: true
1500
                type: array
1501
              logDebugFilenameRegex:
1502
                description: LogDebugFilenameRegex controls which source code files
1503
                  have their Debug log output included in the logs. Only logs from
1504
                  files with names that match the given regular expression are included.  The
1505
                  filter only applies to Debug level logs.
1506
                type: string
1507
              logFilePath:
1508
                description: 'LogFilePath is the full path to the Felix log. Set to
1509
                  none to disable file logging. [Default: /var/log/calico/felix.log]'
1510
                type: string
1511
              logPrefix:
1512
                description: 'LogPrefix is the log prefix that Felix uses when rendering
1513
                  LOG rules. [Default: calico-packet]'
1514
                type: string
1515
              logSeverityFile:
1516
                description: 'LogSeverityFile is the log severity above which logs
1517
                  are sent to the log file. [Default: Info]'
1518
                pattern: ^(?i)(Debug|Info|Warning|Error|Fatal)?$
1519
                type: string
1520
              logSeverityScreen:
1521
                description: 'LogSeverityScreen is the log severity above which logs
1522
                  are sent to the stdout. [Default: Info]'
1523
                pattern: ^(?i)(Debug|Info|Warning|Error|Fatal)?$
1524
                type: string
1525
              logSeveritySys:
1526
                description: 'LogSeveritySys is the log severity above which logs
1527
                  are sent to the syslog. Set to None for no logging to syslog. [Default:
1528
                  Info]'
1529
                pattern: ^(?i)(Debug|Info|Warning|Error|Fatal)?$
1530
                type: string
1531
              maxIpsetSize:
1532
                type: integer
1533
              metadataAddr:
1534
                description: 'MetadataAddr is the IP address or domain name of the
1535
                  server that can answer VM queries for cloud-init metadata. In OpenStack,
1536
                  this corresponds to the machine running nova-api (or in Ubuntu,
1537
                  nova-api-metadata). A value of none (case insensitive) means that
1538
                  Felix should not set up any NAT rule for the metadata path. [Default:
1539
                  127.0.0.1]'
1540
                type: string
1541
              metadataPort:
1542
                description: 'MetadataPort is the port of the metadata server. This,
1543
                  combined with global.MetadataAddr (if not ''None''), is used to
1544
                  set up a NAT rule, from 169.254.169.254:80 to MetadataAddr:MetadataPort.
1545
                  In most cases this should not need to be changed [Default: 8775].'
1546
                type: integer
1547
              mtuIfacePattern:
1548
                description: MTUIfacePattern is a regular expression that controls
1549
                  which interfaces Felix should scan in order to calculate the host's
1550
                  MTU. This should not match workload interfaces (usually named cali...).
1551
                type: string
1552
              natOutgoingAddress:
1553
                description: NATOutgoingAddress specifies an address to use when performing
1554
                  source NAT for traffic in a natOutgoing pool that is leaving the
1555
                  network. By default the address used is an address on the interface
1556
                  the traffic is leaving on (ie it uses the iptables MASQUERADE target)
1557
                type: string
1558
              natPortRange:
1559
                anyOf:
1560
                - type: integer
1561
                - type: string
1562
                description: NATPortRange specifies the range of ports that is used
1563
                  for port mapping when doing outgoing NAT. When unset the default
1564
                  behavior of the network stack is used.
1565
                pattern: ^.*
1566
                x-kubernetes-int-or-string: true
1567
              netlinkTimeout:
1568
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1569
                type: string
1570
              openstackRegion:
1571
                description: 'OpenstackRegion is the name of the region that a particular
1572
                  Felix belongs to. In a multi-region Calico/OpenStack deployment,
1573
                  this must be configured somehow for each Felix (here in the datamodel,
1574
                  or in felix.cfg or the environment on each compute node), and must
1575
                  match the [calico] openstack_region value configured in neutron.conf
1576
                  on each node. [Default: Empty]'
1577
                type: string
1578
              policySyncPathPrefix:
1579
                description: 'PolicySyncPathPrefix is used to by Felix to communicate
1580
                  policy changes to external services, like Application layer policy.
1581
                  [Default: Empty]'
1582
                type: string
1583
              prometheusGoMetricsEnabled:
1584
                description: 'PrometheusGoMetricsEnabled disables Go runtime metrics
1585
                  collection, which the Prometheus client does by default, when set
1586
                  to false. This reduces the number of metrics reported, reducing
1587
                  Prometheus load. [Default: true]'
1588
                type: boolean
1589
              prometheusMetricsEnabled:
1590
                description: 'PrometheusMetricsEnabled enables the Prometheus metrics
1591
                  server in Felix if set to true. [Default: false]'
1592
                type: boolean
1593
              prometheusMetricsHost:
1594
                description: 'PrometheusMetricsHost is the host that the Prometheus
1595
                  metrics server should bind to. [Default: empty]'
1596
                type: string
1597
              prometheusMetricsPort:
1598
                description: 'PrometheusMetricsPort is the TCP port that the Prometheus
1599
                  metrics server should bind to. [Default: 9091]'
1600
                type: integer
1601
              prometheusProcessMetricsEnabled:
1602
                description: 'PrometheusProcessMetricsEnabled disables process metrics
1603
                  collection, which the Prometheus client does by default, when set
1604
                  to false. This reduces the number of metrics reported, reducing
1605
                  Prometheus load. [Default: true]'
1606
                type: boolean
1607
              prometheusWireGuardMetricsEnabled:
1608
                description: 'PrometheusWireGuardMetricsEnabled disables wireguard
1609
                  metrics collection, which the Prometheus client does by default,
1610
                  when set to false. This reduces the number of metrics reported,
1611
                  reducing Prometheus load. [Default: true]'
1612
                type: boolean
1613
              removeExternalRoutes:
1614
                description: Whether or not to remove device routes that have not
1615
                  been programmed by Felix. Disabling this will allow external applications
1616
                  to also add device routes. This is enabled by default which means
1617
                  we will remove externally added routes.
1618
                type: boolean
1619
              reportingInterval:
1620
                description: 'ReportingInterval is the interval at which Felix reports
1621
                  its status into the datastore or 0 to disable. Must be non-zero
1622
                  in OpenStack deployments. [Default: 30s]'
1623
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1624
                type: string
1625
              reportingTTL:
1626
                description: 'ReportingTTL is the time-to-live setting for process-wide
1627
                  status reports. [Default: 90s]'
1628
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1629
                type: string
1630
              routeRefreshInterval:
1631
                description: 'RouteRefreshInterval is the period at which Felix re-checks
1632
                  the routes in the dataplane to ensure that no other process has
1633
                  accidentally broken Calico''s rules. Set to 0 to disable route refresh.
1634
                  [Default: 90s]'
1635
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1636
                type: string
1637
              routeSource:
1638
                description: 'RouteSource configures where Felix gets its routing
1639
                  information. - WorkloadIPs: use workload endpoints to construct
1640
                  routes. - CalicoIPAM: the default - use IPAM data to construct routes.'
1641
                pattern: ^(?i)(WorkloadIPs|CalicoIPAM)?$
1642
                type: string
1643
              routeSyncDisabled:
1644
                description: RouteSyncDisabled will disable all operations performed
1645
                  on the route table. Set to true to run in network-policy mode only.
1646
                type: boolean
1647
              routeTableRange:
1648
                description: Deprecated in favor of RouteTableRanges. Calico programs
1649
                  additional Linux route tables for various purposes. RouteTableRange
1650
                  specifies the indices of the route tables that Calico should use.
1651
                properties:
1652
                  max:
1653
                    type: integer
1654
                  min:
1655
                    type: integer
1656
                required:
1657
                - max
1658
                - min
1659
                type: object
1660
              routeTableRanges:
1661
                description: Calico programs additional Linux route tables for various
1662
                  purposes. RouteTableRanges specifies a set of table index ranges
1663
                  that Calico should use. Deprecates`RouteTableRange`, overrides `RouteTableRange`.
1664
                items:
1665
                  properties:
1666
                    max:
1667
                      type: integer
1668
                    min:
1669
                      type: integer
1670
                  required:
1671
                  - max
1672
                  - min
1673
                  type: object
1674
                type: array
1675
              serviceLoopPrevention:
1676
                description: 'When service IP advertisement is enabled, prevent routing
1677
                  loops to service IPs that are not in use, by dropping or rejecting
1678
                  packets that do not get DNAT''d by kube-proxy. Unless set to "Disabled",
1679
                  in which case such routing loops continue to be allowed. [Default:
1680
                  Drop]'
1681
                pattern: ^(?i)(Drop|Reject|Disabled)?$
1682
                type: string
1683
              sidecarAccelerationEnabled:
1684
                description: 'SidecarAccelerationEnabled enables experimental sidecar
1685
                  acceleration [Default: false]'
1686
                type: boolean
1687
              usageReportingEnabled:
1688
                description: 'UsageReportingEnabled reports anonymous Calico version
1689
                  number and cluster size to projectcalico.org. Logs warnings returned
1690
                  by the usage server. For example, if a significant security vulnerability
1691
                  has been discovered in the version of Calico being used. [Default:
1692
                  true]'
1693
                type: boolean
1694
              usageReportingInitialDelay:
1695
                description: 'UsageReportingInitialDelay controls the minimum delay
1696
                  before Felix makes a report. [Default: 300s]'
1697
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1698
                type: string
1699
              usageReportingInterval:
1700
                description: 'UsageReportingInterval controls the interval at which
1701
                  Felix makes reports. [Default: 86400s]'
1702
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1703
                type: string
1704
              useInternalDataplaneDriver:
1705
                description: UseInternalDataplaneDriver, if true, Felix will use its
1706
                  internal dataplane programming logic.  If false, it will launch
1707
                  an external dataplane driver and communicate with it over protobuf.
1708
                type: boolean
1709
              vxlanEnabled:
1710
                description: 'VXLANEnabled overrides whether Felix should create the
1711
                  VXLAN tunnel device for IPv4 VXLAN networking. Optional as Felix
1712
                  determines this based on the existing IP pools. [Default: nil (unset)]'
1713
                type: boolean
1714
              vxlanMTU:
1715
                description: 'VXLANMTU is the MTU to set on the IPv4 VXLAN tunnel
1716
                  device. See Configuring MTU [Default: 1410]'
1717
                type: integer
1718
              vxlanMTUV6:
1719
                description: 'VXLANMTUV6 is the MTU to set on the IPv6 VXLAN tunnel
1720
                  device. See Configuring MTU [Default: 1390]'
1721
                type: integer
1722
              vxlanPort:
1723
                type: integer
1724
              vxlanVNI:
1725
                type: integer
1726
              windowsManageFirewallRules:
1727
                description: 'WindowsManageFirewallRules configures whether or not
1728
                  Felix will program Windows Firewall rules. (to allow inbound access
1729
                  to its own metrics ports) [Default: Disabled]'
1730
                enum:
1731
                - Enabled
1732
                - Disabled
1733
                type: string
1734
              wireguardEnabled:
1735
                description: 'WireguardEnabled controls whether Wireguard is enabled
1736
                  for IPv4 (encapsulating IPv4 traffic over an IPv4 underlay network).
1737
                  [Default: false]'
1738
                type: boolean
1739
              wireguardEnabledV6:
1740
                description: 'WireguardEnabledV6 controls whether Wireguard is enabled
1741
                  for IPv6 (encapsulating IPv6 traffic over an IPv6 underlay network).
1742
                  [Default: false]'
1743
                type: boolean
1744
              wireguardHostEncryptionEnabled:
1745
                description: 'WireguardHostEncryptionEnabled controls whether Wireguard
1746
                  host-to-host encryption is enabled. [Default: false]'
1747
                type: boolean
1748
              wireguardInterfaceName:
1749
                description: 'WireguardInterfaceName specifies the name to use for
1750
                  the IPv4 Wireguard interface. [Default: wireguard.cali]'
1751
                type: string
1752
              wireguardInterfaceNameV6:
1753
                description: 'WireguardInterfaceNameV6 specifies the name to use for
1754
                  the IPv6 Wireguard interface. [Default: wg-v6.cali]'
1755
                type: string
1756
              wireguardKeepAlive:
1757
                description: 'WireguardKeepAlive controls Wireguard PersistentKeepalive
1758
                  option. Set 0 to disable. [Default: 0]'
1759
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1760
                type: string
1761
              wireguardListeningPort:
1762
                description: 'WireguardListeningPort controls the listening port used
1763
                  by IPv4 Wireguard. [Default: 51820]'
1764
                type: integer
1765
              wireguardListeningPortV6:
1766
                description: 'WireguardListeningPortV6 controls the listening port
1767
                  used by IPv6 Wireguard. [Default: 51821]'
1768
                type: integer
1769
              wireguardMTU:
1770
                description: 'WireguardMTU controls the MTU on the IPv4 Wireguard
1771
                  interface. See Configuring MTU [Default: 1440]'
1772
                type: integer
1773
              wireguardMTUV6:
1774
                description: 'WireguardMTUV6 controls the MTU on the IPv6 Wireguard
1775
                  interface. See Configuring MTU [Default: 1420]'
1776
                type: integer
1777
              wireguardRoutingRulePriority:
1778
                description: 'WireguardRoutingRulePriority controls the priority value
1779
                  to use for the Wireguard routing rule. [Default: 99]'
1780
                type: integer
1781
              workloadSourceSpoofing:
1782
                description: WorkloadSourceSpoofing controls whether pods can use
1783
                  the allowedSourcePrefixes annotation to send traffic with a source
1784
                  IP address that is not theirs. This is disabled by default. When
1785
                  set to "Any", pods can request any prefix.
1786
                pattern: ^(?i)(Disabled|Any)?$
1787
                type: string
1788
              xdpEnabled:
1789
                description: 'XDPEnabled enables XDP acceleration for suitable untracked
1790
                  incoming deny rules. [Default: true]'
1791
                type: boolean
1792
              xdpRefreshInterval:
1793
                description: 'XDPRefreshInterval is the period at which Felix re-checks
1794
                  all XDP state to ensure that no other process has accidentally broken
1795
                  Calico''s BPF maps or attached programs. Set to 0 to disable XDP
1796
                  refresh. [Default: 90s]'
1797
                pattern: ^([0-9]+(\\.[0-9]+)?(ms|s|m|h))*$
1798
                type: string
1799
            type: object
1800
        type: object
1801
    served: true
1802
    storage: true
1803
status:
1804
  acceptedNames:
1805
    kind: ""
1806
    plural: ""
1807
  conditions: []
1808
  storedVersions: []
1809
---
1810
# Source: calico/templates/kdd-crds.yaml
1811
apiVersion: apiextensions.k8s.io/v1
1812
kind: CustomResourceDefinition
1813
metadata:
1814
  name: globalnetworkpolicies.crd.projectcalico.org
1815
spec:
1816
  group: crd.projectcalico.org
1817
  names:
1818
    kind: GlobalNetworkPolicy
1819
    listKind: GlobalNetworkPolicyList
1820
    plural: globalnetworkpolicies
1821
    singular: globalnetworkpolicy
1822
  preserveUnknownFields: false
1823
  scope: Cluster
1824
  versions:
1825
  - name: v1
1826
    schema:
1827
      openAPIV3Schema:
1828
        properties:
1829
          apiVersion:
1830
            description: 'APIVersion defines the versioned schema of this representation
1831
              of an object. Servers should convert recognized schemas to the latest
1832
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1833
            type: string
1834
          kind:
1835
            description: 'Kind is a string value representing the REST resource this
1836
              object represents. Servers may infer this from the endpoint the client
1837
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1838
            type: string
1839
          metadata:
1840
            type: object
1841
          spec:
1842
            properties:
1843
              applyOnForward:
1844
                description: ApplyOnForward indicates to apply the rules in this policy
1845
                  on forward traffic.
1846
                type: boolean
1847
              doNotTrack:
1848
                description: DoNotTrack indicates whether packets matched by the rules
1849
                  in this policy should go through the data plane's connection tracking,
1850
                  such as Linux conntrack.  If True, the rules in this policy are
1851
                  applied before any data plane connection tracking, and packets allowed
1852
                  by this policy are marked as not to be tracked.
1853
                type: boolean
1854
              egress:
1855
                description: The ordered set of egress rules.  Each rule contains
1856
                  a set of packet match criteria and a corresponding action to apply.
1857
                items:
1858
                  description: "A Rule encapsulates a set of match criteria and an
1859
                    action.  Both selector-based security Policy and security Profiles
1860
                    reference rules - separated out as a list of rules for both ingress
1861
                    and egress packet matching. \n Each positive match criteria has
1862
                    a negated version, prefixed with \"Not\". All the match criteria
1863
                    within a rule must be satisfied for a packet to match. A single
1864
                    rule can contain the positive and negative version of a match
1865
                    and both must be satisfied for the rule to match."
1866
                  properties:
1867
                    action:
1868
                      type: string
1869
                    destination:
1870
                      description: Destination contains the match criteria that apply
1871
                        to destination entity.
1872
                      properties:
1873
                        namespaceSelector:
1874
                          description: "NamespaceSelector is an optional field that
1875
                            contains a selector expression. Only traffic that originates
1876
                            from (or terminates at) endpoints within the selected
1877
                            namespaces will be matched. When both NamespaceSelector
1878
                            and another selector are defined on the same rule, then
1879
                            only workload endpoints that are matched by both selectors
1880
                            will be selected by the rule. \n For NetworkPolicy, an
1881
                            empty NamespaceSelector implies that the Selector is limited
1882
                            to selecting only workload endpoints in the same namespace
1883
                            as the NetworkPolicy. \n For NetworkPolicy, `global()`
1884
                            NamespaceSelector implies that the Selector is limited
1885
                            to selecting only GlobalNetworkSet or HostEndpoint. \n
1886
                            For GlobalNetworkPolicy, an empty NamespaceSelector implies
1887
                            the Selector applies to workload endpoints across all
1888
                            namespaces."
1889
                          type: string
1890
                        nets:
1891
                          description: Nets is an optional field that restricts the
1892
                            rule to only apply to traffic that originates from (or
1893
                            terminates at) IP addresses in any of the given subnets.
1894
                          items:
1895
                            type: string
1896
                          type: array
1897
                        notNets:
1898
                          description: NotNets is the negated version of the Nets
1899
                            field.
1900
                          items:
1901
                            type: string
1902
                          type: array
1903
                        notPorts:
1904
                          description: NotPorts is the negated version of the Ports
1905
                            field. Since only some protocols have ports, if any ports
1906
                            are specified it requires the Protocol match in the Rule
1907
                            to be set to "TCP" or "UDP".
1908
                          items:
1909
                            anyOf:
1910
                            - type: integer
1911
                            - type: string
1912
                            pattern: ^.*
1913
                            x-kubernetes-int-or-string: true
1914
                          type: array
1915
                        notSelector:
1916
                          description: NotSelector is the negated version of the Selector
1917
                            field.  See Selector field for subtleties with negated
1918
                            selectors.
1919
                          type: string
1920
                        ports:
1921
                          description: "Ports is an optional field that restricts
1922
                            the rule to only apply to traffic that has a source (destination)
1923
                            port that matches one of these ranges/values. This value
1924
                            is a list of integers or strings that represent ranges
1925
                            of ports. \n Since only some protocols have ports, if
1926
                            any ports are specified it requires the Protocol match
1927
                            in the Rule to be set to \"TCP\" or \"UDP\"."
1928
                          items:
1929
                            anyOf:
1930
                            - type: integer
1931
                            - type: string
1932
                            pattern: ^.*
1933
                            x-kubernetes-int-or-string: true
1934
                          type: array
1935
                        selector:
1936
                          description: "Selector is an optional field that contains
1937
                            a selector expression (see Policy for sample syntax).
1938
                            \ Only traffic that originates from (terminates at) endpoints
1939
                            matching the selector will be matched. \n Note that: in
1940
                            addition to the negated version of the Selector (see NotSelector
1941
                            below), the selector expression syntax itself supports
1942
                            negation.  The two types of negation are subtly different.
1943
                            One negates the set of matched endpoints, the other negates
1944
                            the whole match: \n \tSelector = \"!has(my_label)\" matches
1945
                            packets that are from other Calico-controlled \tendpoints
1946
                            that do not have the label \"my_label\". \n \tNotSelector
1947
                            = \"has(my_label)\" matches packets that are not from
1948
                            Calico-controlled \tendpoints that do have the label \"my_label\".
1949
                            \n The effect is that the latter will accept packets from
1950
                            non-Calico sources whereas the former is limited to packets
1951
                            from Calico-controlled endpoints."
1952
                          type: string
1953
                        serviceAccounts:
1954
                          description: ServiceAccounts is an optional field that restricts
1955
                            the rule to only apply to traffic that originates from
1956
                            (or terminates at) a pod running as a matching service
1957
                            account.
1958
                          properties:
1959
                            names:
1960
                              description: Names is an optional field that restricts
1961
                                the rule to only apply to traffic that originates
1962
                                from (or terminates at) a pod running as a service
1963
                                account whose name is in the list.
1964
                              items:
1965
                                type: string
1966
                              type: array
1967
                            selector:
1968
                              description: Selector is an optional field that restricts
1969
                                the rule to only apply to traffic that originates
1970
                                from (or terminates at) a pod running as a service
1971
                                account that matches the given label selector. If
1972
                                both Names and Selector are specified then they are
1973
                                AND'ed.
1974
                              type: string
1975
                          type: object
1976
                        services:
1977
                          description: "Services is an optional field that contains
1978
                            options for matching Kubernetes Services. If specified,
1979
                            only traffic that originates from or terminates at endpoints
1980
                            within the selected service(s) will be matched, and only
1981
                            to/from each endpoint's port. \n Services cannot be specified
1982
                            on the same rule as Selector, NotSelector, NamespaceSelector,
1983
                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts
1984
                            can only be specified with Services on ingress rules."
1985
                          properties:
1986
                            name:
1987
                              description: Name specifies the name of a Kubernetes
1988
                                Service to match.
1989
                              type: string
1990
                            namespace:
1991
                              description: Namespace specifies the namespace of the
1992
                                given Service. If left empty, the rule will match
1993
                                within this policy's namespace.
1994
                              type: string
1995
                          type: object
1996
                      type: object
1997
                    http:
1998
                      description: HTTP contains match criteria that apply to HTTP
1999
                        requests.
2000
                      properties:
2001
                        methods:
2002
                          description: Methods is an optional field that restricts
2003
                            the rule to apply only to HTTP requests that use one of
2004
                            the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple
2005
                            methods are OR'd together.
2006
                          items:
2007
                            type: string
2008
                          type: array
2009
                        paths:
2010
                          description: 'Paths is an optional field that restricts
2011
                            the rule to apply to HTTP requests that use one of the
2012
                            listed HTTP Paths. Multiple paths are OR''d together.
2013
                            e.g: - exact: /foo - prefix: /bar NOTE: Each entry may
2014
                            ONLY specify either a `exact` or a `prefix` match. The
2015
                            validator will check for it.'
2016
                          items:
2017
                            description: 'HTTPPath specifies an HTTP path to match.
2018
                              It may be either of the form: exact: <path>: which matches
2019
                              the path exactly or prefix: <path-prefix>: which matches
2020
                              the path prefix'
2021
                            properties:
2022
                              exact:
2023
                                type: string
2024
                              prefix:
2025
                                type: string
2026
                            type: object
2027
                          type: array
2028
                      type: object
2029
                    icmp:
2030
                      description: ICMP is an optional field that restricts the rule
2031
                        to apply to a specific type and code of ICMP traffic.  This
2032
                        should only be specified if the Protocol field is set to "ICMP"
2033
                        or "ICMPv6".
2034
                      properties:
2035
                        code:
2036
                          description: Match on a specific ICMP code.  If specified,
2037
                            the Type value must also be specified. This is a technical
2038
                            limitation imposed by the kernel's iptables firewall,
2039
                            which Calico uses to enforce the rule.
2040
                          type: integer
2041
                        type:
2042
                          description: Match on a specific ICMP type.  For example
2043
                            a value of 8 refers to ICMP Echo Request (i.e. pings).
2044
                          type: integer
2045
                      type: object
2046
                    ipVersion:
2047
                      description: IPVersion is an optional field that restricts the
2048
                        rule to only match a specific IP version.
2049
                      type: integer
2050
                    metadata:
2051
                      description: Metadata contains additional information for this
2052
                        rule
2053
                      properties:
2054
                        annotations:
2055
                          additionalProperties:
2056
                            type: string
2057
                          description: Annotations is a set of key value pairs that
2058
                            give extra information about the rule
2059
                          type: object
2060
                      type: object
2061
                    notICMP:
2062
                      description: NotICMP is the negated version of the ICMP field.
2063
                      properties:
2064
                        code:
2065
                          description: Match on a specific ICMP code.  If specified,
2066
                            the Type value must also be specified. This is a technical
2067
                            limitation imposed by the kernel's iptables firewall,
2068
                            which Calico uses to enforce the rule.
2069
                          type: integer
2070
                        type:
2071
                          description: Match on a specific ICMP type.  For example
2072
                            a value of 8 refers to ICMP Echo Request (i.e. pings).
2073
                          type: integer
2074
                      type: object
2075
                    notProtocol:
2076
                      anyOf:
2077
                      - type: integer
2078
                      - type: string
2079
                      description: NotProtocol is the negated version of the Protocol
2080
                        field.
2081
                      pattern: ^.*
2082
                      x-kubernetes-int-or-string: true
2083
                    protocol:
2084
                      anyOf:
2085
                      - type: integer
2086
                      - type: string
2087
                      description: "Protocol is an optional field that restricts the
2088
                        rule to only apply to traffic of a specific IP protocol. Required
2089
                        if any of the EntityRules contain Ports (because ports only
2090
                        apply to certain protocols). \n Must be one of these string
2091
                        values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",
2092
                        \"UDPLite\" or an integer in the range 1-255."
2093
                      pattern: ^.*
2094
                      x-kubernetes-int-or-string: true
2095
                    source:
2096
                      description: Source contains the match criteria that apply to
2097
                        source entity.
2098
                      properties:
2099
                        namespaceSelector:
2100
                          description: "NamespaceSelector is an optional field that
2101
                            contains a selector expression. Only traffic that originates
2102
                            from (or terminates at) endpoints within the selected
2103
                            namespaces will be matched. When both NamespaceSelector
2104
                            and another selector are defined on the same rule, then
2105
                            only workload endpoints that are matched by both selectors
2106
                            will be selected by the rule. \n For NetworkPolicy, an
2107
                            empty NamespaceSelector implies that the Selector is limited
2108
                            to selecting only workload endpoints in the same namespace
2109
                            as the NetworkPolicy. \n For NetworkPolicy, `global()`
2110
                            NamespaceSelector implies that the Selector is limited
2111
                            to selecting only GlobalNetworkSet or HostEndpoint. \n
2112
                            For GlobalNetworkPolicy, an empty NamespaceSelector implies
2113
                            the Selector applies to workload endpoints across all
2114
                            namespaces."
2115
                          type: string
2116
                        nets:
2117
                          description: Nets is an optional field that restricts the
2118
                            rule to only apply to traffic that originates from (or
2119
                            terminates at) IP addresses in any of the given subnets.
2120
                          items:
2121
                            type: string
2122
                          type: array
2123
                        notNets:
2124
                          description: NotNets is the negated version of the Nets
2125
                            field.
2126
                          items:
2127
                            type: string
2128
                          type: array
2129
                        notPorts:
2130
                          description: NotPorts is the negated version of the Ports
2131
                            field. Since only some protocols have ports, if any ports
2132
                            are specified it requires the Protocol match in the Rule
2133
                            to be set to "TCP" or "UDP".
2134
                          items:
2135
                            anyOf:
2136
                            - type: integer
2137
                            - type: string
2138
                            pattern: ^.*
2139
                            x-kubernetes-int-or-string: true
2140
                          type: array
2141
                        notSelector:
2142
                          description: NotSelector is the negated version of the Selector
2143
                            field.  See Selector field for subtleties with negated
2144
                            selectors.
2145
                          type: string
2146
                        ports:
2147
                          description: "Ports is an optional field that restricts
2148
                            the rule to only apply to traffic that has a source (destination)
2149
                            port that matches one of these ranges/values. This value
2150
                            is a list of integers or strings that represent ranges
2151
                            of ports. \n Since only some protocols have ports, if
2152
                            any ports are specified it requires the Protocol match
2153
                            in the Rule to be set to \"TCP\" or \"UDP\"."
2154
                          items:
2155
                            anyOf:
2156
                            - type: integer
2157
                            - type: string
2158
                            pattern: ^.*
2159
                            x-kubernetes-int-or-string: true
2160
                          type: array
2161
                        selector:
2162
                          description: "Selector is an optional field that contains
2163
                            a selector expression (see Policy for sample syntax).
2164
                            \ Only traffic that originates from (terminates at) endpoints
2165
                            matching the selector will be matched. \n Note that: in
2166
                            addition to the negated version of the Selector (see NotSelector
2167
                            below), the selector expression syntax itself supports
2168
                            negation.  The two types of negation are subtly different.
2169
                            One negates the set of matched endpoints, the other negates
2170
                            the whole match: \n \tSelector = \"!has(my_label)\" matches
2171
                            packets that are from other Calico-controlled \tendpoints
2172
                            that do not have the label \"my_label\". \n \tNotSelector
2173
                            = \"has(my_label)\" matches packets that are not from
2174
                            Calico-controlled \tendpoints that do have the label \"my_label\".
2175
                            \n The effect is that the latter will accept packets from
2176
                            non-Calico sources whereas the former is limited to packets
2177
                            from Calico-controlled endpoints."
2178
                          type: string
2179
                        serviceAccounts:
2180
                          description: ServiceAccounts is an optional field that restricts
2181
                            the rule to only apply to traffic that originates from
2182
                            (or terminates at) a pod running as a matching service
2183
                            account.
2184
                          properties:
2185
                            names:
2186
                              description: Names is an optional field that restricts
2187
                                the rule to only apply to traffic that originates
2188
                                from (or terminates at) a pod running as a service
2189
                                account whose name is in the list.
2190
                              items:
2191
                                type: string
2192
                              type: array
2193
                            selector:
2194
                              description: Selector is an optional field that restricts
2195
                                the rule to only apply to traffic that originates
2196
                                from (or terminates at) a pod running as a service
2197
                                account that matches the given label selector. If
2198
                                both Names and Selector are specified then they are
2199
                                AND'ed.
2200
                              type: string
2201
                          type: object
2202
                        services:
2203
                          description: "Services is an optional field that contains
2204
                            options for matching Kubernetes Services. If specified,
2205
                            only traffic that originates from or terminates at endpoints
2206
                            within the selected service(s) will be matched, and only
2207
                            to/from each endpoint's port. \n Services cannot be specified
2208
                            on the same rule as Selector, NotSelector, NamespaceSelector,
2209
                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts
2210
                            can only be specified with Services on ingress rules."
2211
                          properties:
2212
                            name:
2213
                              description: Name specifies the name of a Kubernetes
2214
                                Service to match.
2215
                              type: string
2216
                            namespace:
2217
                              description: Namespace specifies the namespace of the
2218
                                given Service. If left empty, the rule will match
2219
                                within this policy's namespace.
2220
                              type: string
2221
                          type: object
2222
                      type: object
2223
                  required:
2224
                  - action
2225
                  type: object
2226
                type: array
2227
              ingress:
2228
                description: The ordered set of ingress rules.  Each rule contains
2229
                  a set of packet match criteria and a corresponding action to apply.
2230
                items:
2231
                  description: "A Rule encapsulates a set of match criteria and an
2232
                    action.  Both selector-based security Policy and security Profiles
2233
                    reference rules - separated out as a list of rules for both ingress
2234
                    and egress packet matching. \n Each positive match criteria has
2235
                    a negated version, prefixed with \"Not\". All the match criteria
2236
                    within a rule must be satisfied for a packet to match. A single
2237
                    rule can contain the positive and negative version of a match
2238
                    and both must be satisfied for the rule to match."
2239
                  properties:
2240
                    action:
2241
                      type: string
2242
                    destination:
2243
                      description: Destination contains the match criteria that apply
2244
                        to destination entity.
2245
                      properties:
2246
                        namespaceSelector:
2247
                          description: "NamespaceSelector is an optional field that
2248
                            contains a selector expression. Only traffic that originates
2249
                            from (or terminates at) endpoints within the selected
2250
                            namespaces will be matched. When both NamespaceSelector
2251
                            and another selector are defined on the same rule, then
2252
                            only workload endpoints that are matched by both selectors
2253
                            will be selected by the rule. \n For NetworkPolicy, an
2254
                            empty NamespaceSelector implies that the Selector is limited
2255
                            to selecting only workload endpoints in the same namespace
2256
                            as the NetworkPolicy. \n For NetworkPolicy, `global()`
2257
                            NamespaceSelector implies that the Selector is limited
2258
                            to selecting only GlobalNetworkSet or HostEndpoint. \n
2259
                            For GlobalNetworkPolicy, an empty NamespaceSelector implies
2260
                            the Selector applies to workload endpoints across all
2261
                            namespaces."
2262
                          type: string
2263
                        nets:
2264
                          description: Nets is an optional field that restricts the
2265
                            rule to only apply to traffic that originates from (or
2266
                            terminates at) IP addresses in any of the given subnets.
2267
                          items:
2268
                            type: string
2269
                          type: array
2270
                        notNets:
2271
                          description: NotNets is the negated version of the Nets
2272
                            field.
2273
                          items:
2274
                            type: string
2275
                          type: array
2276
                        notPorts:
2277
                          description: NotPorts is the negated version of the Ports
2278
                            field. Since only some protocols have ports, if any ports
2279
                            are specified it requires the Protocol match in the Rule
2280
                            to be set to "TCP" or "UDP".
2281
                          items:
2282
                            anyOf:
2283
                            - type: integer
2284
                            - type: string
2285
                            pattern: ^.*
2286
                            x-kubernetes-int-or-string: true
2287
                          type: array
2288
                        notSelector:
2289
                          description: NotSelector is the negated version of the Selector
2290
                            field.  See Selector field for subtleties with negated
2291
                            selectors.
2292
                          type: string
2293
                        ports:
2294
                          description: "Ports is an optional field that restricts
2295
                            the rule to only apply to traffic that has a source (destination)
2296
                            port that matches one of these ranges/values. This value
2297
                            is a list of integers or strings that represent ranges
2298
                            of ports. \n Since only some protocols have ports, if
2299
                            any ports are specified it requires the Protocol match
2300
                            in the Rule to be set to \"TCP\" or \"UDP\"."
2301
                          items:
2302
                            anyOf:
2303
                            - type: integer
2304
                            - type: string
2305
                            pattern: ^.*
2306
                            x-kubernetes-int-or-string: true
2307
                          type: array
2308
                        selector:
2309
                          description: "Selector is an optional field that contains
2310
                            a selector expression (see Policy for sample syntax).
2311
                            \ Only traffic that originates from (terminates at) endpoints
2312
                            matching the selector will be matched. \n Note that: in
2313
                            addition to the negated version of the Selector (see NotSelector
2314
                            below), the selector expression syntax itself supports
2315
                            negation.  The two types of negation are subtly different.
2316
                            One negates the set of matched endpoints, the other negates
2317
                            the whole match: \n \tSelector = \"!has(my_label)\" matches
2318
                            packets that are from other Calico-controlled \tendpoints
2319
                            that do not have the label \"my_label\". \n \tNotSelector
2320
                            = \"has(my_label)\" matches packets that are not from
2321
                            Calico-controlled \tendpoints that do have the label \"my_label\".
2322
                            \n The effect is that the latter will accept packets from
2323
                            non-Calico sources whereas the former is limited to packets
2324
                            from Calico-controlled endpoints."
2325
                          type: string
2326
                        serviceAccounts:
2327
                          description: ServiceAccounts is an optional field that restricts
2328
                            the rule to only apply to traffic that originates from
2329
                            (or terminates at) a pod running as a matching service
2330
                            account.
2331
                          properties:
2332
                            names:
2333
                              description: Names is an optional field that restricts
2334
                                the rule to only apply to traffic that originates
2335
                                from (or terminates at) a pod running as a service
2336
                                account whose name is in the list.
2337
                              items:
2338
                                type: string
2339
                              type: array
2340
                            selector:
2341
                              description: Selector is an optional field that restricts
2342
                                the rule to only apply to traffic that originates
2343
                                from (or terminates at) a pod running as a service
2344
                                account that matches the given label selector. If
2345
                                both Names and Selector are specified then they are
2346
                                AND'ed.
2347
                              type: string
2348
                          type: object
2349
                        services:
2350
                          description: "Services is an optional field that contains
2351
                            options for matching Kubernetes Services. If specified,
2352
                            only traffic that originates from or terminates at endpoints
2353
                            within the selected service(s) will be matched, and only
2354
                            to/from each endpoint's port. \n Services cannot be specified
2355
                            on the same rule as Selector, NotSelector, NamespaceSelector,
2356
                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts
2357
                            can only be specified with Services on ingress rules."
2358
                          properties:
2359
                            name:
2360
                              description: Name specifies the name of a Kubernetes
2361
                                Service to match.
2362
                              type: string
2363
                            namespace:
2364
                              description: Namespace specifies the namespace of the
2365
                                given Service. If left empty, the rule will match
2366
                                within this policy's namespace.
2367
                              type: string
2368
                          type: object
2369
                      type: object
2370
                    http:
2371
                      description: HTTP contains match criteria that apply to HTTP
2372
                        requests.
2373
                      properties:
2374
                        methods:
2375
                          description: Methods is an optional field that restricts
2376
                            the rule to apply only to HTTP requests that use one of
2377
                            the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple
2378
                            methods are OR'd together.
2379
                          items:
2380
                            type: string
2381
                          type: array
2382
                        paths:
2383
                          description: 'Paths is an optional field that restricts
2384
                            the rule to apply to HTTP requests that use one of the
2385
                            listed HTTP Paths. Multiple paths are OR''d together.
2386
                            e.g: - exact: /foo - prefix: /bar NOTE: Each entry may
2387
                            ONLY specify either a `exact` or a `prefix` match. The
2388
                            validator will check for it.'
2389
                          items:
2390
                            description: 'HTTPPath specifies an HTTP path to match.
2391
                              It may be either of the form: exact: <path>: which matches
2392
                              the path exactly or prefix: <path-prefix>: which matches
2393
                              the path prefix'
2394
                            properties:
2395
                              exact:
2396
                                type: string
2397
                              prefix:
2398
                                type: string
2399
                            type: object
2400
                          type: array
2401
                      type: object
2402
                    icmp:
2403
                      description: ICMP is an optional field that restricts the rule
2404
                        to apply to a specific type and code of ICMP traffic.  This
2405
                        should only be specified if the Protocol field is set to "ICMP"
2406
                        or "ICMPv6".
2407
                      properties:
2408
                        code:
2409
                          description: Match on a specific ICMP code.  If specified,
2410
                            the Type value must also be specified. This is a technical
2411
                            limitation imposed by the kernel's iptables firewall,
2412
                            which Calico uses to enforce the rule.
2413
                          type: integer
2414
                        type:
2415
                          description: Match on a specific ICMP type.  For example
2416
                            a value of 8 refers to ICMP Echo Request (i.e. pings).
2417
                          type: integer
2418
                      type: object
2419
                    ipVersion:
2420
                      description: IPVersion is an optional field that restricts the
2421
                        rule to only match a specific IP version.
2422
                      type: integer
2423
                    metadata:
2424
                      description: Metadata contains additional information for this
2425
                        rule
2426
                      properties:
2427
                        annotations:
2428
                          additionalProperties:
2429
                            type: string
2430
                          description: Annotations is a set of key value pairs that
2431
                            give extra information about the rule
2432
                          type: object
2433
                      type: object
2434
                    notICMP:
2435
                      description: NotICMP is the negated version of the ICMP field.
2436
                      properties:
2437
                        code:
2438
                          description: Match on a specific ICMP code.  If specified,
2439
                            the Type value must also be specified. This is a technical
2440
                            limitation imposed by the kernel's iptables firewall,
2441
                            which Calico uses to enforce the rule.
2442
                          type: integer
2443
                        type:
2444
                          description: Match on a specific ICMP type.  For example
2445
                            a value of 8 refers to ICMP Echo Request (i.e. pings).
2446
                          type: integer
2447
                      type: object
2448
                    notProtocol:
2449
                      anyOf:
2450
                      - type: integer
2451
                      - type: string
2452
                      description: NotProtocol is the negated version of the Protocol
2453
                        field.
2454
                      pattern: ^.*
2455
                      x-kubernetes-int-or-string: true
2456
                    protocol:
2457
                      anyOf:
2458
                      - type: integer
2459
                      - type: string
2460
                      description: "Protocol is an optional field that restricts the
2461
                        rule to only apply to traffic of a specific IP protocol. Required
2462
                        if any of the EntityRules contain Ports (because ports only
2463
                        apply to certain protocols). \n Must be one of these string
2464
                        values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",
2465
                        \"UDPLite\" or an integer in the range 1-255."
2466
                      pattern: ^.*
2467
                      x-kubernetes-int-or-string: true
2468
                    source:
2469
                      description: Source contains the match criteria that apply to
2470
                        source entity.
2471
                      properties:
2472
                        namespaceSelector:
2473
                          description: "NamespaceSelector is an optional field that
2474
                            contains a selector expression. Only traffic that originates
2475
                            from (or terminates at) endpoints within the selected
2476
                            namespaces will be matched. When both NamespaceSelector
2477
                            and another selector are defined on the same rule, then
2478
                            only workload endpoints that are matched by both selectors
2479
                            will be selected by the rule. \n For NetworkPolicy, an
2480
                            empty NamespaceSelector implies that the Selector is limited
2481
                            to selecting only workload endpoints in the same namespace
2482
                            as the NetworkPolicy. \n For NetworkPolicy, `global()`
2483
                            NamespaceSelector implies that the Selector is limited
2484
                            to selecting only GlobalNetworkSet or HostEndpoint. \n
2485
                            For GlobalNetworkPolicy, an empty NamespaceSelector implies
2486
                            the Selector applies to workload endpoints across all
2487
                            namespaces."
2488
                          type: string
2489
                        nets:
2490
                          description: Nets is an optional field that restricts the
2491
                            rule to only apply to traffic that originates from (or
2492
                            terminates at) IP addresses in any of the given subnets.
2493
                          items:
2494
                            type: string
2495
                          type: array
2496
                        notNets:
2497
                          description: NotNets is the negated version of the Nets
2498
                            field.
2499
                          items:
2500
                            type: string
2501
                          type: array
2502
                        notPorts:
2503
                          description: NotPorts is the negated version of the Ports
2504
                            field. Since only some protocols have ports, if any ports
2505
                            are specified it requires the Protocol match in the Rule
2506
                            to be set to "TCP" or "UDP".
2507
                          items:
2508
                            anyOf:
2509
                            - type: integer
2510
                            - type: string
2511
                            pattern: ^.*
2512
                            x-kubernetes-int-or-string: true
2513
                          type: array
2514
                        notSelector:
2515
                          description: NotSelector is the negated version of the Selector
2516
                            field.  See Selector field for subtleties with negated
2517
                            selectors.
2518
                          type: string
2519
                        ports:
2520
                          description: "Ports is an optional field that restricts
2521
                            the rule to only apply to traffic that has a source (destination)
2522
                            port that matches one of these ranges/values. This value
2523
                            is a list of integers or strings that represent ranges
2524
                            of ports. \n Since only some protocols have ports, if
2525
                            any ports are specified it requires the Protocol match
2526
                            in the Rule to be set to \"TCP\" or \"UDP\"."
2527
                          items:
2528
                            anyOf:
2529
                            - type: integer
2530
                            - type: string
2531
                            pattern: ^.*
2532
                            x-kubernetes-int-or-string: true
2533
                          type: array
2534
                        selector:
2535
                          description: "Selector is an optional field that contains
2536
                            a selector expression (see Policy for sample syntax).
2537
                            \ Only traffic that originates from (terminates at) endpoints
2538
                            matching the selector will be matched. \n Note that: in
2539
                            addition to the negated version of the Selector (see NotSelector
2540
                            below), the selector expression syntax itself supports
2541
                            negation.  The two types of negation are subtly different.
2542
                            One negates the set of matched endpoints, the other negates
2543
                            the whole match: \n \tSelector = \"!has(my_label)\" matches
2544
                            packets that are from other Calico-controlled \tendpoints
2545
                            that do not have the label \"my_label\". \n \tNotSelector
2546
                            = \"has(my_label)\" matches packets that are not from
2547
                            Calico-controlled \tendpoints that do have the label \"my_label\".
2548
                            \n The effect is that the latter will accept packets from
2549
                            non-Calico sources whereas the former is limited to packets
2550
                            from Calico-controlled endpoints."
2551
                          type: string
2552
                        serviceAccounts:
2553
                          description: ServiceAccounts is an optional field that restricts
2554
                            the rule to only apply to traffic that originates from
2555
                            (or terminates at) a pod running as a matching service
2556
                            account.
2557
                          properties:
2558
                            names:
2559
                              description: Names is an optional field that restricts
2560
                                the rule to only apply to traffic that originates
2561
                                from (or terminates at) a pod running as a service
2562
                                account whose name is in the list.
2563
                              items:
2564
                                type: string
2565
                              type: array
2566
                            selector:
2567
                              description: Selector is an optional field that restricts
2568
                                the rule to only apply to traffic that originates
2569
                                from (or terminates at) a pod running as a service
2570
                                account that matches the given label selector. If
2571
                                both Names and Selector are specified then they are
2572
                                AND'ed.
2573
                              type: string
2574
                          type: object
2575
                        services:
2576
                          description: "Services is an optional field that contains
2577
                            options for matching Kubernetes Services. If specified,
2578
                            only traffic that originates from or terminates at endpoints
2579
                            within the selected service(s) will be matched, and only
2580
                            to/from each endpoint's port. \n Services cannot be specified
2581
                            on the same rule as Selector, NotSelector, NamespaceSelector,
2582
                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts
2583
                            can only be specified with Services on ingress rules."
2584
                          properties:
2585
                            name:
2586
                              description: Name specifies the name of a Kubernetes
2587
                                Service to match.
2588
                              type: string
2589
                            namespace:
2590
                              description: Namespace specifies the namespace of the
2591
                                given Service. If left empty, the rule will match
2592
                                within this policy's namespace.
2593
                              type: string
2594
                          type: object
2595
                      type: object
2596
                  required:
2597
                  - action
2598
                  type: object
2599
                type: array
2600
              namespaceSelector:
2601
                description: NamespaceSelector is an optional field for an expression
2602
                  used to select a pod based on namespaces.
2603
                type: string
2604
              order:
2605
                description: Order is an optional field that specifies the order in
2606
                  which the policy is applied. Policies with higher "order" are applied
2607
                  after those with lower order.  If the order is omitted, it may be
2608
                  considered to be "infinite" - i.e. the policy will be applied last.  Policies
2609
                  with identical order will be applied in alphanumerical order based
2610
                  on the Policy "Name".
2611
                type: number
2612
              performanceHints:
2613
                description: "PerformanceHints contains a list of hints to Calico's
2614
                  policy engine to help process the policy more efficiently.  Hints
2615
                  never change the enforcement behaviour of the policy. \n Currently,
2616
                  the only available hint is \"AssumeNeededOnEveryNode\".  When that
2617
                  hint is set on a policy, Felix will act as if the policy matches
2618
                  a local endpoint even if it does not. This is useful for \"preloading\"
2619
                  any large static policies that are known to be used on every node.
2620
                  If the policy is _not_ used on a particular node then the work done
2621
                  to preload the policy (and to maintain it) is wasted."
2622
                items:
2623
                  type: string
2624
                type: array
2625
              preDNAT:
2626
                description: PreDNAT indicates to apply the rules in this policy before
2627
                  any DNAT.
2628
                type: boolean
2629
              selector:
2630
                description: "The selector is an expression used to pick pick out
2631
                  the endpoints that the policy should be applied to. \n Selector
2632
                  expressions follow this syntax: \n \tlabel == \"string_literal\"
2633
                  \ ->  comparison, e.g. my_label == \"foo bar\" \tlabel != \"string_literal\"
2634
                  \  ->  not equal; also matches if label is not present \tlabel in
2635
                  { \"a\", \"b\", \"c\", ... }  ->  true if the value of label X is
2636
                  one of \"a\", \"b\", \"c\" \tlabel not in { \"a\", \"b\", \"c\",
2637
                  ... }  ->  true if the value of label X is not one of \"a\", \"b\",
2638
                  \"c\" \thas(label_name)  -> True if that label is present \t! expr
2639
                  -> negation of expr \texpr && expr  -> Short-circuit and \texpr
2640
                  || expr  -> Short-circuit or \t( expr ) -> parens for grouping \tall()
2641
                  or the empty selector -> matches all endpoints. \n Label names are
2642
                  allowed to contain alphanumerics, -, _ and /. String literals are
2643
                  more permissive but they do not support escape characters. \n Examples
2644
                  (with made-up labels): \n \ttype == \"webserver\" && deployment
2645
                  == \"prod\" \ttype in {\"frontend\", \"backend\"} \tdeployment !=
2646
                  \"dev\" \t! has(label_name)"
2647
                type: string
2648
              serviceAccountSelector:
2649
                description: ServiceAccountSelector is an optional field for an expression
2650
                  used to select a pod based on service accounts.
2651
                type: string
2652
              types:
2653
                description: "Types indicates whether this policy applies to ingress,
2654
                  or to egress, or to both.  When not explicitly specified (and so
2655
                  the value on creation is empty or nil), Calico defaults Types according
2656
                  to what Ingress and Egress rules are present in the policy.  The
2657
                  default is: \n - [ PolicyTypeIngress ], if there are no Egress rules
2658
                  (including the case where there are   also no Ingress rules) \n
2659
                  - [ PolicyTypeEgress ], if there are Egress rules but no Ingress
2660
                  rules \n - [ PolicyTypeIngress, PolicyTypeEgress ], if there are
2661
                  both Ingress and Egress rules. \n When the policy is read back again,
2662
                  Types will always be one of these values, never empty or nil."
2663
                items:
2664
                  description: PolicyType enumerates the possible values of the PolicySpec
2665
                    Types field.
2666
                  type: string
2667
                type: array
2668
            type: object
2669
        type: object
2670
    served: true
2671
    storage: true
2672
status:
2673
  acceptedNames:
2674
    kind: ""
2675
    plural: ""
2676
  conditions: []
2677
  storedVersions: []
2678
---
2679
# Source: calico/templates/kdd-crds.yaml
2680
apiVersion: apiextensions.k8s.io/v1
2681
kind: CustomResourceDefinition
2682
metadata:
2683
  name: globalnetworksets.crd.projectcalico.org
2684
spec:
2685
  group: crd.projectcalico.org
2686
  names:
2687
    kind: GlobalNetworkSet
2688
    listKind: GlobalNetworkSetList
2689
    plural: globalnetworksets
2690
    singular: globalnetworkset
2691
  preserveUnknownFields: false
2692
  scope: Cluster
2693
  versions:
2694
  - name: v1
2695
    schema:
2696
      openAPIV3Schema:
2697
        description: GlobalNetworkSet contains a set of arbitrary IP sub-networks/CIDRs
2698
          that share labels to allow rules to refer to them via selectors.  The labels
2699
          of GlobalNetworkSet are not namespaced.
2700
        properties:
2701
          apiVersion:
2702
            description: 'APIVersion defines the versioned schema of this representation
2703
              of an object. Servers should convert recognized schemas to the latest
2704
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2705
            type: string
2706
          kind:
2707
            description: 'Kind is a string value representing the REST resource this
2708
              object represents. Servers may infer this from the endpoint the client
2709
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2710
            type: string
2711
          metadata:
2712
            type: object
2713
          spec:
2714
            description: GlobalNetworkSetSpec contains the specification for a NetworkSet
2715
              resource.
2716
            properties:
2717
              nets:
2718
                description: The list of IP networks that belong to this set.
2719
                items:
2720
                  type: string
2721
                type: array
2722
            type: object
2723
        type: object
2724
    served: true
2725
    storage: true
2726
status:
2727
  acceptedNames:
2728
    kind: ""
2729
    plural: ""
2730
  conditions: []
2731
  storedVersions: []
2732
---
2733
# Source: calico/templates/kdd-crds.yaml
2734
apiVersion: apiextensions.k8s.io/v1
2735
kind: CustomResourceDefinition
2736
metadata:
2737
  name: hostendpoints.crd.projectcalico.org
2738
spec:
2739
  group: crd.projectcalico.org
2740
  names:
2741
    kind: HostEndpoint
2742
    listKind: HostEndpointList
2743
    plural: hostendpoints
2744
    singular: hostendpoint
2745
  preserveUnknownFields: false
2746
  scope: Cluster
2747
  versions:
2748
  - name: v1
2749
    schema:
2750
      openAPIV3Schema:
2751
        properties:
2752
          apiVersion:
2753
            description: 'APIVersion defines the versioned schema of this representation
2754
              of an object. Servers should convert recognized schemas to the latest
2755
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2756
            type: string
2757
          kind:
2758
            description: 'Kind is a string value representing the REST resource this
2759
              object represents. Servers may infer this from the endpoint the client
2760
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2761
            type: string
2762
          metadata:
2763
            type: object
2764
          spec:
2765
            description: HostEndpointSpec contains the specification for a HostEndpoint
2766
              resource.
2767
            properties:
2768
              expectedIPs:
2769
                description: "The expected IP addresses (IPv4 and IPv6) of the endpoint.
2770
                  If \"InterfaceName\" is not present, Calico will look for an interface
2771
                  matching any of the IPs in the list and apply policy to that. Note:
2772
                  \tWhen using the selector match criteria in an ingress or egress
2773
                  security Policy \tor Profile, Calico converts the selector into
2774
                  a set of IP addresses. For host \tendpoints, the ExpectedIPs field
2775
                  is used for that purpose. (If only the interface \tname is specified,
2776
                  Calico does not learn the IPs of the interface for use in match
2777
                  \tcriteria.)"
2778
                items:
2779
                  type: string
2780
                type: array
2781
              interfaceName:
2782
                description: "Either \"*\", or the name of a specific Linux interface
2783
                  to apply policy to; or empty.  \"*\" indicates that this HostEndpoint
2784
                  governs all traffic to, from or through the default network namespace
2785
                  of the host named by the \"Node\" field; entering and leaving that
2786
                  namespace via any interface, including those from/to non-host-networked
2787
                  local workloads. \n If InterfaceName is not \"*\", this HostEndpoint
2788
                  only governs traffic that enters or leaves the host through the
2789
                  specific interface named by InterfaceName, or - when InterfaceName
2790
                  is empty - through the specific interface that has one of the IPs
2791
                  in ExpectedIPs. Therefore, when InterfaceName is empty, at least
2792
                  one expected IP must be specified.  Only external interfaces (such
2793
                  as \"eth0\") are supported here; it isn't possible for a HostEndpoint
2794
                  to protect traffic through a specific local workload interface.
2795
                  \n Note: Only some kinds of policy are implemented for \"*\" HostEndpoints;
2796
                  initially just pre-DNAT policy.  Please check Calico documentation
2797
                  for the latest position."
2798
                type: string
2799
              node:
2800
                description: The node name identifying the Calico node instance.
2801
                type: string
2802
              ports:
2803
                description: Ports contains the endpoint's named ports, which may
2804
                  be referenced in security policy rules.
2805
                items:
2806
                  properties:
2807
                    name:
2808
                      type: string
2809
                    port:
2810
                      type: integer
2811
                    protocol:
2812
                      anyOf:
2813
                      - type: integer
2814
                      - type: string
2815
                      pattern: ^.*
2816
                      x-kubernetes-int-or-string: true
2817
                  required:
2818
                  - name
2819
                  - port
2820
                  - protocol
2821
                  type: object
2822
                type: array
2823
              profiles:
2824
                description: A list of identifiers of security Profile objects that
2825
                  apply to this endpoint. Each profile is applied in the order that
2826
                  they appear in this list.  Profile rules are applied after the selector-based
2827
                  security policy.
2828
                items:
2829
                  type: string
2830
                type: array
2831
            type: object
2832
        type: object
2833
    served: true
2834
    storage: true
2835
status:
2836
  acceptedNames:
2837
    kind: ""
2838
    plural: ""
2839
  conditions: []
2840
  storedVersions: []
2841
---
2842
# Source: calico/templates/kdd-crds.yaml
2843
apiVersion: apiextensions.k8s.io/v1
2844
kind: CustomResourceDefinition
2845
metadata:
2846
  name: ipamblocks.crd.projectcalico.org
2847
spec:
2848
  group: crd.projectcalico.org
2849
  names:
2850
    kind: IPAMBlock
2851
    listKind: IPAMBlockList
2852
    plural: ipamblocks
2853
    singular: ipamblock
2854
  preserveUnknownFields: false
2855
  scope: Cluster
2856
  versions:
2857
  - name: v1
2858
    schema:
2859
      openAPIV3Schema:
2860
        properties:
2861
          apiVersion:
2862
            description: 'APIVersion defines the versioned schema of this representation
2863
              of an object. Servers should convert recognized schemas to the latest
2864
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2865
            type: string
2866
          kind:
2867
            description: 'Kind is a string value representing the REST resource this
2868
              object represents. Servers may infer this from the endpoint the client
2869
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2870
            type: string
2871
          metadata:
2872
            type: object
2873
          spec:
2874
            description: IPAMBlockSpec contains the specification for an IPAMBlock
2875
              resource.
2876
            properties:
2877
              affinity:
2878
                description: Affinity of the block, if this block has one. If set,
2879
                  it will be of the form "host:<hostname>". If not set, this block
2880
                  is not affine to a host.
2881
                type: string
2882
              allocations:
2883
                description: Array of allocations in-use within this block. nil entries
2884
                  mean the allocation is free. For non-nil entries at index i, the
2885
                  index is the ordinal of the allocation within this block and the
2886
                  value is the index of the associated attributes in the Attributes
2887
                  array.
2888
                items:
2889
                  type: integer
2890
                  # TODO: This nullable is manually added in. We should update controller-gen
2891
                  # to handle []*int properly itself.
2892
                  nullable: true
2893
                type: array
2894
              attributes:
2895
                description: Attributes is an array of arbitrary metadata associated
2896
                  with allocations in the block. To find attributes for a given allocation,
2897
                  use the value of the allocation's entry in the Allocations array
2898
                  as the index of the element in this array.
2899
                items:
2900
                  properties:
2901
                    handle_id:
2902
                      type: string
2903
                    secondary:
2904
                      additionalProperties:
2905
                        type: string
2906
                      type: object
2907
                  type: object
2908
                type: array
2909
              cidr:
2910
                description: The block's CIDR.
2911
                type: string
2912
              deleted:
2913
                description: Deleted is an internal boolean used to workaround a limitation
2914
                  in the Kubernetes API whereby deletion will not return a conflict
2915
                  error if the block has been updated. It should not be set manually.
2916
                type: boolean
2917
              sequenceNumber:
2918
                default: 0
2919
                description: We store a sequence number that is updated each time
2920
                  the block is written. Each allocation will also store the sequence
2921
                  number of the block at the time of its creation. When releasing
2922
                  an IP, passing the sequence number associated with the allocation
2923
                  allows us to protect against a race condition and ensure the IP
2924
                  hasn't been released and re-allocated since the release request.
2925
                format: int64
2926
                type: integer
2927
              sequenceNumberForAllocation:
2928
                additionalProperties:
2929
                  format: int64
2930
                  type: integer
2931
                description: Map of allocated ordinal within the block to sequence
2932
                  number of the block at the time of allocation. Kubernetes does not
2933
                  allow numerical keys for maps, so the key is cast to a string.
2934
                type: object
2935
              strictAffinity:
2936
                description: StrictAffinity on the IPAMBlock is deprecated and no
2937
                  longer used by the code. Use IPAMConfig StrictAffinity instead.
2938
                type: boolean
2939
              unallocated:
2940
                description: Unallocated is an ordered list of allocations which are
2941
                  free in the block.
2942
                items:
2943
                  type: integer
2944
                type: array
2945
            required:
2946
            - allocations
2947
            - attributes
2948
            - cidr
2949
            - strictAffinity
2950
            - unallocated
2951
            type: object
2952
        type: object
2953
    served: true
2954
    storage: true
2955
status:
2956
  acceptedNames:
2957
    kind: ""
2958
    plural: ""
2959
  conditions: []
2960
  storedVersions: []
2961
---
2962
# Source: calico/templates/kdd-crds.yaml
2963
apiVersion: apiextensions.k8s.io/v1
2964
kind: CustomResourceDefinition
2965
metadata:
2966
  name: ipamconfigs.crd.projectcalico.org
2967
spec:
2968
  group: crd.projectcalico.org
2969
  names:
2970
    kind: IPAMConfig
2971
    listKind: IPAMConfigList
2972
    plural: ipamconfigs
2973
    singular: ipamconfig
2974
  preserveUnknownFields: false
2975
  scope: Cluster
2976
  versions:
2977
  - name: v1
2978
    schema:
2979
      openAPIV3Schema:
2980
        properties:
2981
          apiVersion:
2982
            description: 'APIVersion defines the versioned schema of this representation
2983
              of an object. Servers should convert recognized schemas to the latest
2984
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2985
            type: string
2986
          kind:
2987
            description: 'Kind is a string value representing the REST resource this
2988
              object represents. Servers may infer this from the endpoint the client
2989
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2990
            type: string
2991
          metadata:
2992
            type: object
2993
          spec:
2994
            description: IPAMConfigSpec contains the specification for an IPAMConfig
2995
              resource.
2996
            properties:
2997
              autoAllocateBlocks:
2998
                type: boolean
2999
              maxBlocksPerHost:
3000
                description: MaxBlocksPerHost, if non-zero, is the max number of blocks
3001
                  that can be affine to each host.
3002
                maximum: 2147483647
3003
                minimum: 0
3004
                type: integer
3005
              strictAffinity:
3006
                type: boolean
3007
            required:
3008
            - autoAllocateBlocks
3009
            - strictAffinity
3010
            type: object
3011
        type: object
3012
    served: true
3013
    storage: true
3014
status:
3015
  acceptedNames:
3016
    kind: ""
3017
    plural: ""
3018
  conditions: []
3019
  storedVersions: []
3020
---
3021
# Source: calico/templates/kdd-crds.yaml
3022
apiVersion: apiextensions.k8s.io/v1
3023
kind: CustomResourceDefinition
3024
metadata:
3025
  name: ipamhandles.crd.projectcalico.org
3026
spec:
3027
  group: crd.projectcalico.org
3028
  names:
3029
    kind: IPAMHandle
3030
    listKind: IPAMHandleList
3031
    plural: ipamhandles
3032
    singular: ipamhandle
3033
  preserveUnknownFields: false
3034
  scope: Cluster
3035
  versions:
3036
  - name: v1
3037
    schema:
3038
      openAPIV3Schema:
3039
        properties:
3040
          apiVersion:
3041
            description: 'APIVersion defines the versioned schema of this representation
3042
              of an object. Servers should convert recognized schemas to the latest
3043
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3044
            type: string
3045
          kind:
3046
            description: 'Kind is a string value representing the REST resource this
3047
              object represents. Servers may infer this from the endpoint the client
3048
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3049
            type: string
3050
          metadata:
3051
            type: object
3052
          spec:
3053
            description: IPAMHandleSpec contains the specification for an IPAMHandle
3054
              resource.
3055
            properties:
3056
              block:
3057
                additionalProperties:
3058
                  type: integer
3059
                type: object
3060
              deleted:
3061
                type: boolean
3062
              handleID:
3063
                type: string
3064
            required:
3065
            - block
3066
            - handleID
3067
            type: object
3068
        type: object
3069
    served: true
3070
    storage: true
3071
status:
3072
  acceptedNames:
3073
    kind: ""
3074
    plural: ""
3075
  conditions: []
3076
  storedVersions: []
3077
---
3078
# Source: calico/templates/kdd-crds.yaml
3079
apiVersion: apiextensions.k8s.io/v1
3080
kind: CustomResourceDefinition
3081
metadata:
3082
  name: ippools.crd.projectcalico.org
3083
spec:
3084
  group: crd.projectcalico.org
3085
  names:
3086
    kind: IPPool
3087
    listKind: IPPoolList
3088
    plural: ippools
3089
    singular: ippool
3090
  preserveUnknownFields: false
3091
  scope: Cluster
3092
  versions:
3093
  - name: v1
3094
    schema:
3095
      openAPIV3Schema:
3096
        properties:
3097
          apiVersion:
3098
            description: 'APIVersion defines the versioned schema of this representation
3099
              of an object. Servers should convert recognized schemas to the latest
3100
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3101
            type: string
3102
          kind:
3103
            description: 'Kind is a string value representing the REST resource this
3104
              object represents. Servers may infer this from the endpoint the client
3105
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3106
            type: string
3107
          metadata:
3108
            type: object
3109
          spec:
3110
            description: IPPoolSpec contains the specification for an IPPool resource.
3111
            properties:
3112
              allowedUses:
3113
                description: AllowedUse controls what the IP pool will be used for.  If
3114
                  not specified or empty, defaults to ["Tunnel", "Workload"] for back-compatibility
3115
                items:
3116
                  type: string
3117
                type: array
3118
              blockSize:
3119
                description: The block size to use for IP address assignments from
3120
                  this pool. Defaults to 26 for IPv4 and 122 for IPv6.
3121
                type: integer
3122
              cidr:
3123
                description: The pool CIDR.
3124
                type: string
3125
              disableBGPExport:
3126
                description: 'Disable exporting routes from this IP Pool''s CIDR over
3127
                  BGP. [Default: false]'
3128
                type: boolean
3129
              disabled:
3130
                description: When disabled is true, Calico IPAM will not assign addresses
3131
                  from this pool.
3132
                type: boolean
3133
              ipip:
3134
                description: 'Deprecated: this field is only used for APIv1 backwards
3135
                  compatibility. Setting this field is not allowed, this field is
3136
                  for internal use only.'
3137
                properties:
3138
                  enabled:
3139
                    description: When enabled is true, ipip tunneling will be used
3140
                      to deliver packets to destinations within this pool.
3141
                    type: boolean
3142
                  mode:
3143
                    description: The IPIP mode.  This can be one of "always" or "cross-subnet".  A
3144
                      mode of "always" will also use IPIP tunneling for routing to
3145
                      destination IP addresses within this pool.  A mode of "cross-subnet"
3146
                      will only use IPIP tunneling when the destination node is on
3147
                      a different subnet to the originating node.  The default value
3148
                      (if not specified) is "always".
3149
                    type: string
3150
                type: object
3151
              ipipMode:
3152
                description: Contains configuration for IPIP tunneling for this pool.
3153
                  If not specified, then this is defaulted to "Never" (i.e. IPIP tunneling
3154
                  is disabled).
3155
                type: string
3156
              nat-outgoing:
3157
                description: 'Deprecated: this field is only used for APIv1 backwards
3158
                  compatibility. Setting this field is not allowed, this field is
3159
                  for internal use only.'
3160
                type: boolean
3161
              natOutgoing:
3162
                description: When natOutgoing is true, packets sent from Calico networked
3163
                  containers in this pool to destinations outside of this pool will
3164
                  be masqueraded.
3165
                type: boolean
3166
              nodeSelector:
3167
                description: Allows IPPool to allocate for a specific node by label
3168
                  selector.
3169
                type: string
3170
              vxlanMode:
3171
                description: Contains configuration for VXLAN tunneling for this pool.
3172
                  If not specified, then this is defaulted to "Never" (i.e. VXLAN
3173
                  tunneling is disabled).
3174
                type: string
3175
            required:
3176
            - cidr
3177
            type: object
3178
        type: object
3179
    served: true
3180
    storage: true
3181
status:
3182
  acceptedNames:
3183
    kind: ""
3184
    plural: ""
3185
  conditions: []
3186
  storedVersions: []
3187
---
3188
# Source: calico/templates/kdd-crds.yaml
3189
apiVersion: apiextensions.k8s.io/v1
3190
kind: CustomResourceDefinition
3191
metadata:
3192
  annotations:
3193
    controller-gen.kubebuilder.io/version: (devel)
3194
  creationTimestamp: null
3195
  name: ipreservations.crd.projectcalico.org
3196
spec:
3197
  group: crd.projectcalico.org
3198
  names:
3199
    kind: IPReservation
3200
    listKind: IPReservationList
3201
    plural: ipreservations
3202
    singular: ipreservation
3203
  preserveUnknownFields: false
3204
  scope: Cluster
3205
  versions:
3206
  - name: v1
3207
    schema:
3208
      openAPIV3Schema:
3209
        properties:
3210
          apiVersion:
3211
            description: 'APIVersion defines the versioned schema of this representation
3212
              of an object. Servers should convert recognized schemas to the latest
3213
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3214
            type: string
3215
          kind:
3216
            description: 'Kind is a string value representing the REST resource this
3217
              object represents. Servers may infer this from the endpoint the client
3218
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3219
            type: string
3220
          metadata:
3221
            type: object
3222
          spec:
3223
            description: IPReservationSpec contains the specification for an IPReservation
3224
              resource.
3225
            properties:
3226
              reservedCIDRs:
3227
                description: ReservedCIDRs is a list of CIDRs and/or IP addresses
3228
                  that Calico IPAM will exclude from new allocations.
3229
                items:
3230
                  type: string
3231
                type: array
3232
            type: object
3233
        type: object
3234
    served: true
3235
    storage: true
3236
status:
3237
  acceptedNames:
3238
    kind: ""
3239
    plural: ""
3240
  conditions: []
3241
  storedVersions: []
3242
---
3243
# Source: calico/templates/kdd-crds.yaml
3244
apiVersion: apiextensions.k8s.io/v1
3245
kind: CustomResourceDefinition
3246
metadata:
3247
  name: kubecontrollersconfigurations.crd.projectcalico.org
3248
spec:
3249
  group: crd.projectcalico.org
3250
  names:
3251
    kind: KubeControllersConfiguration
3252
    listKind: KubeControllersConfigurationList
3253
    plural: kubecontrollersconfigurations
3254
    singular: kubecontrollersconfiguration
3255
  preserveUnknownFields: false
3256
  scope: Cluster
3257
  versions:
3258
  - name: v1
3259
    schema:
3260
      openAPIV3Schema:
3261
        properties:
3262
          apiVersion:
3263
            description: 'APIVersion defines the versioned schema of this representation
3264
              of an object. Servers should convert recognized schemas to the latest
3265
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3266
            type: string
3267
          kind:
3268
            description: 'Kind is a string value representing the REST resource this
3269
              object represents. Servers may infer this from the endpoint the client
3270
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3271
            type: string
3272
          metadata:
3273
            type: object
3274
          spec:
3275
            description: KubeControllersConfigurationSpec contains the values of the
3276
              Kubernetes controllers configuration.
3277
            properties:
3278
              controllers:
3279
                description: Controllers enables and configures individual Kubernetes
3280
                  controllers
3281
                properties:
3282
                  namespace:
3283
                    description: Namespace enables and configures the namespace controller.
3284
                      Enabled by default, set to nil to disable.
3285
                    properties:
3286
                      reconcilerPeriod:
3287
                        description: 'ReconcilerPeriod is the period to perform reconciliation
3288
                          with the Calico datastore. [Default: 5m]'
3289
                        type: string
3290
                    type: object
3291
                  node:
3292
                    description: Node enables and configures the node controller.
3293
                      Enabled by default, set to nil to disable.
3294
                    properties:
3295
                      hostEndpoint:
3296
                        description: HostEndpoint controls syncing nodes to host endpoints.
3297
                          Disabled by default, set to nil to disable.
3298
                        properties:
3299
                          autoCreate:
3300
                            description: 'AutoCreate enables automatic creation of
3301
                              host endpoints for every node. [Default: Disabled]'
3302
                            type: string
3303
                        type: object
3304
                      leakGracePeriod:
3305
                        description: 'LeakGracePeriod is the period used by the controller
3306
                          to determine if an IP address has been leaked. Set to 0
3307
                          to disable IP garbage collection. [Default: 15m]'
3308
                        type: string
3309
                      reconcilerPeriod:
3310
                        description: 'ReconcilerPeriod is the period to perform reconciliation
3311
                          with the Calico datastore. [Default: 5m]'
3312
                        type: string
3313
                      syncLabels:
3314
                        description: 'SyncLabels controls whether to copy Kubernetes
3315
                          node labels to Calico nodes. [Default: Enabled]'
3316
                        type: string
3317
                    type: object
3318
                  policy:
3319
                    description: Policy enables and configures the policy controller.
3320
                      Enabled by default, set to nil to disable.
3321
                    properties:
3322
                      reconcilerPeriod:
3323
                        description: 'ReconcilerPeriod is the period to perform reconciliation
3324
                          with the Calico datastore. [Default: 5m]'
3325
                        type: string
3326
                    type: object
3327
                  serviceAccount:
3328
                    description: ServiceAccount enables and configures the service
3329
                      account controller. Enabled by default, set to nil to disable.
3330
                    properties:
3331
                      reconcilerPeriod:
3332
                        description: 'ReconcilerPeriod is the period to perform reconciliation
3333
                          with the Calico datastore. [Default: 5m]'
3334
                        type: string
3335
                    type: object
3336
                  workloadEndpoint:
3337
                    description: WorkloadEndpoint enables and configures the workload
3338
                      endpoint controller. Enabled by default, set to nil to disable.
3339
                    properties:
3340
                      reconcilerPeriod:
3341
                        description: 'ReconcilerPeriod is the period to perform reconciliation
3342
                          with the Calico datastore. [Default: 5m]'
3343
                        type: string
3344
                    type: object
3345
                type: object
3346
              debugProfilePort:
3347
                description: DebugProfilePort configures the port to serve memory
3348
                  and cpu profiles on. If not specified, profiling is disabled.
3349
                format: int32
3350
                type: integer
3351
              etcdV3CompactionPeriod:
3352
                description: 'EtcdV3CompactionPeriod is the period between etcdv3
3353
                  compaction requests. Set to 0 to disable. [Default: 10m]'
3354
                type: string
3355
              healthChecks:
3356
                description: 'HealthChecks enables or disables support for health
3357
                  checks [Default: Enabled]'
3358
                type: string
3359
              logSeverityScreen:
3360
                description: 'LogSeverityScreen is the log severity above which logs
3361
                  are sent to the stdout. [Default: Info]'
3362
                type: string
3363
              prometheusMetricsPort:
3364
                description: 'PrometheusMetricsPort is the TCP port that the Prometheus
3365
                  metrics server should bind to. Set to 0 to disable. [Default: 9094]'
3366
                type: integer
3367
            required:
3368
            - controllers
3369
            type: object
3370
          status:
3371
            description: KubeControllersConfigurationStatus represents the status
3372
              of the configuration. It's useful for admins to be able to see the actual
3373
              config that was applied, which can be modified by environment variables
3374
              on the kube-controllers process.
3375
            properties:
3376
              environmentVars:
3377
                additionalProperties:
3378
                  type: string
3379
                description: EnvironmentVars contains the environment variables on
3380
                  the kube-controllers that influenced the RunningConfig.
3381
                type: object
3382
              runningConfig:
3383
                description: RunningConfig contains the effective config that is running
3384
                  in the kube-controllers pod, after merging the API resource with
3385
                  any environment variables.
3386
                properties:
3387
                  controllers:
3388
                    description: Controllers enables and configures individual Kubernetes
3389
                      controllers
3390
                    properties:
3391
                      namespace:
3392
                        description: Namespace enables and configures the namespace
3393
                          controller. Enabled by default, set to nil to disable.
3394
                        properties:
3395
                          reconcilerPeriod:
3396
                            description: 'ReconcilerPeriod is the period to perform
3397
                              reconciliation with the Calico datastore. [Default:
3398
                              5m]'
3399
                            type: string
3400
                        type: object
3401
                      node:
3402
                        description: Node enables and configures the node controller.
3403
                          Enabled by default, set to nil to disable.
3404
                        properties:
3405
                          hostEndpoint:
3406
                            description: HostEndpoint controls syncing nodes to host
3407
                              endpoints. Disabled by default, set to nil to disable.
3408
                            properties:
3409
                              autoCreate:
3410
                                description: 'AutoCreate enables automatic creation
3411
                                  of host endpoints for every node. [Default: Disabled]'
3412
                                type: string
3413
                            type: object
3414
                          leakGracePeriod:
3415
                            description: 'LeakGracePeriod is the period used by the
3416
                              controller to determine if an IP address has been leaked.
3417
                              Set to 0 to disable IP garbage collection. [Default:
3418
                              15m]'
3419
                            type: string
3420
                          reconcilerPeriod:
3421
                            description: 'ReconcilerPeriod is the period to perform
3422
                              reconciliation with the Calico datastore. [Default:
3423
                              5m]'
3424
                            type: string
3425
                          syncLabels:
3426
                            description: 'SyncLabels controls whether to copy Kubernetes
3427
                              node labels to Calico nodes. [Default: Enabled]'
3428
                            type: string
3429
                        type: object
3430
                      policy:
3431
                        description: Policy enables and configures the policy controller.
3432
                          Enabled by default, set to nil to disable.
3433
                        properties:
3434
                          reconcilerPeriod:
3435
                            description: 'ReconcilerPeriod is the period to perform
3436
                              reconciliation with the Calico datastore. [Default:
3437
                              5m]'
3438
                            type: string
3439
                        type: object
3440
                      serviceAccount:
3441
                        description: ServiceAccount enables and configures the service
3442
                          account controller. Enabled by default, set to nil to disable.
3443
                        properties:
3444
                          reconcilerPeriod:
3445
                            description: 'ReconcilerPeriod is the period to perform
3446
                              reconciliation with the Calico datastore. [Default:
3447
                              5m]'
3448
                            type: string
3449
                        type: object
3450
                      workloadEndpoint:
3451
                        description: WorkloadEndpoint enables and configures the workload
3452
                          endpoint controller. Enabled by default, set to nil to disable.
3453
                        properties:
3454
                          reconcilerPeriod:
3455
                            description: 'ReconcilerPeriod is the period to perform
3456
                              reconciliation with the Calico datastore. [Default:
3457
                              5m]'
3458
                            type: string
3459
                        type: object
3460
                    type: object
3461
                  debugProfilePort:
3462
                    description: DebugProfilePort configures the port to serve memory
3463
                      and cpu profiles on. If not specified, profiling is disabled.
3464
                    format: int32
3465
                    type: integer
3466
                  etcdV3CompactionPeriod:
3467
                    description: 'EtcdV3CompactionPeriod is the period between etcdv3
3468
                      compaction requests. Set to 0 to disable. [Default: 10m]'
3469
                    type: string
3470
                  healthChecks:
3471
                    description: 'HealthChecks enables or disables support for health
3472
                      checks [Default: Enabled]'
3473
                    type: string
3474
                  logSeverityScreen:
3475
                    description: 'LogSeverityScreen is the log severity above which
3476
                      logs are sent to the stdout. [Default: Info]'
3477
                    type: string
3478
                  prometheusMetricsPort:
3479
                    description: 'PrometheusMetricsPort is the TCP port that the Prometheus
3480
                      metrics server should bind to. Set to 0 to disable. [Default:
3481
                      9094]'
3482
                    type: integer
3483
                required:
3484
                - controllers
3485
                type: object
3486
            type: object
3487
        type: object
3488
    served: true
3489
    storage: true
3490
status:
3491
  acceptedNames:
3492
    kind: ""
3493
    plural: ""
3494
  conditions: []
3495
  storedVersions: []
3496
---
3497
# Source: calico/templates/kdd-crds.yaml
3498
apiVersion: apiextensions.k8s.io/v1
3499
kind: CustomResourceDefinition
3500
metadata:
3501
  name: networkpolicies.crd.projectcalico.org
3502
spec:
3503
  group: crd.projectcalico.org
3504
  names:
3505
    kind: NetworkPolicy
3506
    listKind: NetworkPolicyList
3507
    plural: networkpolicies
3508
    singular: networkpolicy
3509
  preserveUnknownFields: false
3510
  scope: Namespaced
3511
  versions:
3512
  - name: v1
3513
    schema:
3514
      openAPIV3Schema:
3515
        properties:
3516
          apiVersion:
3517
            description: 'APIVersion defines the versioned schema of this representation
3518
              of an object. Servers should convert recognized schemas to the latest
3519
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3520
            type: string
3521
          kind:
3522
            description: 'Kind is a string value representing the REST resource this
3523
              object represents. Servers may infer this from the endpoint the client
3524
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3525
            type: string
3526
          metadata:
3527
            type: object
3528
          spec:
3529
            properties:
3530
              egress:
3531
                description: The ordered set of egress rules.  Each rule contains
3532
                  a set of packet match criteria and a corresponding action to apply.
3533
                items:
3534
                  description: "A Rule encapsulates a set of match criteria and an
3535
                    action.  Both selector-based security Policy and security Profiles
3536
                    reference rules - separated out as a list of rules for both ingress
3537
                    and egress packet matching. \n Each positive match criteria has
3538
                    a negated version, prefixed with \"Not\". All the match criteria
3539
                    within a rule must be satisfied for a packet to match. A single
3540
                    rule can contain the positive and negative version of a match
3541
                    and both must be satisfied for the rule to match."
3542
                  properties:
3543
                    action:
3544
                      type: string
3545
                    destination:
3546
                      description: Destination contains the match criteria that apply
3547
                        to destination entity.
3548
                      properties:
3549
                        namespaceSelector:
3550
                          description: "NamespaceSelector is an optional field that
3551
                            contains a selector expression. Only traffic that originates
3552
                            from (or terminates at) endpoints within the selected
3553
                            namespaces will be matched. When both NamespaceSelector
3554
                            and another selector are defined on the same rule, then
3555
                            only workload endpoints that are matched by both selectors
3556
                            will be selected by the rule. \n For NetworkPolicy, an
3557
                            empty NamespaceSelector implies that the Selector is limited
3558
                            to selecting only workload endpoints in the same namespace
3559
                            as the NetworkPolicy. \n For NetworkPolicy, `global()`
3560
                            NamespaceSelector implies that the Selector is limited
3561
                            to selecting only GlobalNetworkSet or HostEndpoint. \n
3562
                            For GlobalNetworkPolicy, an empty NamespaceSelector implies
3563
                            the Selector applies to workload endpoints across all
3564
                            namespaces."
3565
                          type: string
3566
                        nets:
3567
                          description: Nets is an optional field that restricts the
3568
                            rule to only apply to traffic that originates from (or
3569
                            terminates at) IP addresses in any of the given subnets.
3570
                          items:
3571
                            type: string
3572
                          type: array
3573
                        notNets:
3574
                          description: NotNets is the negated version of the Nets
3575
                            field.
3576
                          items:
3577
                            type: string
3578
                          type: array
3579
                        notPorts:
3580
                          description: NotPorts is the negated version of the Ports
3581
                            field. Since only some protocols have ports, if any ports
3582
                            are specified it requires the Protocol match in the Rule
3583
                            to be set to "TCP" or "UDP".
3584
                          items:
3585
                            anyOf:
3586
                            - type: integer
3587
                            - type: string
3588
                            pattern: ^.*
3589
                            x-kubernetes-int-or-string: true
3590
                          type: array
3591
                        notSelector:
3592
                          description: NotSelector is the negated version of the Selector
3593
                            field.  See Selector field for subtleties with negated
3594
                            selectors.
3595
                          type: string
3596
                        ports:
3597
                          description: "Ports is an optional field that restricts
3598
                            the rule to only apply to traffic that has a source (destination)
3599
                            port that matches one of these ranges/values. This value
3600
                            is a list of integers or strings that represent ranges
3601
                            of ports. \n Since only some protocols have ports, if
3602
                            any ports are specified it requires the Protocol match
3603
                            in the Rule to be set to \"TCP\" or \"UDP\"."
3604
                          items:
3605
                            anyOf:
3606
                            - type: integer
3607
                            - type: string
3608
                            pattern: ^.*
3609
                            x-kubernetes-int-or-string: true
3610
                          type: array
3611
                        selector:
3612
                          description: "Selector is an optional field that contains
3613
                            a selector expression (see Policy for sample syntax).
3614
                            \ Only traffic that originates from (terminates at) endpoints
3615
                            matching the selector will be matched. \n Note that: in
3616
                            addition to the negated version of the Selector (see NotSelector
3617
                            below), the selector expression syntax itself supports
3618
                            negation.  The two types of negation are subtly different.
3619
                            One negates the set of matched endpoints, the other negates
3620
                            the whole match: \n \tSelector = \"!has(my_label)\" matches
3621
                            packets that are from other Calico-controlled \tendpoints
3622
                            that do not have the label \"my_label\". \n \tNotSelector
3623
                            = \"has(my_label)\" matches packets that are not from
3624
                            Calico-controlled \tendpoints that do have the label \"my_label\".
3625
                            \n The effect is that the latter will accept packets from
3626
                            non-Calico sources whereas the former is limited to packets
3627
                            from Calico-controlled endpoints."
3628
                          type: string
3629
                        serviceAccounts:
3630
                          description: ServiceAccounts is an optional field that restricts
3631
                            the rule to only apply to traffic that originates from
3632
                            (or terminates at) a pod running as a matching service
3633
                            account.
3634
                          properties:
3635
                            names:
3636
                              description: Names is an optional field that restricts
3637
                                the rule to only apply to traffic that originates
3638
                                from (or terminates at) a pod running as a service
3639
                                account whose name is in the list.
3640
                              items:
3641
                                type: string
3642
                              type: array
3643
                            selector:
3644
                              description: Selector is an optional field that restricts
3645
                                the rule to only apply to traffic that originates
3646
                                from (or terminates at) a pod running as a service
3647
                                account that matches the given label selector. If
3648
                                both Names and Selector are specified then they are
3649
                                AND'ed.
3650
                              type: string
3651
                          type: object
3652
                        services:
3653
                          description: "Services is an optional field that contains
3654
                            options for matching Kubernetes Services. If specified,
3655
                            only traffic that originates from or terminates at endpoints
3656
                            within the selected service(s) will be matched, and only
3657
                            to/from each endpoint's port. \n Services cannot be specified
3658
                            on the same rule as Selector, NotSelector, NamespaceSelector,
3659
                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts
3660
                            can only be specified with Services on ingress rules."
3661
                          properties:
3662
                            name:
3663
                              description: Name specifies the name of a Kubernetes
3664
                                Service to match.
3665
                              type: string
3666
                            namespace:
3667
                              description: Namespace specifies the namespace of the
3668
                                given Service. If left empty, the rule will match
3669
                                within this policy's namespace.
3670
                              type: string
3671
                          type: object
3672
                      type: object
3673
                    http:
3674
                      description: HTTP contains match criteria that apply to HTTP
3675
                        requests.
3676
                      properties:
3677
                        methods:
3678
                          description: Methods is an optional field that restricts
3679
                            the rule to apply only to HTTP requests that use one of
3680
                            the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple
3681
                            methods are OR'd together.
3682
                          items:
3683
                            type: string
3684
                          type: array
3685
                        paths:
3686
                          description: 'Paths is an optional field that restricts
3687
                            the rule to apply to HTTP requests that use one of the
3688
                            listed HTTP Paths. Multiple paths are OR''d together.
3689
                            e.g: - exact: /foo - prefix: /bar NOTE: Each entry may
3690
                            ONLY specify either a `exact` or a `prefix` match. The
3691
                            validator will check for it.'
3692
                          items:
3693
                            description: 'HTTPPath specifies an HTTP path to match.
3694
                              It may be either of the form: exact: <path>: which matches
3695
                              the path exactly or prefix: <path-prefix>: which matches
3696
                              the path prefix'
3697
                            properties:
3698
                              exact:
3699
                                type: string
3700
                              prefix:
3701
                                type: string
3702
                            type: object
3703
                          type: array
3704
                      type: object
3705
                    icmp:
3706
                      description: ICMP is an optional field that restricts the rule
3707
                        to apply to a specific type and code of ICMP traffic.  This
3708
                        should only be specified if the Protocol field is set to "ICMP"
3709
                        or "ICMPv6".
3710
                      properties:
3711
                        code:
3712
                          description: Match on a specific ICMP code.  If specified,
3713
                            the Type value must also be specified. This is a technical
3714
                            limitation imposed by the kernel's iptables firewall,
3715
                            which Calico uses to enforce the rule.
3716
                          type: integer
3717
                        type:
3718
                          description: Match on a specific ICMP type.  For example
3719
                            a value of 8 refers to ICMP Echo Request (i.e. pings).
3720
                          type: integer
3721
                      type: object
3722
                    ipVersion:
3723
                      description: IPVersion is an optional field that restricts the
3724
                        rule to only match a specific IP version.
3725
                      type: integer
3726
                    metadata:
3727
                      description: Metadata contains additional information for this
3728
                        rule
3729
                      properties:
3730
                        annotations:
3731
                          additionalProperties:
3732
                            type: string
3733
                          description: Annotations is a set of key value pairs that
3734
                            give extra information about the rule
3735
                          type: object
3736
                      type: object
3737
                    notICMP:
3738
                      description: NotICMP is the negated version of the ICMP field.
3739
                      properties:
3740
                        code:
3741
                          description: Match on a specific ICMP code.  If specified,
3742
                            the Type value must also be specified. This is a technical
3743
                            limitation imposed by the kernel's iptables firewall,
3744
                            which Calico uses to enforce the rule.
3745
                          type: integer
3746
                        type:
3747
                          description: Match on a specific ICMP type.  For example
3748
                            a value of 8 refers to ICMP Echo Request (i.e. pings).
3749
                          type: integer
3750
                      type: object
3751
                    notProtocol:
3752
                      anyOf:
3753
                      - type: integer
3754
                      - type: string
3755
                      description: NotProtocol is the negated version of the Protocol
3756
                        field.
3757
                      pattern: ^.*
3758
                      x-kubernetes-int-or-string: true
3759
                    protocol:
3760
                      anyOf:
3761
                      - type: integer
3762
                      - type: string
3763
                      description: "Protocol is an optional field that restricts the
3764
                        rule to only apply to traffic of a specific IP protocol. Required
3765
                        if any of the EntityRules contain Ports (because ports only
3766
                        apply to certain protocols). \n Must be one of these string
3767
                        values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",
3768
                        \"UDPLite\" or an integer in the range 1-255."
3769
                      pattern: ^.*
3770
                      x-kubernetes-int-or-string: true
3771
                    source:
3772
                      description: Source contains the match criteria that apply to
3773
                        source entity.
3774
                      properties:
3775
                        namespaceSelector:
3776
                          description: "NamespaceSelector is an optional field that
3777
                            contains a selector expression. Only traffic that originates
3778
                            from (or terminates at) endpoints within the selected
3779
                            namespaces will be matched. When both NamespaceSelector
3780
                            and another selector are defined on the same rule, then
3781
                            only workload endpoints that are matched by both selectors
3782
                            will be selected by the rule. \n For NetworkPolicy, an
3783
                            empty NamespaceSelector implies that the Selector is limited
3784
                            to selecting only workload endpoints in the same namespace
3785
                            as the NetworkPolicy. \n For NetworkPolicy, `global()`
3786
                            NamespaceSelector implies that the Selector is limited
3787
                            to selecting only GlobalNetworkSet or HostEndpoint. \n
3788
                            For GlobalNetworkPolicy, an empty NamespaceSelector implies
3789
                            the Selector applies to workload endpoints across all
3790
                            namespaces."
3791
                          type: string
3792
                        nets:
3793
                          description: Nets is an optional field that restricts the
3794
                            rule to only apply to traffic that originates from (or
3795
                            terminates at) IP addresses in any of the given subnets.
3796
                          items:
3797
                            type: string
3798
                          type: array
3799
                        notNets:
3800
                          description: NotNets is the negated version of the Nets
3801
                            field.
3802
                          items:
3803
                            type: string
3804
                          type: array
3805
                        notPorts:
3806
                          description: NotPorts is the negated version of the Ports
3807
                            field. Since only some protocols have ports, if any ports
3808
                            are specified it requires the Protocol match in the Rule
3809
                            to be set to "TCP" or "UDP".
3810
                          items:
3811
                            anyOf:
3812
                            - type: integer
3813
                            - type: string
3814
                            pattern: ^.*
3815
                            x-kubernetes-int-or-string: true
3816
                          type: array
3817
                        notSelector:
3818
                          description: NotSelector is the negated version of the Selector
3819
                            field.  See Selector field for subtleties with negated
3820
                            selectors.
3821
                          type: string
3822
                        ports:
3823
                          description: "Ports is an optional field that restricts
3824
                            the rule to only apply to traffic that has a source (destination)
3825
                            port that matches one of these ranges/values. This value
3826
                            is a list of integers or strings that represent ranges
3827
                            of ports. \n Since only some protocols have ports, if
3828
                            any ports are specified it requires the Protocol match
3829
                            in the Rule to be set to \"TCP\" or \"UDP\"."
3830
                          items:
3831
                            anyOf:
3832
                            - type: integer
3833
                            - type: string
3834
                            pattern: ^.*
3835
                            x-kubernetes-int-or-string: true
3836
                          type: array
3837
                        selector:
3838
                          description: "Selector is an optional field that contains
3839
                            a selector expression (see Policy for sample syntax).
3840
                            \ Only traffic that originates from (terminates at) endpoints
3841
                            matching the selector will be matched. \n Note that: in
3842
                            addition to the negated version of the Selector (see NotSelector
3843
                            below), the selector expression syntax itself supports
3844
                            negation.  The two types of negation are subtly different.
3845
                            One negates the set of matched endpoints, the other negates
3846
                            the whole match: \n \tSelector = \"!has(my_label)\" matches
3847
                            packets that are from other Calico-controlled \tendpoints
3848
                            that do not have the label \"my_label\". \n \tNotSelector
3849
                            = \"has(my_label)\" matches packets that are not from
3850
                            Calico-controlled \tendpoints that do have the label \"my_label\".
3851
                            \n The effect is that the latter will accept packets from
3852
                            non-Calico sources whereas the former is limited to packets
3853
                            from Calico-controlled endpoints."
3854
                          type: string
3855
                        serviceAccounts:
3856
                          description: ServiceAccounts is an optional field that restricts
3857
                            the rule to only apply to traffic that originates from
3858
                            (or terminates at) a pod running as a matching service
3859
                            account.
3860
                          properties:
3861
                            names:
3862
                              description: Names is an optional field that restricts
3863
                                the rule to only apply to traffic that originates
3864
                                from (or terminates at) a pod running as a service
3865
                                account whose name is in the list.
3866
                              items:
3867
                                type: string
3868
                              type: array
3869
                            selector:
3870
                              description: Selector is an optional field that restricts
3871
                                the rule to only apply to traffic that originates
3872
                                from (or terminates at) a pod running as a service
3873
                                account that matches the given label selector. If
3874
                                both Names and Selector are specified then they are
3875
                                AND'ed.
3876
                              type: string
3877
                          type: object
3878
                        services:
3879
                          description: "Services is an optional field that contains
3880
                            options for matching Kubernetes Services. If specified,
3881
                            only traffic that originates from or terminates at endpoints
3882
                            within the selected service(s) will be matched, and only
3883
                            to/from each endpoint's port. \n Services cannot be specified
3884
                            on the same rule as Selector, NotSelector, NamespaceSelector,
3885
                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts
3886
                            can only be specified with Services on ingress rules."
3887
                          properties:
3888
                            name:
3889
                              description: Name specifies the name of a Kubernetes
3890
                                Service to match.
3891
                              type: string
3892
                            namespace:
3893
                              description: Namespace specifies the namespace of the
3894
                                given Service. If left empty, the rule will match
3895
                                within this policy's namespace.
3896
                              type: string
3897
                          type: object
3898
                      type: object
3899
                  required:
3900
                  - action
3901
                  type: object
3902
                type: array
3903
              ingress:
3904
                description: The ordered set of ingress rules.  Each rule contains
3905
                  a set of packet match criteria and a corresponding action to apply.
3906
                items:
3907
                  description: "A Rule encapsulates a set of match criteria and an
3908
                    action.  Both selector-based security Policy and security Profiles
3909
                    reference rules - separated out as a list of rules for both ingress
3910
                    and egress packet matching. \n Each positive match criteria has
3911
                    a negated version, prefixed with \"Not\". All the match criteria
3912
                    within a rule must be satisfied for a packet to match. A single
3913
                    rule can contain the positive and negative version of a match
3914
                    and both must be satisfied for the rule to match."
3915
                  properties:
3916
                    action:
3917
                      type: string
3918
                    destination:
3919
                      description: Destination contains the match criteria that apply
3920
                        to destination entity.
3921
                      properties:
3922
                        namespaceSelector:
3923
                          description: "NamespaceSelector is an optional field that
3924
                            contains a selector expression. Only traffic that originates
3925
                            from (or terminates at) endpoints within the selected
3926
                            namespaces will be matched. When both NamespaceSelector
3927
                            and another selector are defined on the same rule, then
3928
                            only workload endpoints that are matched by both selectors
3929
                            will be selected by the rule. \n For NetworkPolicy, an
3930
                            empty NamespaceSelector implies that the Selector is limited
3931
                            to selecting only workload endpoints in the same namespace
3932
                            as the NetworkPolicy. \n For NetworkPolicy, `global()`
3933
                            NamespaceSelector implies that the Selector is limited
3934
                            to selecting only GlobalNetworkSet or HostEndpoint. \n
3935
                            For GlobalNetworkPolicy, an empty NamespaceSelector implies
3936
                            the Selector applies to workload endpoints across all
3937
                            namespaces."
3938
                          type: string
3939
                        nets:
3940
                          description: Nets is an optional field that restricts the
3941
                            rule to only apply to traffic that originates from (or
3942
                            terminates at) IP addresses in any of the given subnets.
3943
                          items:
3944
                            type: string
3945
                          type: array
3946
                        notNets:
3947
                          description: NotNets is the negated version of the Nets
3948
                            field.
3949
                          items:
3950
                            type: string
3951
                          type: array
3952
                        notPorts:
3953
                          description: NotPorts is the negated version of the Ports
3954
                            field. Since only some protocols have ports, if any ports
3955
                            are specified it requires the Protocol match in the Rule
3956
                            to be set to "TCP" or "UDP".
3957
                          items:
3958
                            anyOf:
3959
                            - type: integer
3960
                            - type: string
3961
                            pattern: ^.*
3962
                            x-kubernetes-int-or-string: true
3963
                          type: array
3964
                        notSelector:
3965
                          description: NotSelector is the negated version of the Selector
3966
                            field.  See Selector field for subtleties with negated
3967
                            selectors.
3968
                          type: string
3969
                        ports:
3970
                          description: "Ports is an optional field that restricts
3971
                            the rule to only apply to traffic that has a source (destination)
3972
                            port that matches one of these ranges/values. This value
3973
                            is a list of integers or strings that represent ranges
3974
                            of ports. \n Since only some protocols have ports, if
3975
                            any ports are specified it requires the Protocol match
3976
                            in the Rule to be set to \"TCP\" or \"UDP\"."
3977
                          items:
3978
                            anyOf:
3979
                            - type: integer
3980
                            - type: string
3981
                            pattern: ^.*
3982
                            x-kubernetes-int-or-string: true
3983
                          type: array
3984
                        selector:
3985
                          description: "Selector is an optional field that contains
3986
                            a selector expression (see Policy for sample syntax).
3987
                            \ Only traffic that originates from (terminates at) endpoints
3988
                            matching the selector will be matched. \n Note that: in
3989
                            addition to the negated version of the Selector (see NotSelector
3990
                            below), the selector expression syntax itself supports
3991
                            negation.  The two types of negation are subtly different.
3992
                            One negates the set of matched endpoints, the other negates
3993
                            the whole match: \n \tSelector = \"!has(my_label)\" matches
3994
                            packets that are from other Calico-controlled \tendpoints
3995
                            that do not have the label \"my_label\". \n \tNotSelector
3996
                            = \"has(my_label)\" matches packets that are not from
3997
                            Calico-controlled \tendpoints that do have the label \"my_label\".
3998
                            \n The effect is that the latter will accept packets from
3999
                            non-Calico sources whereas the former is limited to packets
4000
                            from Calico-controlled endpoints."
4001
                          type: string
4002
                        serviceAccounts:
4003
                          description: ServiceAccounts is an optional field that restricts
4004
                            the rule to only apply to traffic that originates from
4005
                            (or terminates at) a pod running as a matching service
4006
                            account.
4007
                          properties:
4008
                            names:
4009
                              description: Names is an optional field that restricts
4010
                                the rule to only apply to traffic that originates
4011
                                from (or terminates at) a pod running as a service
4012
                                account whose name is in the list.
4013
                              items:
4014
                                type: string
4015
                              type: array
4016
                            selector:
4017
                              description: Selector is an optional field that restricts
4018
                                the rule to only apply to traffic that originates
4019
                                from (or terminates at) a pod running as a service
4020
                                account that matches the given label selector. If
4021
                                both Names and Selector are specified then they are
4022
                                AND'ed.
4023
                              type: string
4024
                          type: object
4025
                        services:
4026
                          description: "Services is an optional field that contains
4027
                            options for matching Kubernetes Services. If specified,
4028
                            only traffic that originates from or terminates at endpoints
4029
                            within the selected service(s) will be matched, and only
4030
                            to/from each endpoint's port. \n Services cannot be specified
4031
                            on the same rule as Selector, NotSelector, NamespaceSelector,
4032
                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts
4033
                            can only be specified with Services on ingress rules."
4034
                          properties:
4035
                            name:
4036
                              description: Name specifies the name of a Kubernetes
4037
                                Service to match.
4038
                              type: string
4039
                            namespace:
4040
                              description: Namespace specifies the namespace of the
4041
                                given Service. If left empty, the rule will match
4042
                                within this policy's namespace.
4043
                              type: string
4044
                          type: object
4045
                      type: object
4046
                    http:
4047
                      description: HTTP contains match criteria that apply to HTTP
4048
                        requests.
4049
                      properties:
4050
                        methods:
4051
                          description: Methods is an optional field that restricts
4052
                            the rule to apply only to HTTP requests that use one of
4053
                            the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple
4054
                            methods are OR'd together.
4055
                          items:
4056
                            type: string
4057
                          type: array
4058
                        paths:
4059
                          description: 'Paths is an optional field that restricts
4060
                            the rule to apply to HTTP requests that use one of the
4061
                            listed HTTP Paths. Multiple paths are OR''d together.
4062
                            e.g: - exact: /foo - prefix: /bar NOTE: Each entry may
4063
                            ONLY specify either a `exact` or a `prefix` match. The
4064
                            validator will check for it.'
4065
                          items:
4066
                            description: 'HTTPPath specifies an HTTP path to match.
4067
                              It may be either of the form: exact: <path>: which matches
4068
                              the path exactly or prefix: <path-prefix>: which matches
4069
                              the path prefix'
4070
                            properties:
4071
                              exact:
4072
                                type: string
4073
                              prefix:
4074
                                type: string
4075
                            type: object
4076
                          type: array
4077
                      type: object
4078
                    icmp:
4079
                      description: ICMP is an optional field that restricts the rule
4080
                        to apply to a specific type and code of ICMP traffic.  This
4081
                        should only be specified if the Protocol field is set to "ICMP"
4082
                        or "ICMPv6".
4083
                      properties:
4084
                        code:
4085
                          description: Match on a specific ICMP code.  If specified,
4086
                            the Type value must also be specified. This is a technical
4087
                            limitation imposed by the kernel's iptables firewall,
4088
                            which Calico uses to enforce the rule.
4089
                          type: integer
4090
                        type:
4091
                          description: Match on a specific ICMP type.  For example
4092
                            a value of 8 refers to ICMP Echo Request (i.e. pings).
4093
                          type: integer
4094
                      type: object
4095
                    ipVersion:
4096
                      description: IPVersion is an optional field that restricts the
4097
                        rule to only match a specific IP version.
4098
                      type: integer
4099
                    metadata:
4100
                      description: Metadata contains additional information for this
4101
                        rule
4102
                      properties:
4103
                        annotations:
4104
                          additionalProperties:
4105
                            type: string
4106
                          description: Annotations is a set of key value pairs that
4107
                            give extra information about the rule
4108
                          type: object
4109
                      type: object
4110
                    notICMP:
4111
                      description: NotICMP is the negated version of the ICMP field.
4112
                      properties:
4113
                        code:
4114
                          description: Match on a specific ICMP code.  If specified,
4115
                            the Type value must also be specified. This is a technical
4116
                            limitation imposed by the kernel's iptables firewall,
4117
                            which Calico uses to enforce the rule.
4118
                          type: integer
4119
                        type:
4120
                          description: Match on a specific ICMP type.  For example
4121
                            a value of 8 refers to ICMP Echo Request (i.e. pings).
4122
                          type: integer
4123
                      type: object
4124
                    notProtocol:
4125
                      anyOf:
4126
                      - type: integer
4127
                      - type: string
4128
                      description: NotProtocol is the negated version of the Protocol
4129
                        field.
4130
                      pattern: ^.*
4131
                      x-kubernetes-int-or-string: true
4132
                    protocol:
4133
                      anyOf:
4134
                      - type: integer
4135
                      - type: string
4136
                      description: "Protocol is an optional field that restricts the
4137
                        rule to only apply to traffic of a specific IP protocol. Required
4138
                        if any of the EntityRules contain Ports (because ports only
4139
                        apply to certain protocols). \n Must be one of these string
4140
                        values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\",
4141
                        \"UDPLite\" or an integer in the range 1-255."
4142
                      pattern: ^.*
4143
                      x-kubernetes-int-or-string: true
4144
                    source:
4145
                      description: Source contains the match criteria that apply to
4146
                        source entity.
4147
                      properties:
4148
                        namespaceSelector:
4149
                          description: "NamespaceSelector is an optional field that
4150
                            contains a selector expression. Only traffic that originates
4151
                            from (or terminates at) endpoints within the selected
4152
                            namespaces will be matched. When both NamespaceSelector
4153
                            and another selector are defined on the same rule, then
4154
                            only workload endpoints that are matched by both selectors
4155
                            will be selected by the rule. \n For NetworkPolicy, an
4156
                            empty NamespaceSelector implies that the Selector is limited
4157
                            to selecting only workload endpoints in the same namespace
4158
                            as the NetworkPolicy. \n For NetworkPolicy, `global()`
4159
                            NamespaceSelector implies that the Selector is limited
4160
                            to selecting only GlobalNetworkSet or HostEndpoint. \n
4161
                            For GlobalNetworkPolicy, an empty NamespaceSelector implies
4162
                            the Selector applies to workload endpoints across all
4163
                            namespaces."
4164
                          type: string
4165
                        nets:
4166
                          description: Nets is an optional field that restricts the
4167
                            rule to only apply to traffic that originates from (or
4168
                            terminates at) IP addresses in any of the given subnets.
4169
                          items:
4170
                            type: string
4171
                          type: array
4172
                        notNets:
4173
                          description: NotNets is the negated version of the Nets
4174
                            field.
4175
                          items:
4176
                            type: string
4177
                          type: array
4178
                        notPorts:
4179
                          description: NotPorts is the negated version of the Ports
4180
                            field. Since only some protocols have ports, if any ports
4181
                            are specified it requires the Protocol match in the Rule
4182
                            to be set to "TCP" or "UDP".
4183
                          items:
4184
                            anyOf:
4185
                            - type: integer
4186
                            - type: string
4187
                            pattern: ^.*
4188
                            x-kubernetes-int-or-string: true
4189
                          type: array
4190
                        notSelector:
4191
                          description: NotSelector is the negated version of the Selector
4192
                            field.  See Selector field for subtleties with negated
4193
                            selectors.
4194
                          type: string
4195
                        ports:
4196
                          description: "Ports is an optional field that restricts
4197
                            the rule to only apply to traffic that has a source (destination)
4198
                            port that matches one of these ranges/values. This value
4199
                            is a list of integers or strings that represent ranges
4200
                            of ports. \n Since only some protocols have ports, if
4201
                            any ports are specified it requires the Protocol match
4202
                            in the Rule to be set to \"TCP\" or \"UDP\"."
4203
                          items:
4204
                            anyOf:
4205
                            - type: integer
4206
                            - type: string
4207
                            pattern: ^.*
4208
                            x-kubernetes-int-or-string: true
4209
                          type: array
4210
                        selector:
4211
                          description: "Selector is an optional field that contains
4212
                            a selector expression (see Policy for sample syntax).
4213
                            \ Only traffic that originates from (terminates at) endpoints
4214
                            matching the selector will be matched. \n Note that: in
4215
                            addition to the negated version of the Selector (see NotSelector
4216
                            below), the selector expression syntax itself supports
4217
                            negation.  The two types of negation are subtly different.
4218
                            One negates the set of matched endpoints, the other negates
4219
                            the whole match: \n \tSelector = \"!has(my_label)\" matches
4220
                            packets that are from other Calico-controlled \tendpoints
4221
                            that do not have the label \"my_label\". \n \tNotSelector
4222
                            = \"has(my_label)\" matches packets that are not from
4223
                            Calico-controlled \tendpoints that do have the label \"my_label\".
4224
                            \n The effect is that the latter will accept packets from
4225
                            non-Calico sources whereas the former is limited to packets
4226
                            from Calico-controlled endpoints."
4227
                          type: string
4228
                        serviceAccounts:
4229
                          description: ServiceAccounts is an optional field that restricts
4230
                            the rule to only apply to traffic that originates from
4231
                            (or terminates at) a pod running as a matching service
4232
                            account.
4233
                          properties:
4234
                            names:
4235
                              description: Names is an optional field that restricts
4236
                                the rule to only apply to traffic that originates
4237
                                from (or terminates at) a pod running as a service
4238
                                account whose name is in the list.
4239
                              items:
4240
                                type: string
4241
                              type: array
4242
                            selector:
4243
                              description: Selector is an optional field that restricts
4244
                                the rule to only apply to traffic that originates
4245
                                from (or terminates at) a pod running as a service
4246
                                account that matches the given label selector. If
4247
                                both Names and Selector are specified then they are
4248
                                AND'ed.
4249
                              type: string
4250
                          type: object
4251
                        services:
4252
                          description: "Services is an optional field that contains
4253
                            options for matching Kubernetes Services. If specified,
4254
                            only traffic that originates from or terminates at endpoints
4255
                            within the selected service(s) will be matched, and only
4256
                            to/from each endpoint's port. \n Services cannot be specified
4257
                            on the same rule as Selector, NotSelector, NamespaceSelector,
4258
                            Nets, NotNets or ServiceAccounts. \n Ports and NotPorts
4259
                            can only be specified with Services on ingress rules."
4260
                          properties:
4261
                            name:
4262
                              description: Name specifies the name of a Kubernetes
4263
                                Service to match.
4264
                              type: string
4265
                            namespace:
4266
                              description: Namespace specifies the namespace of the
4267
                                given Service. If left empty, the rule will match
4268
                                within this policy's namespace.
4269
                              type: string
4270
                          type: object
4271
                      type: object
4272
                  required:
4273
                  - action
4274
                  type: object
4275
                type: array
4276
              order:
4277
                description: Order is an optional field that specifies the order in
4278
                  which the policy is applied. Policies with higher "order" are applied
4279
                  after those with lower order.  If the order is omitted, it may be
4280
                  considered to be "infinite" - i.e. the policy will be applied last.  Policies
4281
                  with identical order will be applied in alphanumerical order based
4282
                  on the Policy "Name".
4283
                type: number
4284
              performanceHints:
4285
                description: "PerformanceHints contains a list of hints to Calico's
4286
                  policy engine to help process the policy more efficiently.  Hints
4287
                  never change the enforcement behaviour of the policy. \n Currently,
4288
                  the only available hint is \"AssumeNeededOnEveryNode\".  When that
4289
                  hint is set on a policy, Felix will act as if the policy matches
4290
                  a local endpoint even if it does not. This is useful for \"preloading\"
4291
                  any large static policies that are known to be used on every node.
4292
                  If the policy is _not_ used on a particular node then the work done
4293
                  to preload the policy (and to maintain it) is wasted."
4294
                items:
4295
                  type: string
4296
                type: array
4297
              selector:
4298
                description: "The selector is an expression used to pick pick out
4299
                  the endpoints that the policy should be applied to. \n Selector
4300
                  expressions follow this syntax: \n \tlabel == \"string_literal\"
4301
                  \ ->  comparison, e.g. my_label == \"foo bar\" \tlabel != \"string_literal\"
4302
                  \  ->  not equal; also matches if label is not present \tlabel in
4303
                  { \"a\", \"b\", \"c\", ... }  ->  true if the value of label X is
4304
                  one of \"a\", \"b\", \"c\" \tlabel not in { \"a\", \"b\", \"c\",
4305
                  ... }  ->  true if the value of label X is not one of \"a\", \"b\",
4306
                  \"c\" \thas(label_name)  -> True if that label is present \t! expr
4307
                  -> negation of expr \texpr && expr  -> Short-circuit and \texpr
4308
                  || expr  -> Short-circuit or \t( expr ) -> parens for grouping \tall()
4309
                  or the empty selector -> matches all endpoints. \n Label names are
4310
                  allowed to contain alphanumerics, -, _ and /. String literals are
4311
                  more permissive but they do not support escape characters. \n Examples
4312
                  (with made-up labels): \n \ttype == \"webserver\" && deployment
4313
                  == \"prod\" \ttype in {\"frontend\", \"backend\"} \tdeployment !=
4314
                  \"dev\" \t! has(label_name)"
4315
                type: string
4316
              serviceAccountSelector:
4317
                description: ServiceAccountSelector is an optional field for an expression
4318
                  used to select a pod based on service accounts.
4319
                type: string
4320
              types:
4321
                description: "Types indicates whether this policy applies to ingress,
4322
                  or to egress, or to both.  When not explicitly specified (and so
4323
                  the value on creation is empty or nil), Calico defaults Types according
4324
                  to what Ingress and Egress are present in the policy.  The default
4325
                  is: \n - [ PolicyTypeIngress ], if there are no Egress rules (including
4326
                  the case where there are   also no Ingress rules) \n - [ PolicyTypeEgress
4327
                  ], if there are Egress rules but no Ingress rules \n - [ PolicyTypeIngress,
4328
                  PolicyTypeEgress ], if there are both Ingress and Egress rules.
4329
                  \n When the policy is read back again, Types will always be one
4330
                  of these values, never empty or nil."
4331
                items:
4332
                  description: PolicyType enumerates the possible values of the PolicySpec
4333
                    Types field.
4334
                  type: string
4335
                type: array
4336
            type: object
4337
        type: object
4338
    served: true
4339
    storage: true
4340
status:
4341
  acceptedNames:
4342
    kind: ""
4343
    plural: ""
4344
  conditions: []
4345
  storedVersions: []
4346
---
4347
# Source: calico/templates/kdd-crds.yaml
4348
apiVersion: apiextensions.k8s.io/v1
4349
kind: CustomResourceDefinition
4350
metadata:
4351
  name: networksets.crd.projectcalico.org
4352
spec:
4353
  group: crd.projectcalico.org
4354
  names:
4355
    kind: NetworkSet
4356
    listKind: NetworkSetList
4357
    plural: networksets
4358
    singular: networkset
4359
  preserveUnknownFields: false
4360
  scope: Namespaced
4361
  versions:
4362
  - name: v1
4363
    schema:
4364
      openAPIV3Schema:
4365
        description: NetworkSet is the Namespaced-equivalent of the GlobalNetworkSet.
4366
        properties:
4367
          apiVersion:
4368
            description: 'APIVersion defines the versioned schema of this representation
4369
              of an object. Servers should convert recognized schemas to the latest
4370
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4371
            type: string
4372
          kind:
4373
            description: 'Kind is a string value representing the REST resource this
4374
              object represents. Servers may infer this from the endpoint the client
4375
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4376
            type: string
4377
          metadata:
4378
            type: object
4379
          spec:
4380
            description: NetworkSetSpec contains the specification for a NetworkSet
4381
              resource.
4382
            properties:
4383
              nets:
4384
                description: The list of IP networks that belong to this set.
4385
                items:
4386
                  type: string
4387
                type: array
4388
            type: object
4389
        type: object
4390
    served: true
4391
    storage: true
4392
status:
4393
  acceptedNames:
4394
    kind: ""
4395
    plural: ""
4396
  conditions: []
4397
  storedVersions: []
4398
---
4399
# Source: calico/templates/calico-kube-controllers-rbac.yaml
4400
# Include a clusterrole for the kube-controllers component,
4401
# and bind it to the calico-kube-controllers serviceaccount.
4402
kind: ClusterRole
4403
apiVersion: rbac.authorization.k8s.io/v1
4404
metadata:
4405
  name: calico-kube-controllers
4406
rules:
4407
  # Nodes are watched to monitor for deletions.
4408
  - apiGroups: [""]
4409
    resources:
4410
      - nodes
4411
    verbs:
4412
      - watch
4413
      - list
4414
      - get
4415
  # Pods are watched to check for existence as part of IPAM controller.
4416
  - apiGroups: [""]
4417
    resources:
4418
      - pods
4419
    verbs:
4420
      - get
4421
      - list
4422
      - watch
4423
  # IPAM resources are manipulated in response to node and block updates, as well as periodic triggers.
4424
  - apiGroups: ["crd.projectcalico.org"]
4425
    resources:
4426
      - ipreservations
4427
    verbs:
4428
      - list
4429
  - apiGroups: ["crd.projectcalico.org"]
4430
    resources:
4431
      - blockaffinities
4432
      - ipamblocks
4433
      - ipamhandles
4434
    verbs:
4435
      - get
4436
      - list
4437
      - create
4438
      - update
4439
      - delete
4440
      - watch
4441
  # Pools are watched to maintain a mapping of blocks to IP pools.
4442
  - apiGroups: ["crd.projectcalico.org"]
4443
    resources:
4444
      - ippools
4445
    verbs:
4446
      - list
4447
      - watch
4448
  # kube-controllers manages hostendpoints.
4449
  - apiGroups: ["crd.projectcalico.org"]
4450
    resources:
4451
      - hostendpoints
4452
    verbs:
4453
      - get
4454
      - list
4455
      - create
4456
      - update
4457
      - delete
4458
  # Needs access to update clusterinformations.
4459
  - apiGroups: ["crd.projectcalico.org"]
4460
    resources:
4461
      - clusterinformations
4462
    verbs:
4463
      - get
4464
      - list
4465
      - create
4466
      - update
4467
      - watch
4468
  # KubeControllersConfiguration is where it gets its config
4469
  - apiGroups: ["crd.projectcalico.org"]
4470
    resources:
4471
      - kubecontrollersconfigurations
4472
    verbs:
4473
      # read its own config
4474
      - get
4475
      # create a default if none exists
4476
      - create
4477
      # update status
4478
      - update
4479
      # watch for changes
4480
      - watch
4481
---
4482
# Source: calico/templates/calico-node-rbac.yaml
4483
# Include a clusterrole for the calico-node DaemonSet,
4484
# and bind it to the calico-node serviceaccount.
4485
kind: ClusterRole
4486
apiVersion: rbac.authorization.k8s.io/v1
4487
metadata:
4488
  name: calico-node
4489
rules:
4490
  # Used for creating service account tokens to be used by the CNI plugin
4491
  - apiGroups: [""]
4492
    resources:
4493
      - serviceaccounts/token
4494
    resourceNames:
4495
      - calico-cni-plugin
4496
    verbs:
4497
      - create
4498
  # The CNI plugin needs to get pods, nodes, and namespaces.
4499
  - apiGroups: [""]
4500
    resources:
4501
      - pods
4502
      - nodes
4503
      - namespaces
4504
    verbs:
4505
      - get
4506
  # EndpointSlices are used for Service-based network policy rule
4507
  # enforcement.
4508
  - apiGroups: ["discovery.k8s.io"]
4509
    resources:
4510
      - endpointslices
4511
    verbs:
4512
      - watch
4513
      - list
4514
  - apiGroups: [""]
4515
    resources:
4516
      - endpoints
4517
      - services
4518
    verbs:
4519
      # Used to discover service IPs for advertisement.
4520
      - watch
4521
      - list
4522
      # Used to discover Typhas.
4523
      - get
4524
  # Pod CIDR auto-detection on kubeadm needs access to config maps.
4525
  - apiGroups: [""]
4526
    resources:
4527
      - configmaps
4528
    verbs:
4529
      - get
4530
  - apiGroups: [""]
4531
    resources:
4532
      - nodes/status
4533
    verbs:
4534
      # Needed for clearing NodeNetworkUnavailable flag.
4535
      - patch
4536
      # Calico stores some configuration information in node annotations.
4537
      - update
4538
  # Watch for changes to Kubernetes NetworkPolicies.
4539
  - apiGroups: ["networking.k8s.io"]
4540
    resources:
4541
      - networkpolicies
4542
    verbs:
4543
      - watch
4544
      - list
4545
  # Used by Calico for policy information.
4546
  - apiGroups: [""]
4547
    resources:
4548
      - pods
4549
      - namespaces
4550
      - serviceaccounts
4551
    verbs:
4552
      - list
4553
      - watch
4554
  # The CNI plugin patches pods/status.
4555
  - apiGroups: [""]
4556
    resources:
4557
      - pods/status
4558
    verbs:
4559
      - patch
4560
  # Calico monitors various CRDs for config.
4561
  - apiGroups: ["crd.projectcalico.org"]
4562
    resources:
4563
      - globalfelixconfigs
4564
      - felixconfigurations
4565
      - bgppeers
4566
      - bgpfilters
4567
      - globalbgpconfigs
4568
      - bgpconfigurations
4569
      - ippools
4570
      - ipreservations
4571
      - ipamblocks
4572
      - globalnetworkpolicies
4573
      - globalnetworksets
4574
      - networkpolicies
4575
      - networksets
4576
      - clusterinformations
4577
      - hostendpoints
4578
      - blockaffinities
4579
      - caliconodestatuses
4580
    verbs:
4581
      - get
4582
      - list
4583
      - watch
4584
  # Calico must create and update some CRDs on startup.
4585
  - apiGroups: ["crd.projectcalico.org"]
4586
    resources:
4587
      - ippools
4588
      - felixconfigurations
4589
      - clusterinformations
4590
    verbs:
4591
      - create
4592
      - update
4593
  # Calico must update some CRDs.
4594
  - apiGroups: [ "crd.projectcalico.org" ]
4595
    resources:
4596
      - caliconodestatuses
4597
    verbs:
4598
      - update
4599
  # Calico stores some configuration information on the node.
4600
  - apiGroups: [""]
4601
    resources:
4602
      - nodes
4603
    verbs:
4604
      - get
4605
      - list
4606
      - watch
4607
  # These permissions are only required for upgrade from v2.6, and can
4608
  # be removed after upgrade or on fresh installations.
4609
  - apiGroups: ["crd.projectcalico.org"]
4610
    resources:
4611
      - bgpconfigurations
4612
      - bgppeers
4613
    verbs:
4614
      - create
4615
      - update
4616
  # These permissions are required for Calico CNI to perform IPAM allocations.
4617
  - apiGroups: ["crd.projectcalico.org"]
4618
    resources:
4619
      - blockaffinities
4620
      - ipamblocks
4621
      - ipamhandles
4622
    verbs:
4623
      - get
4624
      - list
4625
      - create
4626
      - update
4627
      - delete
4628
  # The CNI plugin and calico/node need to be able to create a default
4629
  # IPAMConfiguration
4630
  - apiGroups: ["crd.projectcalico.org"]
4631
    resources:
4632
      - ipamconfigs
4633
    verbs:
4634
      - get
4635
      - create
4636
  # Block affinities must also be watchable by confd for route aggregation.
4637
  - apiGroups: ["crd.projectcalico.org"]
4638
    resources:
4639
      - blockaffinities
4640
    verbs:
4641
      - watch
4642
  # The Calico IPAM migration needs to get daemonsets. These permissions can be
4643
  # removed if not upgrading from an installation using host-local IPAM.
4644
  - apiGroups: ["apps"]
4645
    resources:
4646
      - daemonsets
4647
    verbs:
4648
      - get
4649
---
4650
# Source: calico/templates/calico-node-rbac.yaml
4651
# CNI cluster role
4652
kind: ClusterRole
4653
apiVersion: rbac.authorization.k8s.io/v1
4654
metadata:
4655
  name: calico-cni-plugin
4656
rules:
4657
  - apiGroups: [""]
4658
    resources:
4659
      - pods
4660
      - nodes
4661
      - namespaces
4662
    verbs:
4663
      - get
4664
  - apiGroups: [""]
4665
    resources:
4666
      - pods/status
4667
    verbs:
4668
      - patch
4669
  - apiGroups: ["crd.projectcalico.org"]
4670
    resources:
4671
      - blockaffinities
4672
      - ipamblocks
4673
      - ipamhandles
4674
      - clusterinformations
4675
      - ippools
4676
      - ipreservations
4677
      - ipamconfigs
4678
    verbs:
4679
      - get
4680
      - list
4681
      - create
4682
      - update
4683
      - delete
4684
---
4685
# Source: calico/templates/calico-kube-controllers-rbac.yaml
4686
kind: ClusterRoleBinding
4687
apiVersion: rbac.authorization.k8s.io/v1
4688
metadata:
4689
  name: calico-kube-controllers
4690
roleRef:
4691
  apiGroup: rbac.authorization.k8s.io
4692
  kind: ClusterRole
4693
  name: calico-kube-controllers
4694
subjects:
4695
- kind: ServiceAccount
4696
  name: calico-kube-controllers
4697
  namespace: kube-system
4698
---
4699
# Source: calico/templates/calico-node-rbac.yaml
4700
apiVersion: rbac.authorization.k8s.io/v1
4701
kind: ClusterRoleBinding
4702
metadata:
4703
  name: calico-node
4704
roleRef:
4705
  apiGroup: rbac.authorization.k8s.io
4706
  kind: ClusterRole
4707
  name: calico-node
4708
subjects:
4709
- kind: ServiceAccount
4710
  name: calico-node
4711
  namespace: kube-system
4712
---
4713
# Source: calico/templates/calico-node-rbac.yaml
4714
apiVersion: rbac.authorization.k8s.io/v1
4715
kind: ClusterRoleBinding
4716
metadata:
4717
  name: calico-cni-plugin
4718
roleRef:
4719
  apiGroup: rbac.authorization.k8s.io
4720
  kind: ClusterRole
4721
  name: calico-cni-plugin
4722
subjects:
4723
- kind: ServiceAccount
4724
  name: calico-cni-plugin
4725
  namespace: kube-system
4726
---
4727
# Source: calico/templates/calico-node.yaml
4728
# This manifest installs the calico-node container, as well
4729
# as the CNI plugins and network config on
4730
# each master and worker node in a Kubernetes cluster.
4731
kind: DaemonSet
4732
apiVersion: apps/v1
4733
metadata:
4734
  name: calico-node
4735
  namespace: kube-system
4736
  labels:
4737
    k8s-app: calico-node
4738
spec:
4739
  selector:
4740
    matchLabels:
4741
      k8s-app: calico-node
4742
  updateStrategy:
4743
    type: RollingUpdate
4744
    rollingUpdate:
4745
      maxUnavailable: 1
4746
  template:
4747
    metadata:
4748
      labels:
4749
        k8s-app: calico-node
4750
    spec:
4751
      nodeSelector:
4752
        kubernetes.io/os: linux
4753
      hostNetwork: true
4754
      tolerations:
4755
        # Make sure calico-node gets scheduled on all nodes.
4756
        - effect: NoSchedule
4757
          operator: Exists
4758
        # Mark the pod as a critical add-on for rescheduling.
4759
        - key: CriticalAddonsOnly
4760
          operator: Exists
4761
        - effect: NoExecute
4762
          operator: Exists
4763
      serviceAccountName: calico-node
4764
      # Minimize downtime during a rolling upgrade or deletion; tell Kubernetes to do a "force
4765
      # deletion": https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods.
4766
      terminationGracePeriodSeconds: 0
4767
      priorityClassName: system-node-critical
4768
      initContainers:
4769
        # This container performs upgrade from host-local IPAM to calico-ipam.
4770
        # It can be deleted if this is a fresh installation, or if you have already
4771
        # upgraded to use calico-ipam.
4772
        - name: upgrade-ipam
4773
          image: gcr.io/istio-testing/calico/cni:v3.27.0
4774
          imagePullPolicy: IfNotPresent
4775
          command: ["/opt/cni/bin/calico-ipam", "-upgrade"]
4776
          envFrom:
4777
          - configMapRef:
4778
              # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
4779
              name: kubernetes-services-endpoint
4780
              optional: true
4781
          env:
4782
            - name: KUBERNETES_NODE_NAME
4783
              valueFrom:
4784
                fieldRef:
4785
                  fieldPath: spec.nodeName
4786
            - name: CALICO_NETWORKING_BACKEND
4787
              valueFrom:
4788
                configMapKeyRef:
4789
                  name: calico-config
4790
                  key: calico_backend
4791
          volumeMounts:
4792
            - mountPath: /var/lib/cni/networks
4793
              name: host-local-net-dir
4794
            - mountPath: /host/opt/cni/bin
4795
              name: cni-bin-dir
4796
          securityContext:
4797
            privileged: true
4798
        # This container installs the CNI binaries
4799
        # and CNI network config file on each node.
4800
        - name: install-cni
4801
          image: gcr.io/istio-testing/calico/cni:v3.27.0
4802
          imagePullPolicy: IfNotPresent
4803
          command: ["/opt/cni/bin/install"]
4804
          envFrom:
4805
          - configMapRef:
4806
              # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
4807
              name: kubernetes-services-endpoint
4808
              optional: true
4809
          env:
4810
            # Name of the CNI config file to create.
4811
            - name: CNI_CONF_NAME
4812
              value: "10-calico.conflist"
4813
            # The CNI network config to install on each node.
4814
            - name: CNI_NETWORK_CONFIG
4815
              valueFrom:
4816
                configMapKeyRef:
4817
                  name: calico-config
4818
                  key: cni_network_config
4819
            # Set the hostname based on the k8s node name.
4820
            - name: KUBERNETES_NODE_NAME
4821
              valueFrom:
4822
                fieldRef:
4823
                  fieldPath: spec.nodeName
4824
            # CNI MTU Config variable
4825
            - name: CNI_MTU
4826
              valueFrom:
4827
                configMapKeyRef:
4828
                  name: calico-config
4829
                  key: veth_mtu
4830
            # Prevents the container from sleeping forever.
4831
            - name: SLEEP
4832
              value: "false"
4833
          volumeMounts:
4834
            - mountPath: /host/opt/cni/bin
4835
              name: cni-bin-dir
4836
            - mountPath: /host/etc/cni/net.d
4837
              name: cni-net-dir
4838
          securityContext:
4839
            privileged: true
4840
        # This init container mounts the necessary filesystems needed by the BPF data plane
4841
        # i.e. bpf at /sys/fs/bpf and cgroup2 at /run/calico/cgroup. Calico-node initialisation is executed
4842
        # in best effort fashion, i.e. no failure for errors, to not disrupt pod creation in iptable mode.
4843
        - name: "mount-bpffs"
4844
          image: gcr.io/istio-testing/calico/node:v3.27.0
4845
          imagePullPolicy: IfNotPresent
4846
          command: ["calico-node", "-init", "-best-effort"]
4847
          volumeMounts:
4848
            - mountPath: /sys/fs
4849
              name: sys-fs
4850
              # Bidirectional is required to ensure that the new mount we make at /sys/fs/bpf propagates to the host
4851
              # so that it outlives the init container.
4852
              mountPropagation: Bidirectional
4853
            - mountPath: /var/run/calico
4854
              name: var-run-calico
4855
              # Bidirectional is required to ensure that the new mount we make at /run/calico/cgroup propagates to the host
4856
              # so that it outlives the init container.
4857
              mountPropagation: Bidirectional
4858
            # Mount /proc/ from host which usually is an init program at /nodeproc. It's needed by mountns binary,
4859
            # executed by calico-node, to mount root cgroup2 fs at /run/calico/cgroup to attach CTLB programs correctly.
4860
            - mountPath: /nodeproc
4861
              name: nodeproc
4862
              readOnly: true
4863
          securityContext:
4864
            privileged: true
4865
      containers:
4866
        # Runs calico-node container on each Kubernetes node. This
4867
        # container programs network policy and routes on each
4868
        # host.
4869
        - name: calico-node
4870
          image: gcr.io/istio-testing/calico/node:v3.27.0
4871
          imagePullPolicy: IfNotPresent
4872
          envFrom:
4873
          - configMapRef:
4874
              # Allow KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT to be overridden for eBPF mode.
4875
              name: kubernetes-services-endpoint
4876
              optional: true
4877
          env:
4878
            # Use Kubernetes API as the backing datastore.
4879
            - name: DATASTORE_TYPE
4880
              value: "kubernetes"
4881
            # Wait for the datastore.
4882
            - name: WAIT_FOR_DATASTORE
4883
              value: "true"
4884
            # Set based on the k8s node name.
4885
            - name: NODENAME
4886
              valueFrom:
4887
                fieldRef:
4888
                  fieldPath: spec.nodeName
4889
            # Choose the backend to use.
4890
            - name: CALICO_NETWORKING_BACKEND
4891
              valueFrom:
4892
                configMapKeyRef:
4893
                  name: calico-config
4894
                  key: calico_backend
4895
            # Cluster type to identify the deployment type
4896
            - name: CLUSTER_TYPE
4897
              value: "k8s,bgp"
4898
            # Auto-detect the BGP IP address.
4899
            - name: IP
4900
              value: "autodetect"
4901
            # Enable IPIP
4902
            - name: CALICO_IPV4POOL_IPIP
4903
              value: "Always"
4904
            # Enable or Disable VXLAN on the default IP pool.
4905
            - name: CALICO_IPV4POOL_VXLAN
4906
              value: "Never"
4907
            # Enable or Disable VXLAN on the default IPv6 IP pool.
4908
            - name: CALICO_IPV6POOL_VXLAN
4909
              value: "Never"
4910
            # Set MTU for tunnel device used if ipip is enabled
4911
            - name: FELIX_IPINIPMTU
4912
              valueFrom:
4913
                configMapKeyRef:
4914
                  name: calico-config
4915
                  key: veth_mtu
4916
            # Set MTU for the VXLAN tunnel device.
4917
            - name: FELIX_VXLANMTU
4918
              valueFrom:
4919
                configMapKeyRef:
4920
                  name: calico-config
4921
                  key: veth_mtu
4922
            # Set MTU for the Wireguard tunnel device.
4923
            - name: FELIX_WIREGUARDMTU
4924
              valueFrom:
4925
                configMapKeyRef:
4926
                  name: calico-config
4927
                  key: veth_mtu
4928
            # The default IPv4 pool to create on startup if none exists. Pod IPs will be
4929
            # chosen from this range. Changing this value after installation will have
4930
            # no effect. This should fall within `--cluster-cidr`.
4931
            # - name: CALICO_IPV4POOL_CIDR
4932
            #   value: "192.168.0.0/16"
4933
            # Disable file logging so `kubectl logs` works.
4934
            - name: CALICO_DISABLE_FILE_LOGGING
4935
              value: "true"
4936
            # Set Felix endpoint to host default action to ACCEPT.
4937
            - name: FELIX_DEFAULTENDPOINTTOHOSTACTION
4938
              value: "ACCEPT"
4939
            # Disable IPv6 on Kubernetes.
4940
            - name: FELIX_IPV6SUPPORT
4941
              value: "false"
4942
            - name: FELIX_HEALTHENABLED
4943
              value: "true"
4944
          securityContext:
4945
            privileged: true
4946
          resources:
4947
            requests:
4948
              cpu: 250m
4949
          lifecycle:
4950
            preStop:
4951
              exec:
4952
                command:
4953
                - /bin/calico-node
4954
                - -shutdown
4955
          livenessProbe:
4956
            exec:
4957
              command:
4958
              - /bin/calico-node
4959
              - -felix-live
4960
              - -bird-live
4961
            periodSeconds: 10
4962
            initialDelaySeconds: 10
4963
            failureThreshold: 6
4964
            timeoutSeconds: 10
4965
          readinessProbe:
4966
            exec:
4967
              command:
4968
              - /bin/calico-node
4969
              - -felix-ready
4970
              - -bird-ready
4971
            periodSeconds: 10
4972
            timeoutSeconds: 10
4973
          volumeMounts:
4974
            # For maintaining CNI plugin API credentials.
4975
            - mountPath: /host/etc/cni/net.d
4976
              name: cni-net-dir
4977
              readOnly: false
4978
            - mountPath: /lib/modules
4979
              name: lib-modules
4980
              readOnly: true
4981
            - mountPath: /run/xtables.lock
4982
              name: xtables-lock
4983
              readOnly: false
4984
            - mountPath: /var/run/calico
4985
              name: var-run-calico
4986
              readOnly: false
4987
            - mountPath: /var/lib/calico
4988
              name: var-lib-calico
4989
              readOnly: false
4990
            - name: policysync
4991
              mountPath: /var/run/nodeagent
4992
            # For eBPF mode, we need to be able to mount the BPF filesystem at /sys/fs/bpf so we mount in the
4993
            # parent directory.
4994
            - name: bpffs
4995
              mountPath: /sys/fs/bpf
4996
            - name: cni-log-dir
4997
              mountPath: /var/log/calico/cni
4998
              readOnly: true
4999
      volumes:
5000
        # Used by calico-node.
5001
        - name: lib-modules
5002
          hostPath:
5003
            path: /lib/modules
5004
        - name: var-run-calico
5005
          hostPath:
5006
            path: /var/run/calico
5007
        - name: var-lib-calico
5008
          hostPath:
5009
            path: /var/lib/calico
5010
        - name: xtables-lock
5011
          hostPath:
5012
            path: /run/xtables.lock
5013
            type: FileOrCreate
5014
        - name: sys-fs
5015
          hostPath:
5016
            path: /sys/fs/
5017
            type: DirectoryOrCreate
5018
        - name: bpffs
5019
          hostPath:
5020
            path: /sys/fs/bpf
5021
            type: Directory
5022
        # mount /proc at /nodeproc to be used by mount-bpffs initContainer to mount root cgroup2 fs.
5023
        - name: nodeproc
5024
          hostPath:
5025
            path: /proc
5026
        # Used to install CNI.
5027
        - name: cni-bin-dir
5028
          hostPath:
5029
            path: /opt/cni/bin
5030
        - name: cni-net-dir
5031
          hostPath:
5032
            path: /etc/cni/net.d
5033
        # Used to access CNI logs.
5034
        - name: cni-log-dir
5035
          hostPath:
5036
            path: /var/log/calico/cni
5037
        # Mount in the directory for host-local IPAM allocations. This is
5038
        # used when upgrading from host-local to calico-ipam, and can be removed
5039
        # if not using the upgrade-ipam init container.
5040
        - name: host-local-net-dir
5041
          hostPath:
5042
            path: /var/lib/cni/networks
5043
        # Used to create per-pod Unix Domain Sockets
5044
        - name: policysync
5045
          hostPath:
5046
            type: DirectoryOrCreate
5047
            path: /var/run/nodeagent
5048
---
5049
# Source: calico/templates/calico-kube-controllers.yaml
5050
# See https://github.com/projectcalico/kube-controllers
5051
apiVersion: apps/v1
5052
kind: Deployment
5053
metadata:
5054
  name: calico-kube-controllers
5055
  namespace: kube-system
5056
  labels:
5057
    k8s-app: calico-kube-controllers
5058
spec:
5059
  # The controllers can only have a single active instance.
5060
  replicas: 1
5061
  selector:
5062
    matchLabels:
5063
      k8s-app: calico-kube-controllers
5064
  strategy:
5065
    type: Recreate
5066
  template:
5067
    metadata:
5068
      name: calico-kube-controllers
5069
      namespace: kube-system
5070
      labels:
5071
        k8s-app: calico-kube-controllers
5072
    spec:
5073
      nodeSelector:
5074
        kubernetes.io/os: linux
5075
      tolerations:
5076
        # Mark the pod as a critical add-on for rescheduling.
5077
        - key: CriticalAddonsOnly
5078
          operator: Exists
5079
        - key: node-role.kubernetes.io/master
5080
          effect: NoSchedule
5081
        - key: node-role.kubernetes.io/control-plane
5082
          effect: NoSchedule
5083
      serviceAccountName: calico-kube-controllers
5084
      priorityClassName: system-cluster-critical
5085
      containers:
5086
        - name: calico-kube-controllers
5087
          image: gcr.io/istio-testing/calico/kube-controllers:v3.27.0
5088
          imagePullPolicy: IfNotPresent
5089
          env:
5090
            # Choose which controllers to run.
5091
            - name: ENABLED_CONTROLLERS
5092
              value: node
5093
            - name: DATASTORE_TYPE
5094
              value: kubernetes
5095
          livenessProbe:
5096
            exec:
5097
              command:
5098
              - /usr/bin/check-status
5099
              - -l
5100
            periodSeconds: 10
5101
            initialDelaySeconds: 10
5102
            failureThreshold: 6
5103
            timeoutSeconds: 10
5104
          readinessProbe:
5105
            exec:
5106
              command:
5107
              - /usr/bin/check-status
5108
              - -r
5109
            periodSeconds: 10
5110

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.