sigs.k8s.io/cluster-api-provider-aws@v1.5.5/config/crd/bases/infrastructure.cluster.x-k8s.io_awsclustertemplates.yaml (about) 1 --- 2 apiVersion: apiextensions.k8s.io/v1 3 kind: CustomResourceDefinition 4 metadata: 5 annotations: 6 controller-gen.kubebuilder.io/version: v0.7.1-0.20211110210727-ab52f76cc7d1 7 creationTimestamp: null 8 name: awsclustertemplates.infrastructure.cluster.x-k8s.io 9 spec: 10 group: infrastructure.cluster.x-k8s.io 11 names: 12 categories: 13 - cluster-api 14 kind: AWSClusterTemplate 15 listKind: AWSClusterTemplateList 16 plural: awsclustertemplates 17 shortNames: 18 - awsct 19 singular: awsclustertemplate 20 scope: Namespaced 21 versions: 22 - name: v1alpha4 23 schema: 24 openAPIV3Schema: 25 description: AWSClusterTemplate is the Schema for the awsclustertemplates 26 API. 27 properties: 28 apiVersion: 29 description: 'APIVersion defines the versioned schema of this representation 30 of an object. Servers should convert recognized schemas to the latest 31 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 32 type: string 33 kind: 34 description: 'Kind is a string value representing the REST resource this 35 object represents. Servers may infer this from the endpoint the client 36 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 37 type: string 38 metadata: 39 type: object 40 spec: 41 description: AWSClusterTemplateSpec defines the desired state of AWSClusterTemplate. 42 properties: 43 template: 44 properties: 45 spec: 46 description: AWSClusterSpec defines the desired state of AWSCluster 47 properties: 48 additionalTags: 49 additionalProperties: 50 type: string 51 description: AdditionalTags is an optional set of tags to 52 add to AWS resources managed by the AWS provider, in addition 53 to the ones added by default. 54 type: object 55 bastion: 56 description: Bastion contains options to configure the bastion 57 host. 58 properties: 59 allowedCIDRBlocks: 60 description: AllowedCIDRBlocks is a list of CIDR blocks 61 allowed to access the bastion host. They are set as 62 ingress rules for the Bastion host's Security Group 63 (defaults to 0.0.0.0/0). 64 items: 65 type: string 66 type: array 67 ami: 68 description: AMI will use the specified AMI to boot the 69 bastion. If not specified, the AMI will default to one 70 picked out in public space. 71 type: string 72 disableIngressRules: 73 description: DisableIngressRules will ensure there are 74 no Ingress rules in the bastion host's security group. 75 Requires AllowedCIDRBlocks to be empty. 76 type: boolean 77 enabled: 78 description: Enabled allows this provider to create a 79 bastion host instance with a public ip to access the 80 VPC private network. 81 type: boolean 82 instanceType: 83 description: InstanceType will use the specified instance 84 type for the bastion. If not specified, Cluster API 85 Provider AWS will use t3.micro for all regions except 86 us-east-1, where t2.micro will be the default. 87 type: string 88 type: object 89 controlPlaneEndpoint: 90 description: ControlPlaneEndpoint represents the endpoint 91 used to communicate with the control plane. 92 properties: 93 host: 94 description: The hostname on which the API server is serving. 95 type: string 96 port: 97 description: The port on which the API server is serving. 98 format: int32 99 type: integer 100 required: 101 - host 102 - port 103 type: object 104 controlPlaneLoadBalancer: 105 description: ControlPlaneLoadBalancer is optional configuration 106 for customizing control plane behavior. 107 properties: 108 additionalSecurityGroups: 109 description: AdditionalSecurityGroups sets the security 110 groups used by the load balancer. Expected to be security 111 group IDs This is optional - if not provided new security 112 groups will be created for the load balancer 113 items: 114 type: string 115 type: array 116 crossZoneLoadBalancing: 117 description: "CrossZoneLoadBalancing enables the classic 118 ELB cross availability zone balancing. \n With cross-zone 119 load balancing, each load balancer node for your Classic 120 Load Balancer distributes requests evenly across the 121 registered instances in all enabled Availability Zones. 122 If cross-zone load balancing is disabled, each load 123 balancer node distributes requests evenly across the 124 registered instances in its Availability Zone only. 125 \n Defaults to false." 126 type: boolean 127 scheme: 128 default: internet-facing 129 description: Scheme sets the scheme of the load balancer 130 (defaults to internet-facing) 131 enum: 132 - internet-facing 133 - Internet-facing 134 - internal 135 type: string 136 subnets: 137 description: Subnets sets the subnets that should be applied 138 to the control plane load balancer (defaults to discovered 139 subnets for managed VPCs or an empty set for unmanaged 140 VPCs) 141 items: 142 type: string 143 type: array 144 type: object 145 identityRef: 146 description: IdentityRef is a reference to a identity to be 147 used when reconciling this cluster 148 properties: 149 kind: 150 description: Kind of the identity. 151 enum: 152 - AWSClusterControllerIdentity 153 - AWSClusterRoleIdentity 154 - AWSClusterStaticIdentity 155 type: string 156 name: 157 description: Name of the identity. 158 minLength: 1 159 type: string 160 required: 161 - kind 162 - name 163 type: object 164 imageLookupBaseOS: 165 description: ImageLookupBaseOS is the name of the base operating 166 system used to look up machine images when a machine does 167 not specify an AMI. When set, this will be used for all 168 cluster machines unless a machine specifies a different 169 ImageLookupBaseOS. 170 type: string 171 imageLookupFormat: 172 description: 'ImageLookupFormat is the AMI naming format to 173 look up machine images when a machine does not specify an 174 AMI. When set, this will be used for all cluster machines 175 unless a machine specifies a different ImageLookupOrg. Supports 176 substitutions for {{.BaseOS}} and {{.K8sVersion}} with the 177 base OS and kubernetes version, respectively. The BaseOS 178 will be the value in ImageLookupBaseOS or ubuntu (the default), 179 and the kubernetes version as defined by the packages produced 180 by kubernetes/release without v as a prefix: 1.13.0, 1.12.5-mybuild.1, 181 or 1.17.3. For example, the default image format of capa-ami-{{.BaseOS}}-?{{.K8sVersion}}-* 182 will end up searching for AMIs that match the pattern capa-ami-ubuntu-?1.18.0-* 183 for a Machine that is targeting kubernetes v1.18.0 and the 184 ubuntu base OS. See also: https://golang.org/pkg/text/template/' 185 type: string 186 imageLookupOrg: 187 description: ImageLookupOrg is the AWS Organization ID to 188 look up machine images when a machine does not specify an 189 AMI. When set, this will be used for all cluster machines 190 unless a machine specifies a different ImageLookupOrg. 191 type: string 192 network: 193 description: NetworkSpec encapsulates all things related to 194 AWS network. 195 properties: 196 cni: 197 description: CNI configuration 198 properties: 199 cniIngressRules: 200 description: CNIIngressRules specify rules to apply 201 to control plane and worker node security groups. 202 The source for the rule will be set to control plane 203 and worker security group IDs. 204 items: 205 description: CNIIngressRule defines an AWS ingress 206 rule for CNI requirements. 207 properties: 208 description: 209 type: string 210 fromPort: 211 format: int64 212 type: integer 213 protocol: 214 description: SecurityGroupProtocol defines the 215 protocol type for a security group rule. 216 type: string 217 toPort: 218 format: int64 219 type: integer 220 required: 221 - description 222 - fromPort 223 - protocol 224 - toPort 225 type: object 226 type: array 227 type: object 228 securityGroupOverrides: 229 additionalProperties: 230 type: string 231 description: SecurityGroupOverrides is an optional set 232 of security groups to use for cluster instances This 233 is optional - if not provided new security groups will 234 be created for the cluster 235 type: object 236 subnets: 237 description: Subnets configuration. 238 items: 239 description: SubnetSpec configures an AWS Subnet. 240 properties: 241 availabilityZone: 242 description: AvailabilityZone defines the availability 243 zone to use for this subnet in the cluster's region. 244 type: string 245 cidrBlock: 246 description: CidrBlock is the CIDR block to be used 247 when the provider creates a managed VPC. 248 type: string 249 id: 250 description: ID defines a unique identifier to reference 251 this resource. 252 type: string 253 isPublic: 254 description: IsPublic defines the subnet as a public 255 subnet. A subnet is public when it is associated 256 with a route table that has a route to an internet 257 gateway. 258 type: boolean 259 natGatewayId: 260 description: NatGatewayID is the NAT gateway id 261 associated with the subnet. Ignored unless the 262 subnet is managed by the provider, in which case 263 this is set on the public subnet where the NAT 264 gateway resides. It is then used to determine 265 routes for private subnets in the same AZ as the 266 public subnet. 267 type: string 268 routeTableId: 269 description: RouteTableID is the routing table id 270 associated with the subnet. 271 type: string 272 tags: 273 additionalProperties: 274 type: string 275 description: Tags is a collection of tags describing 276 the resource. 277 type: object 278 type: object 279 type: array 280 vpc: 281 description: VPC configuration. 282 properties: 283 availabilityZoneSelection: 284 default: Ordered 285 description: 'AvailabilityZoneSelection specifies 286 how AZs should be selected if there are more AZs 287 in a region than specified by AvailabilityZoneUsageLimit. 288 There are 2 selection schemes: Ordered - selects 289 based on alphabetical order Random - selects AZs 290 randomly in a region Defaults to Ordered' 291 enum: 292 - Ordered 293 - Random 294 type: string 295 availabilityZoneUsageLimit: 296 default: 3 297 description: AvailabilityZoneUsageLimit specifies 298 the maximum number of availability zones (AZ) that 299 should be used in a region when automatically creating 300 subnets. If a region has more than this number of 301 AZs then this number of AZs will be picked randomly 302 when creating default subnets. Defaults to 3 303 minimum: 1 304 type: integer 305 cidrBlock: 306 description: CidrBlock is the CIDR block to be used 307 when the provider creates a managed VPC. Defaults 308 to 10.0.0.0/16. 309 type: string 310 id: 311 description: ID is the vpc-id of the VPC this provider 312 should use to create resources. 313 type: string 314 internetGatewayId: 315 description: InternetGatewayID is the id of the internet 316 gateway associated with the VPC. 317 type: string 318 tags: 319 additionalProperties: 320 type: string 321 description: Tags is a collection of tags describing 322 the resource. 323 type: object 324 type: object 325 type: object 326 region: 327 description: The AWS Region the cluster lives in. 328 type: string 329 sshKeyName: 330 description: SSHKeyName is the name of the ssh key to attach 331 to the bastion host. Valid values are empty string (do not 332 use SSH keys), a valid SSH key name, or omitted (use the 333 default SSH key name) 334 type: string 335 type: object 336 required: 337 - spec 338 type: object 339 required: 340 - template 341 type: object 342 type: object 343 served: true 344 storage: false 345 - additionalPrinterColumns: 346 - description: Time duration since creation of AWSClusterTemplate 347 jsonPath: .metadata.creationTimestamp 348 name: Age 349 type: date 350 name: v1beta1 351 schema: 352 openAPIV3Schema: 353 description: AWSClusterTemplate is the schema for Amazon EC2 based Kubernetes 354 Cluster Templates. 355 properties: 356 apiVersion: 357 description: 'APIVersion defines the versioned schema of this representation 358 of an object. Servers should convert recognized schemas to the latest 359 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 360 type: string 361 kind: 362 description: 'Kind is a string value representing the REST resource this 363 object represents. Servers may infer this from the endpoint the client 364 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 365 type: string 366 metadata: 367 type: object 368 spec: 369 description: AWSClusterTemplateSpec defines the desired state of AWSClusterTemplate. 370 properties: 371 template: 372 properties: 373 metadata: 374 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' 375 properties: 376 annotations: 377 additionalProperties: 378 type: string 379 description: 'Annotations is an unstructured key value map 380 stored with a resource that may be set by external tools 381 to store and retrieve arbitrary metadata. They are not queryable 382 and should be preserved when modifying objects. More info: 383 http://kubernetes.io/docs/user-guide/annotations' 384 type: object 385 labels: 386 additionalProperties: 387 type: string 388 description: 'Map of string keys and values that can be used 389 to organize and categorize (scope and select) objects. May 390 match selectors of replication controllers and services. 391 More info: http://kubernetes.io/docs/user-guide/labels' 392 type: object 393 type: object 394 spec: 395 description: AWSClusterSpec defines the desired state of an EC2-based 396 Kubernetes cluster. 397 properties: 398 additionalTags: 399 additionalProperties: 400 type: string 401 description: AdditionalTags is an optional set of tags to 402 add to AWS resources managed by the AWS provider, in addition 403 to the ones added by default. 404 type: object 405 bastion: 406 description: Bastion contains options to configure the bastion 407 host. 408 properties: 409 allowedCIDRBlocks: 410 description: AllowedCIDRBlocks is a list of CIDR blocks 411 allowed to access the bastion host. They are set as 412 ingress rules for the Bastion host's Security Group 413 (defaults to 0.0.0.0/0). 414 items: 415 type: string 416 type: array 417 ami: 418 description: AMI will use the specified AMI to boot the 419 bastion. If not specified, the AMI will default to one 420 picked out in public space. 421 type: string 422 disableIngressRules: 423 description: DisableIngressRules will ensure there are 424 no Ingress rules in the bastion host's security group. 425 Requires AllowedCIDRBlocks to be empty. 426 type: boolean 427 enabled: 428 description: Enabled allows this provider to create a 429 bastion host instance with a public ip to access the 430 VPC private network. 431 type: boolean 432 instanceType: 433 description: InstanceType will use the specified instance 434 type for the bastion. If not specified, Cluster API 435 Provider AWS will use t3.micro for all regions except 436 us-east-1, where t2.micro will be the default. 437 type: string 438 type: object 439 controlPlaneEndpoint: 440 description: ControlPlaneEndpoint represents the endpoint 441 used to communicate with the control plane. 442 properties: 443 host: 444 description: The hostname on which the API server is serving. 445 type: string 446 port: 447 description: The port on which the API server is serving. 448 format: int32 449 type: integer 450 required: 451 - host 452 - port 453 type: object 454 controlPlaneLoadBalancer: 455 description: ControlPlaneLoadBalancer is optional configuration 456 for customizing control plane behavior. 457 properties: 458 additionalSecurityGroups: 459 description: AdditionalSecurityGroups sets the security 460 groups used by the load balancer. Expected to be security 461 group IDs This is optional - if not provided new security 462 groups will be created for the load balancer 463 items: 464 type: string 465 type: array 466 crossZoneLoadBalancing: 467 description: "CrossZoneLoadBalancing enables the classic 468 ELB cross availability zone balancing. \n With cross-zone 469 load balancing, each load balancer node for your Classic 470 Load Balancer distributes requests evenly across the 471 registered instances in all enabled Availability Zones. 472 If cross-zone load balancing is disabled, each load 473 balancer node distributes requests evenly across the 474 registered instances in its Availability Zone only. 475 \n Defaults to false." 476 type: boolean 477 healthCheckProtocol: 478 description: HealthCheckProtocol sets the protocol type 479 for classic ELB health check target default value is 480 ClassicELBProtocolSSL 481 type: string 482 name: 483 description: Name sets the name of the classic ELB load 484 balancer. As per AWS, the name must be unique within 485 your set of load balancers for the region, must have 486 a maximum of 32 characters, must contain only alphanumeric 487 characters or hyphens, and cannot begin or end with 488 a hyphen. Once set, the value cannot be changed. 489 maxLength: 32 490 pattern: ^[A-Za-z0-9]([A-Za-z0-9]{0,31}|[-A-Za-z0-9]{0,30}[A-Za-z0-9])$ 491 type: string 492 scheme: 493 default: internet-facing 494 description: Scheme sets the scheme of the load balancer 495 (defaults to internet-facing) 496 enum: 497 - internet-facing 498 - internal 499 type: string 500 subnets: 501 description: Subnets sets the subnets that should be applied 502 to the control plane load balancer (defaults to discovered 503 subnets for managed VPCs or an empty set for unmanaged 504 VPCs) 505 items: 506 type: string 507 type: array 508 type: object 509 identityRef: 510 description: IdentityRef is a reference to a identity to be 511 used when reconciling this cluster 512 properties: 513 kind: 514 description: Kind of the identity. 515 enum: 516 - AWSClusterControllerIdentity 517 - AWSClusterRoleIdentity 518 - AWSClusterStaticIdentity 519 type: string 520 name: 521 description: Name of the identity. 522 minLength: 1 523 type: string 524 required: 525 - kind 526 - name 527 type: object 528 imageLookupBaseOS: 529 description: ImageLookupBaseOS is the name of the base operating 530 system used to look up machine images when a machine does 531 not specify an AMI. When set, this will be used for all 532 cluster machines unless a machine specifies a different 533 ImageLookupBaseOS. 534 type: string 535 imageLookupFormat: 536 description: 'ImageLookupFormat is the AMI naming format to 537 look up machine images when a machine does not specify an 538 AMI. When set, this will be used for all cluster machines 539 unless a machine specifies a different ImageLookupOrg. Supports 540 substitutions for {{.BaseOS}} and {{.K8sVersion}} with the 541 base OS and kubernetes version, respectively. The BaseOS 542 will be the value in ImageLookupBaseOS or ubuntu (the default), 543 and the kubernetes version as defined by the packages produced 544 by kubernetes/release without v as a prefix: 1.13.0, 1.12.5-mybuild.1, 545 or 1.17.3. For example, the default image format of capa-ami-{{.BaseOS}}-?{{.K8sVersion}}-* 546 will end up searching for AMIs that match the pattern capa-ami-ubuntu-?1.18.0-* 547 for a Machine that is targeting kubernetes v1.18.0 and the 548 ubuntu base OS. See also: https://golang.org/pkg/text/template/' 549 type: string 550 imageLookupOrg: 551 description: ImageLookupOrg is the AWS Organization ID to 552 look up machine images when a machine does not specify an 553 AMI. When set, this will be used for all cluster machines 554 unless a machine specifies a different ImageLookupOrg. 555 type: string 556 network: 557 description: NetworkSpec encapsulates all things related to 558 AWS network. 559 properties: 560 cni: 561 description: CNI configuration 562 properties: 563 cniIngressRules: 564 description: CNIIngressRules specify rules to apply 565 to control plane and worker node security groups. 566 The source for the rule will be set to control plane 567 and worker security group IDs. 568 items: 569 description: CNIIngressRule defines an AWS ingress 570 rule for CNI requirements. 571 properties: 572 description: 573 type: string 574 fromPort: 575 format: int64 576 type: integer 577 protocol: 578 description: SecurityGroupProtocol defines the 579 protocol type for a security group rule. 580 type: string 581 toPort: 582 format: int64 583 type: integer 584 required: 585 - description 586 - fromPort 587 - protocol 588 - toPort 589 type: object 590 type: array 591 type: object 592 securityGroupOverrides: 593 additionalProperties: 594 type: string 595 description: SecurityGroupOverrides is an optional set 596 of security groups to use for cluster instances This 597 is optional - if not provided new security groups will 598 be created for the cluster 599 type: object 600 subnets: 601 description: Subnets configuration. 602 items: 603 description: SubnetSpec configures an AWS Subnet. 604 properties: 605 availabilityZone: 606 description: AvailabilityZone defines the availability 607 zone to use for this subnet in the cluster's region. 608 type: string 609 cidrBlock: 610 description: CidrBlock is the CIDR block to be used 611 when the provider creates a managed VPC. 612 type: string 613 id: 614 description: ID defines a unique identifier to reference 615 this resource. 616 type: string 617 isPublic: 618 description: IsPublic defines the subnet as a public 619 subnet. A subnet is public when it is associated 620 with a route table that has a route to an internet 621 gateway. 622 type: boolean 623 natGatewayId: 624 description: NatGatewayID is the NAT gateway id 625 associated with the subnet. Ignored unless the 626 subnet is managed by the provider, in which case 627 this is set on the public subnet where the NAT 628 gateway resides. It is then used to determine 629 routes for private subnets in the same AZ as the 630 public subnet. 631 type: string 632 routeTableId: 633 description: RouteTableID is the routing table id 634 associated with the subnet. 635 type: string 636 tags: 637 additionalProperties: 638 type: string 639 description: Tags is a collection of tags describing 640 the resource. 641 type: object 642 type: object 643 type: array 644 vpc: 645 description: VPC configuration. 646 properties: 647 availabilityZoneSelection: 648 default: Ordered 649 description: 'AvailabilityZoneSelection specifies 650 how AZs should be selected if there are more AZs 651 in a region than specified by AvailabilityZoneUsageLimit. 652 There are 2 selection schemes: Ordered - selects 653 based on alphabetical order Random - selects AZs 654 randomly in a region Defaults to Ordered' 655 enum: 656 - Ordered 657 - Random 658 type: string 659 availabilityZoneUsageLimit: 660 default: 3 661 description: AvailabilityZoneUsageLimit specifies 662 the maximum number of availability zones (AZ) that 663 should be used in a region when automatically creating 664 subnets. If a region has more than this number of 665 AZs then this number of AZs will be picked randomly 666 when creating default subnets. Defaults to 3 667 minimum: 1 668 type: integer 669 cidrBlock: 670 description: CidrBlock is the CIDR block to be used 671 when the provider creates a managed VPC. Defaults 672 to 10.0.0.0/16. 673 type: string 674 id: 675 description: ID is the vpc-id of the VPC this provider 676 should use to create resources. 677 type: string 678 internetGatewayId: 679 description: InternetGatewayID is the id of the internet 680 gateway associated with the VPC. 681 type: string 682 tags: 683 additionalProperties: 684 type: string 685 description: Tags is a collection of tags describing 686 the resource. 687 type: object 688 type: object 689 type: object 690 region: 691 description: The AWS Region the cluster lives in. 692 type: string 693 s3Bucket: 694 description: S3Bucket contains options to configure a supporting 695 S3 bucket for this cluster - currently used for nodes requiring 696 Ignition (https://coreos.github.io/ignition/) for bootstrapping 697 (requires BootstrapFormatIgnition feature flag to be enabled). 698 properties: 699 controlPlaneIAMInstanceProfile: 700 description: ControlPlaneIAMInstanceProfile is a name 701 of the IAMInstanceProfile, which will be allowed to 702 read control-plane node bootstrap data from S3 Bucket. 703 type: string 704 name: 705 description: Name defines name of S3 Bucket to be created. 706 maxLength: 63 707 minLength: 3 708 pattern: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$ 709 type: string 710 nodesIAMInstanceProfiles: 711 description: NodesIAMInstanceProfiles is a list of IAM 712 instance profiles, which will be allowed to read worker 713 nodes bootstrap data from S3 Bucket. 714 items: 715 type: string 716 type: array 717 required: 718 - controlPlaneIAMInstanceProfile 719 - name 720 - nodesIAMInstanceProfiles 721 type: object 722 sshKeyName: 723 description: SSHKeyName is the name of the ssh key to attach 724 to the bastion host. Valid values are empty string (do not 725 use SSH keys), a valid SSH key name, or omitted (use the 726 default SSH key name) 727 type: string 728 type: object 729 required: 730 - spec 731 type: object 732 required: 733 - template 734 type: object 735 type: object 736 served: true 737 storage: true 738 subresources: {} 739 status: 740 acceptedNames: 741 kind: "" 742 plural: "" 743 conditions: [] 744 storedVersions: []