From e0bcd4ede009b323c9ae478505403b870cd01fa9 Mon Sep 17 00:00:00 2001 From: Edwin Hermans Date: Mon, 2 Mar 2026 16:31:21 -0500 Subject: [PATCH] Update capa to v2.10.2 Signed-off-by: Edwin Hermans Updated using the crds from github Signed-off-by: Edwin Hermans --- cluster-api-provider-aws/kcl.mod | 2 +- ...s_io_v1beta1_a_w_s_managed_control_plane.k | 45 +- ...re_clusterx_k8s_io_v1beta1_a_w_s_cluster.k | 7 +- ...rx_k8s_io_v1beta1_a_w_s_cluster_template.k | 7 +- ...rap_clusterx_k8s_io_v1beta2_e_k_s_config.k | 4 + ...p_clusterx_k8s_io_v1beta2_nodeadm_config.k | 489 ++++++++++++++++++ ...x_k8s_io_v1beta2_nodeadm_config_template.k | 408 +++++++++++++++ ...s_io_v1beta2_a_w_s_managed_control_plane.k | 127 ++++- ...ta2_a_w_s_managed_control_plane_template.k | 96 +++- ...1beta1_a_w_s_cluster_controller_identity.k | 118 +++++ ...s_io_v1beta1_a_w_s_cluster_role_identity.k | 184 +++++++ ...io_v1beta1_a_w_s_cluster_static_identity.k | 126 +++++ ...re_clusterx_k8s_io_v1beta2_a_w_s_cluster.k | 71 ++- ...rx_k8s_io_v1beta2_a_w_s_cluster_template.k | 40 +- ...re_clusterx_k8s_io_v1beta2_a_w_s_machine.k | 17 + ...usterx_k8s_io_v1beta2_a_w_s_machine_pool.k | 7 + ...rx_k8s_io_v1beta2_a_w_s_machine_template.k | 17 + ...8s_io_v1beta2_a_w_s_managed_machine_pool.k | 7 + 18 files changed, 1730 insertions(+), 42 deletions(-) create mode 100644 cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_nodeadm_config.k create mode 100644 cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_nodeadm_config_template.k create mode 100644 cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_controller_identity.k create mode 100644 cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_role_identity.k create mode 100644 cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_static_identity.k diff --git a/cluster-api-provider-aws/kcl.mod b/cluster-api-provider-aws/kcl.mod index 3f192317..60d1351e 100644 --- a/cluster-api-provider-aws/kcl.mod +++ b/cluster-api-provider-aws/kcl.mod @@ -1,7 +1,7 @@ [package] name = "cluster-api-provider-aws" edition = "*" -version = "v2.10.1" +version = "v2.10.2" description = "KCL package for https://github.com/kubernetes-sigs/cluster-api-provider-aws CRDs" [dependencies] diff --git a/cluster-api-provider-aws/v1beta1/controlplane_clusterx_k8s_io_v1beta1_a_w_s_managed_control_plane.k b/cluster-api-provider-aws/v1beta1/controlplane_clusterx_k8s_io_v1beta1_a_w_s_managed_control_plane.k index da3d54db..33b5c07c 100644 --- a/cluster-api-provider-aws/v1beta1/controlplane_clusterx_k8s_io_v1beta1_a_w_s_managed_control_plane.k +++ b/cluster-api-provider-aws/v1beta1/controlplane_clusterx_k8s_io_v1beta1_a_w_s_managed_control_plane.k @@ -242,6 +242,7 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneSpecBastion: allowedCIDRBlocks : [str], default is Undefined, optional AllowedCIDRBlocks is a list of CIDR blocks allowed to access the bastion host. They are set as ingress rules for the Bastion host's Security Group (defaults to 0.0.0.0/0). + If the cluster has IPv6 enabled, defaults to ::/0 and 0.0.0.0/0. ami : str, default is Undefined, optional AMI will use the specified AMI to boot the bastion. If not specified, the AMI will default to one picked out in public space. @@ -672,10 +673,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneSpecNetworkSubnetsI ipv6CidrBlock : str, default is Undefined, optional IPv6CidrBlock is the IPv6 CIDR block to be used when the provider creates a managed VPC. A subnet can have an IPv4 and an IPv6 address. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. isIpv6 : bool, default is Undefined, optional - IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with a VPC that has IPv6 enabled. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. + IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with an IPv6 CIDR. isPublic : bool, default is Undefined, optional IsPublic defines the subnet as a public subnet. A subnet is public when it is associated with a route table that has a route to an internet gateway. natGatewayId : str, default is Undefined, optional @@ -875,8 +874,7 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneSpecNetworkVpcElast schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneSpecNetworkVpcIPV6: r""" - IPv6 contains ipv6 specific settings for the network. Supported only in managed clusters. - This field cannot be set on AWSCluster object. + IPv6 contains ipv6 specific settings for the network. Attributes ---------- @@ -918,6 +916,7 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneSpecNetworkVpcIPV6I The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -943,6 +942,7 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneSpecNetworkVpcIpamP The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -1066,9 +1066,9 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneSpecVpcCniEnvItems0 Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $ are reduced + the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". + "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". @@ -1338,6 +1338,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusBastion: ---------- addresses : [ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusBastionAddressesItems0], default is Undefined, optional Addresses contains the AWS instance associated addresses. + assignPrimaryIPv6 : str, default is Undefined, optional + AssignPrimaryIPv6 specifies whether to enable assigning a primary IPv6 address to the primary network Interface. availabilityZone : str, default is Undefined, optional Availability zone of instance capacityReservationId : str, default is Undefined, optional @@ -1375,6 +1377,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusBastion: instance metadata options instanceState : str, default is Undefined, optional The current state of the instance. + ipv6Address : str, default is Undefined, optional + The IPv6 address assigned to the instance. marketType : str, default is Undefined, optional MarketType specifies the type of market for the EC2 instance. Valid values include: "OnDemand" (default): The instance runs as a standard OnDemand instance. @@ -1428,6 +1432,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusBastion: addresses?: [ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusBastionAddressesItems0] + assignPrimaryIPv6?: str + availabilityZone?: str capacityReservationId?: str @@ -1456,6 +1462,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusBastion: instanceState?: str + ipv6Address?: str + marketType?: "OnDemand" | "Spot" | "CapacityBlock" networkInterfaceType?: str @@ -1578,6 +1586,11 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusBastionInstan If you specify a value of disabled, you cannot access your instance metadata. Default: enabled + httpProtocolIpv6 : str, default is "disabled", optional + Enables or disables the IPv6 endpoint for the instance metadata service. + This applies only if you enabled the HTTP metadata endpoint. + + Default: disabled httpPutResponseHopLimit : int, default is 1, optional The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. @@ -1610,6 +1623,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusBastionInstan httpEndpoint?: "enabled" | "disabled" = "enabled" + httpProtocolIpv6?: "enabled" | "disabled" = "disabled" + httpPutResponseHopLimit?: int = 1 httpTokens?: "optional" | "required" = "optional" @@ -1888,6 +1903,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatus health checks listeners : [ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatusAPIServerElbListenersItems0], default is Undefined, optional ClassicELBListeners is an array of classic elb listeners associated with the load balancer. There must be at least one. + loadBalancerIPAddressType : str, default is Undefined, optional + LoadBalancerIPAddressType specifies the IP address type for the load balancer. loadBalancerType : str, default is Undefined, optional LoadBalancerType sets the type for a load balancer. The default type is classic. name : str, default is Undefined, optional @@ -1920,6 +1937,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatus listeners?: [ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatusAPIServerElbListenersItems0] + loadBalancerIPAddressType?: "ipv4" | "dualstack" | "dualstack-without-public-ipv4" + loadBalancerType?: "classic" | "elb" | "alb" | "nlb" name?: str @@ -1981,6 +2000,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatus Attributes ---------- + ipType : str, default is Undefined, optional + IPType is the IP address type for the target group. name : str, default is Undefined, required Name of the TargetGroup. Must be unique over the same group of listeners. port : int, default is Undefined, required @@ -1994,6 +2015,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatus """ + ipType?: str + name: str port: int @@ -2130,6 +2153,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatus health checks listeners : [ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatusSecondaryAPIServerELBListenersItems0], default is Undefined, optional ClassicELBListeners is an array of classic elb listeners associated with the load balancer. There must be at least one. + loadBalancerIPAddressType : str, default is Undefined, optional + LoadBalancerIPAddressType specifies the IP address type for the load balancer. loadBalancerType : str, default is Undefined, optional LoadBalancerType sets the type for a load balancer. The default type is classic. name : str, default is Undefined, optional @@ -2162,6 +2187,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatus listeners?: [ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatusSecondaryAPIServerELBListenersItems0] + loadBalancerIPAddressType?: "ipv4" | "dualstack" | "dualstack-without-public-ipv4" + loadBalancerType?: "classic" | "elb" | "alb" | "nlb" name?: str @@ -2223,6 +2250,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatus Attributes ---------- + ipType : str, default is Undefined, optional + IPType is the IP address type for the target group. name : str, default is Undefined, required Name of the TargetGroup. Must be unique over the same group of listeners. port : int, default is Undefined, required @@ -2236,6 +2265,8 @@ schema ControlplaneClusterxK8sIoV1beta1AWSManagedControlPlaneStatusNetworkStatus """ + ipType?: str + name: str port: int diff --git a/cluster-api-provider-aws/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster.k b/cluster-api-provider-aws/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster.k index e7b39a83..5dfd8aa1 100644 --- a/cluster-api-provider-aws/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster.k +++ b/cluster-api-provider-aws/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster.k @@ -327,10 +327,8 @@ schema InfrastructureClusterxK8sIoV1beta1AWSClusterSpecNetworkSubnetsItems0: ipv6CidrBlock : str, default is Undefined, optional IPv6CidrBlock is the IPv6 CIDR block to be used when the provider creates a managed VPC. A subnet can have an IPv4 and an IPv6 address. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. isIpv6 : bool, default is Undefined, optional - IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with a VPC that has IPv6 enabled. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. + IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with an IPv6 CIDR. isPublic : bool, default is Undefined, optional IsPublic defines the subnet as a public subnet. A subnet is public when it is associated with a route table that has a route to an internet gateway. natGatewayId : str, default is Undefined, optional @@ -414,8 +412,7 @@ schema InfrastructureClusterxK8sIoV1beta1AWSClusterSpecNetworkVpc: schema InfrastructureClusterxK8sIoV1beta1AWSClusterSpecNetworkVpcIPV6: r""" - IPv6 contains ipv6 specific settings for the network. Supported only in managed clusters. - This field cannot be set on AWSCluster object. + IPv6 contains ipv6 specific settings for the network. Attributes ---------- diff --git a/cluster-api-provider-aws/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_template.k b/cluster-api-provider-aws/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_template.k index 9aad482d..e0ed9db6 100644 --- a/cluster-api-provider-aws/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_template.k +++ b/cluster-api-provider-aws/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_template.k @@ -380,10 +380,8 @@ schema InfrastructureClusterxK8sIoV1beta1AWSClusterTemplateSpecTemplateSpecNetwo ipv6CidrBlock : str, default is Undefined, optional IPv6CidrBlock is the IPv6 CIDR block to be used when the provider creates a managed VPC. A subnet can have an IPv4 and an IPv6 address. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. isIpv6 : bool, default is Undefined, optional - IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with a VPC that has IPv6 enabled. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. + IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with an IPv6 CIDR. isPublic : bool, default is Undefined, optional IsPublic defines the subnet as a public subnet. A subnet is public when it is associated with a route table that has a route to an internet gateway. natGatewayId : str, default is Undefined, optional @@ -467,8 +465,7 @@ schema InfrastructureClusterxK8sIoV1beta1AWSClusterTemplateSpecTemplateSpecNetwo schema InfrastructureClusterxK8sIoV1beta1AWSClusterTemplateSpecTemplateSpecNetworkVpcIPV6: r""" - IPv6 contains ipv6 specific settings for the network. Supported only in managed clusters. - This field cannot be set on AWSCluster object. + IPv6 contains ipv6 specific settings for the network. Attributes ---------- diff --git a/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_e_k_s_config.k b/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_e_k_s_config.k index 591c85e8..6ca34831 100644 --- a/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_e_k_s_config.k +++ b/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_e_k_s_config.k @@ -9,6 +9,10 @@ schema EKSConfig: r""" EKSConfig is the schema for the Amazon EKS Machine Bootstrap Configuration API. + Deprecated: EKSConfig is deprecated and will be removed in a future release. + Amazon Linux 2 (AL2) reaches end-of-life in June 2026 see: https://aws.amazon.com/amazon-linux-2/faqs/ + Please use NodeadmConfig with Amazon Linux 2023 (AL2023) instead. + Attributes ---------- apiVersion : str, default is "bootstrap.cluster.x-k8s.io/v1beta2", required diff --git a/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_nodeadm_config.k b/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_nodeadm_config.k new file mode 100644 index 00000000..40aca740 --- /dev/null +++ b/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_nodeadm_config.k @@ -0,0 +1,489 @@ +""" +This file was generated by the KCL auto-gen tool. DO NOT EDIT. +Editing this file might prove futile when you re-run the KCL auto-gen generate command. +""" +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema NodeadmConfig: + r""" + NodeadmConfig is the Schema for the nodeadmconfigs API. + + Attributes + ---------- + apiVersion : str, default is "bootstrap.cluster.x-k8s.io/v1beta2", required + APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is "NodeadmConfig", required + Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metadata : v1.ObjectMeta, default is Undefined, optional + metadata + spec : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpec, default is Undefined, optional + spec + status : BootstrapClusterxK8sIoV1beta2NodeadmConfigStatus, default is Undefined, optional + status + """ + + + apiVersion: "bootstrap.cluster.x-k8s.io/v1beta2" = "bootstrap.cluster.x-k8s.io/v1beta2" + + kind: "NodeadmConfig" = "NodeadmConfig" + + metadata?: v1.ObjectMeta + + spec?: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpec + + status?: BootstrapClusterxK8sIoV1beta2NodeadmConfigStatus + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpec: + r""" + NodeadmConfigSpec defines the desired state of NodeadmConfig. + + Attributes + ---------- + containerd : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecContainerd, default is Undefined, optional + containerd + diskSetup : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetup, default is Undefined, optional + disk setup + featureGates : {str:bool}, default is Undefined, optional + FeatureGates holds key-value pairs to enable or disable application features. + files : [BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0], default is Undefined, optional + Files specifies extra files to be passed to user_data upon creation. + kubelet : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecKubelet, default is Undefined, optional + kubelet + mounts : [[str]], default is Undefined, optional + Mounts specifies a list of mount points to be setup. + ntp : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecNtp, default is Undefined, optional + ntp + preNodeadmCommands : [str], default is Undefined, optional + PreNodeadmCommands specifies extra commands to run before bootstrapping nodes. + users : [BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0], default is Undefined, optional + Users specifies extra users to add. + """ + + + containerd?: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecContainerd + + diskSetup?: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetup + + featureGates?: {str:bool} + + files?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0] + + kubelet?: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecKubelet + + mounts?: [[str]] + + ntp?: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecNtp + + preNodeadmCommands?: [str] + + users?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0] + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecContainerd: + r""" + Containerd contains options for containerd. + + Attributes + ---------- + baseRuntimeSpec : any, default is Undefined, optional + BaseRuntimeSpec is the OCI runtime specification upon which all containers will be based. + config : str, default is Undefined, optional + Config is an inline containerd configuration TOML that will be merged with the defaults. + """ + + + baseRuntimeSpec?: any + + config?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetup: + r""" + DiskSetup specifies options for the creation of partition tables and file systems on devices. + + Attributes + ---------- + filesystems : [BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetupFilesystemsItems0], default is Undefined, optional + Filesystems specifies the list of file systems to setup. + partitions : [BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetupPartitionsItems0], default is Undefined, optional + Partitions specifies the list of the partitions to setup. + """ + + + filesystems?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetupFilesystemsItems0] + + partitions?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetupPartitionsItems0] + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetupFilesystemsItems0: + r""" + Filesystem defines the file systems to be created. + + Attributes + ---------- + device : str, default is Undefined, required + Device specifies the device name + extraOpts : [str], default is Undefined, optional + ExtraOpts defined extra options to add to the command for creating the file system. + filesystem : str, default is Undefined, required + Filesystem specifies the file system type. + label : str, default is Undefined, required + Label specifies the file system label to be used. If set to None, no label is used. + overwrite : bool, default is Undefined, optional + Overwrite defines whether or not to overwrite any existing filesystem. + If true, any pre-existing file system will be destroyed. Use with Caution. + partition : str, default is Undefined, optional + Partition specifies the partition to use. The valid options are: "auto|any", "auto", "any", "none", and , where NUM is the actual partition number. + """ + + + device: str + + extraOpts?: [str] + + filesystem: str + + label: str + + overwrite?: bool + + partition?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecDiskSetupPartitionsItems0: + r""" + Partition defines how to create and layout a partition. + + Attributes + ---------- + device : str, default is Undefined, required + Device is the name of the device. + layout : bool, default is Undefined, required + Layout specifies the device layout. + If it is true, a single partition will be created for the entire device. + When layout is false, it means don't partition or ignore existing partitioning. + overwrite : bool, default is Undefined, optional + Overwrite describes whether to skip checks and create the partition if a partition or filesystem is found on the device. + Use with caution. Default is 'false'. + tableType : str, default is Undefined, optional + TableType specifies the tupe of partition table. The following are supported: + 'mbr': default and setups a MS-DOS partition table + 'gpt': setups a GPT partition table + """ + + + device: str + + layout: bool + + overwrite?: bool + + tableType?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0: + r""" + File defines the input for generating write_files in cloud-init. + + Attributes + ---------- + append : bool, default is Undefined, optional + Append specifies whether to append Content to existing file if Path exists. + content : str, default is Undefined, optional + Content is the actual content of the file. + contentFrom : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0ContentFrom, default is Undefined, optional + content from + encoding : str, default is Undefined, optional + Encoding specifies the encoding of the file contents. + owner : str, default is Undefined, optional + Owner specifies the ownership of the file, e.g. "root:root". + path : str, default is Undefined, required + Path specifies the full path on disk where to store the file. + permissions : str, default is Undefined, optional + Permissions specifies the permissions to assign to the file, e.g. "0640". + """ + + + append?: bool + + content?: str + + contentFrom?: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0ContentFrom + + encoding?: "base64" | "gzip" | "gzip+base64" + + owner?: str + + path: str + + permissions?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0ContentFrom: + r""" + ContentFrom is a referenced source of content to populate the file. + + Attributes + ---------- + secret : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0ContentFromSecret, default is Undefined, required + secret + """ + + + secret: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0ContentFromSecret + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecFilesItems0ContentFromSecret: + r""" + Secret represents a secret that should populate this file. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key in the secret's data map for this value. + name : str, default is Undefined, required + Name of the secret in the KubeadmBootstrapConfig's namespace to use. + """ + + + key: str + + name: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecKubelet: + r""" + Kubelet contains options for kubelet. + + Attributes + ---------- + config : any, default is Undefined, optional + Config is a KubeletConfiguration that will be merged with the defaults. + flags : [str], default is Undefined, optional + Flags are command-line kubelet arguments that will be appended to the defaults. + """ + + + config?: any + + flags?: [str] + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecNtp: + r""" + NTP specifies NTP configuration. + + Attributes + ---------- + enabled : bool, default is Undefined, optional + Enabled specifies whether NTP should be enabled + servers : [str], default is Undefined, optional + Servers specifies which NTP servers to use + """ + + + enabled?: bool + + servers?: [str] + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0: + r""" + User defines the input for a generated user in cloud-init. + + Attributes + ---------- + gecos : str, default is Undefined, optional + Gecos specifies the gecos to use for the user + groups : str, default is Undefined, optional + Groups specifies the additional groups for the user + homeDir : str, default is Undefined, optional + HomeDir specifies the home directory to use for the user + inactive : bool, default is Undefined, optional + Inactive specifies whether to mark the user as inactive + lockPassword : bool, default is Undefined, optional + LockPassword specifies if password login should be disabled + name : str, default is Undefined, required + Name specifies the username + passwd : str, default is Undefined, optional + Passwd specifies a hashed password for the user + passwdFrom : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0PasswdFrom, default is Undefined, optional + passwd from + primaryGroup : str, default is Undefined, optional + PrimaryGroup specifies the primary group for the user + shell : str, default is Undefined, optional + Shell specifies the user's shell + sshAuthorizedKeys : [str], default is Undefined, optional + SSHAuthorizedKeys specifies a list of ssh authorized keys for the user + sudo : str, default is Undefined, optional + Sudo specifies a sudo role for the user + """ + + + gecos?: str + + groups?: str + + homeDir?: str + + inactive?: bool + + lockPassword?: bool + + name: str + + passwd?: str + + passwdFrom?: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0PasswdFrom + + primaryGroup?: str + + shell?: str + + sshAuthorizedKeys?: [str] + + sudo?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0PasswdFrom: + r""" + PasswdFrom is a referenced source of passwd to populate the passwd. + + Attributes + ---------- + secret : BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0PasswdFromSecret, default is Undefined, required + secret + """ + + + secret: BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0PasswdFromSecret + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigSpecUsersItems0PasswdFromSecret: + r""" + Secret represents a secret that should populate this password. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key in the secret's data map for this value. + name : str, default is Undefined, required + Name of the secret in the KubeadmBootstrapConfig's namespace to use. + """ + + + key: str + + name: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigStatus: + r""" + NodeadmConfigStatus defines the observed state of NodeadmConfig. + + Attributes + ---------- + conditions : [BootstrapClusterxK8sIoV1beta2NodeadmConfigStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the NodeadmConfig. + dataSecretName : str, default is Undefined, optional + DataSecretName is the name of the secret that stores the bootstrap data script. + failureMessage : str, default is Undefined, optional + FailureMessage will be set on non-retryable errors. + failureReason : str, default is Undefined, optional + FailureReason will be set on non-retryable errors. + initialization : BootstrapClusterxK8sIoV1beta2NodeadmConfigStatusInitialization, default is Undefined, optional + initialization + observedGeneration : int, default is Undefined, optional + ObservedGeneration is the latest generation observed by the controller. + ready : bool, default is Undefined, optional + Deprecated: This field will be removed with the CAPI v1beta2 transition + Ready indicates the BootstrapData secret is ready to be consumed. + """ + + + conditions?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigStatusConditionsItems0] + + dataSecretName?: str + + failureMessage?: str + + failureReason?: str + + initialization?: BootstrapClusterxK8sIoV1beta2NodeadmConfigStatusInitialization + + observedGeneration?: int + + ready?: bool + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigStatusConditionsItems0: + r""" + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, required + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. + message : str, default is Undefined, optional + message is a human readable message indicating details about the transition. + This field may be empty. + reason : str, default is Undefined, optional + reason is the reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may be empty. + severity : str, default is Undefined, optional + severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. + status : str, default is Undefined, required + status of the condition, one of True, False, Unknown. + $type : str, default is Undefined, required + type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. + """ + + + lastTransitionTime: str + + message?: str + + reason?: str + + severity?: str + + status: str + + $type: str + + + check: + len(message) <= 10240 if message + len(message) >= 1 if message + len(reason) <= 256 if reason + len(reason) >= 1 if reason + len(severity) <= 32 if severity + len($type) <= 256 + len($type) >= 1 + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigStatusInitialization: + r""" + Initialization provides observations of the NodeadmConfig initialization process. + NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Machine provisioning. + + Attributes + ---------- + dataSecretCreated : bool, default is Undefined, optional + DataSecretCreated is true when the Machine's bootstrap secret is created. + NOTE: This field is part of the Cluster API contract, and it is used to orchestrate initial Machine provisioning. + """ + + + dataSecretCreated?: bool + + diff --git a/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_nodeadm_config_template.k b/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_nodeadm_config_template.k new file mode 100644 index 00000000..08c6fca1 --- /dev/null +++ b/cluster-api-provider-aws/v1beta2/bootstrap_clusterx_k8s_io_v1beta2_nodeadm_config_template.k @@ -0,0 +1,408 @@ +""" +This file was generated by the KCL auto-gen tool. DO NOT EDIT. +Editing this file might prove futile when you re-run the KCL auto-gen generate command. +""" +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema NodeadmConfigTemplate: + r""" + NodeadmConfigTemplate is the Amazon EKS Bootstrap Configuration Template API. + + Attributes + ---------- + apiVersion : str, default is "bootstrap.cluster.x-k8s.io/v1beta2", required + APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is "NodeadmConfigTemplate", required + Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metadata : v1.ObjectMeta, default is Undefined, optional + metadata + spec : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpec, default is Undefined, optional + spec + """ + + + apiVersion: "bootstrap.cluster.x-k8s.io/v1beta2" = "bootstrap.cluster.x-k8s.io/v1beta2" + + kind: "NodeadmConfigTemplate" = "NodeadmConfigTemplate" + + metadata?: v1.ObjectMeta + + spec?: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpec + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpec: + r""" + NodeadmConfigTemplateSpec defines the desired state of templated NodeadmConfig Amazon EKS Configuration resources. + + Attributes + ---------- + template : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplate, default is Undefined, required + template + """ + + + template: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplate + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplate: + r""" + NodeadmConfigTemplateResource defines the Template structure. + + Attributes + ---------- + spec : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpec, default is Undefined, optional + spec + """ + + + spec?: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpec + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpec: + r""" + Spec represents the NodeadmConfig each object created from the template will become. + We are setting nullable to avoid this issue: + https://github.com/kubernetes/kubernetes/issues/117447#issuecomment-2127733969 + where we cannot remove all fields with an SSA patch if they were previously set. + + Attributes + ---------- + containerd : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecContainerd, default is Undefined, optional + containerd + diskSetup : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetup, default is Undefined, optional + disk setup + featureGates : {str:bool}, default is Undefined, optional + FeatureGates holds key-value pairs to enable or disable application features. + files : [BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0], default is Undefined, optional + Files specifies extra files to be passed to user_data upon creation. + kubelet : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecKubelet, default is Undefined, optional + kubelet + mounts : [[str]], default is Undefined, optional + Mounts specifies a list of mount points to be setup. + ntp : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecNtp, default is Undefined, optional + ntp + preNodeadmCommands : [str], default is Undefined, optional + PreNodeadmCommands specifies extra commands to run before bootstrapping nodes. + users : [BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0], default is Undefined, optional + Users specifies extra users to add. + """ + + + containerd?: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecContainerd + + diskSetup?: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetup + + featureGates?: {str:bool} + + files?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0] + + kubelet?: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecKubelet + + mounts?: [[str]] + + ntp?: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecNtp + + preNodeadmCommands?: [str] + + users?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0] + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecContainerd: + r""" + Containerd contains options for containerd. + + Attributes + ---------- + baseRuntimeSpec : any, default is Undefined, optional + BaseRuntimeSpec is the OCI runtime specification upon which all containers will be based. + config : str, default is Undefined, optional + Config is an inline containerd configuration TOML that will be merged with the defaults. + """ + + + baseRuntimeSpec?: any + + config?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetup: + r""" + DiskSetup specifies options for the creation of partition tables and file systems on devices. + + Attributes + ---------- + filesystems : [BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetupFilesystemsItems0], default is Undefined, optional + Filesystems specifies the list of file systems to setup. + partitions : [BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetupPartitionsItems0], default is Undefined, optional + Partitions specifies the list of the partitions to setup. + """ + + + filesystems?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetupFilesystemsItems0] + + partitions?: [BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetupPartitionsItems0] + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetupFilesystemsItems0: + r""" + Filesystem defines the file systems to be created. + + Attributes + ---------- + device : str, default is Undefined, required + Device specifies the device name + extraOpts : [str], default is Undefined, optional + ExtraOpts defined extra options to add to the command for creating the file system. + filesystem : str, default is Undefined, required + Filesystem specifies the file system type. + label : str, default is Undefined, required + Label specifies the file system label to be used. If set to None, no label is used. + overwrite : bool, default is Undefined, optional + Overwrite defines whether or not to overwrite any existing filesystem. + If true, any pre-existing file system will be destroyed. Use with Caution. + partition : str, default is Undefined, optional + Partition specifies the partition to use. The valid options are: "auto|any", "auto", "any", "none", and , where NUM is the actual partition number. + """ + + + device: str + + extraOpts?: [str] + + filesystem: str + + label: str + + overwrite?: bool + + partition?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecDiskSetupPartitionsItems0: + r""" + Partition defines how to create and layout a partition. + + Attributes + ---------- + device : str, default is Undefined, required + Device is the name of the device. + layout : bool, default is Undefined, required + Layout specifies the device layout. + If it is true, a single partition will be created for the entire device. + When layout is false, it means don't partition or ignore existing partitioning. + overwrite : bool, default is Undefined, optional + Overwrite describes whether to skip checks and create the partition if a partition or filesystem is found on the device. + Use with caution. Default is 'false'. + tableType : str, default is Undefined, optional + TableType specifies the tupe of partition table. The following are supported: + 'mbr': default and setups a MS-DOS partition table + 'gpt': setups a GPT partition table + """ + + + device: str + + layout: bool + + overwrite?: bool + + tableType?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0: + r""" + File defines the input for generating write_files in cloud-init. + + Attributes + ---------- + append : bool, default is Undefined, optional + Append specifies whether to append Content to existing file if Path exists. + content : str, default is Undefined, optional + Content is the actual content of the file. + contentFrom : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0ContentFrom, default is Undefined, optional + content from + encoding : str, default is Undefined, optional + Encoding specifies the encoding of the file contents. + owner : str, default is Undefined, optional + Owner specifies the ownership of the file, e.g. "root:root". + path : str, default is Undefined, required + Path specifies the full path on disk where to store the file. + permissions : str, default is Undefined, optional + Permissions specifies the permissions to assign to the file, e.g. "0640". + """ + + + append?: bool + + content?: str + + contentFrom?: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0ContentFrom + + encoding?: "base64" | "gzip" | "gzip+base64" + + owner?: str + + path: str + + permissions?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0ContentFrom: + r""" + ContentFrom is a referenced source of content to populate the file. + + Attributes + ---------- + secret : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0ContentFromSecret, default is Undefined, required + secret + """ + + + secret: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0ContentFromSecret + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecFilesItems0ContentFromSecret: + r""" + Secret represents a secret that should populate this file. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key in the secret's data map for this value. + name : str, default is Undefined, required + Name of the secret in the KubeadmBootstrapConfig's namespace to use. + """ + + + key: str + + name: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecKubelet: + r""" + Kubelet contains options for kubelet. + + Attributes + ---------- + config : any, default is Undefined, optional + Config is a KubeletConfiguration that will be merged with the defaults. + flags : [str], default is Undefined, optional + Flags are command-line kubelet arguments that will be appended to the defaults. + """ + + + config?: any + + flags?: [str] + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecNtp: + r""" + NTP specifies NTP configuration. + + Attributes + ---------- + enabled : bool, default is Undefined, optional + Enabled specifies whether NTP should be enabled + servers : [str], default is Undefined, optional + Servers specifies which NTP servers to use + """ + + + enabled?: bool + + servers?: [str] + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0: + r""" + User defines the input for a generated user in cloud-init. + + Attributes + ---------- + gecos : str, default is Undefined, optional + Gecos specifies the gecos to use for the user + groups : str, default is Undefined, optional + Groups specifies the additional groups for the user + homeDir : str, default is Undefined, optional + HomeDir specifies the home directory to use for the user + inactive : bool, default is Undefined, optional + Inactive specifies whether to mark the user as inactive + lockPassword : bool, default is Undefined, optional + LockPassword specifies if password login should be disabled + name : str, default is Undefined, required + Name specifies the username + passwd : str, default is Undefined, optional + Passwd specifies a hashed password for the user + passwdFrom : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0PasswdFrom, default is Undefined, optional + passwd from + primaryGroup : str, default is Undefined, optional + PrimaryGroup specifies the primary group for the user + shell : str, default is Undefined, optional + Shell specifies the user's shell + sshAuthorizedKeys : [str], default is Undefined, optional + SSHAuthorizedKeys specifies a list of ssh authorized keys for the user + sudo : str, default is Undefined, optional + Sudo specifies a sudo role for the user + """ + + + gecos?: str + + groups?: str + + homeDir?: str + + inactive?: bool + + lockPassword?: bool + + name: str + + passwd?: str + + passwdFrom?: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0PasswdFrom + + primaryGroup?: str + + shell?: str + + sshAuthorizedKeys?: [str] + + sudo?: str + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0PasswdFrom: + r""" + PasswdFrom is a referenced source of passwd to populate the passwd. + + Attributes + ---------- + secret : BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0PasswdFromSecret, default is Undefined, required + secret + """ + + + secret: BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0PasswdFromSecret + + +schema BootstrapClusterxK8sIoV1beta2NodeadmConfigTemplateSpecTemplateSpecUsersItems0PasswdFromSecret: + r""" + Secret represents a secret that should populate this password. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key in the secret's data map for this value. + name : str, default is Undefined, required + Name of the secret in the KubeadmBootstrapConfig's namespace to use. + """ + + + key: str + + name: str + + diff --git a/cluster-api-provider-aws/v1beta2/controlplane_clusterx_k8s_io_v1beta2_a_w_s_managed_control_plane.k b/cluster-api-provider-aws/v1beta2/controlplane_clusterx_k8s_io_v1beta2_a_w_s_managed_control_plane.k index 73056bc9..644642ca 100644 --- a/cluster-api-provider-aws/v1beta2/controlplane_clusterx_k8s_io_v1beta2_a_w_s_managed_control_plane.k +++ b/cluster-api-provider-aws/v1beta2/controlplane_clusterx_k8s_io_v1beta2_a_w_s_managed_control_plane.k @@ -45,6 +45,9 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpec: ---------- accessConfig : ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessConfig, default is Undefined, optional access config + accessEntries : [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0], default is Undefined, optional + AccessEntries specifies the access entries for the cluster + Access entries require AuthenticationMode to be either "api" or "api_and_config_map" additionalTags : {str:str}, default is Undefined, optional AdditionalTags is an optional set of tags to add to AWS resources managed by the AWS provider, in addition to the ones added by default. @@ -166,6 +169,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpec: accessConfig?: ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessConfig + accessEntries?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0] + additionalTags?: {str:str} addons?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAddonsItems0] @@ -256,6 +261,83 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessConfig: bootstrapClusterCreatorAdminPermissions?: bool = True +schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0: + r""" + AccessEntry represents an AWS EKS access entry for IAM principals + + Attributes + ---------- + accessPolicies : [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0AccessPoliciesItems0], default is Undefined, optional + AccessPolicies specifies the policies to associate with this access entry + Cannot be specified if Type is "ec2_linux" or "ec2_windows" + kubernetesGroups : [str], default is Undefined, optional + KubernetesGroups represents the Kubernetes groups for the access entry + Cannot be specified if Type is "ec2_linux" or "ec2_windows" + principalARN : str, default is Undefined, required + PrincipalARN is the Amazon Resource Name (ARN) of the IAM principal + $type : str, default is "standard", optional + Type is the type of access entry. Defaults to standard if not specified. + username : str, default is Undefined, optional + Username is the username for the access entry + """ + + + accessPolicies?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0AccessPoliciesItems0] + + kubernetesGroups?: [str] + + principalARN: str + + $type?: "standard" | "ec2_linux" | "ec2_windows" | "fargate_linux" | "ec2" | "hybrid_linux" | "hyperpod_linux" = "standard" + + username?: str + + + check: + len(accessPolicies) <= 20 if accessPolicies + + +schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0AccessPoliciesItems0: + r""" + AccessPolicyReference represents a reference to an AWS EKS access policy + + Attributes + ---------- + accessScope : ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0AccessPoliciesItems0AccessScope, default is Undefined, required + access scope + policyARN : str, default is Undefined, required + PolicyARN is the Amazon Resource Name (ARN) of the access policy + """ + + + accessScope: ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0AccessPoliciesItems0AccessScope + + policyARN: str + + +schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAccessEntriesItems0AccessPoliciesItems0AccessScope: + r""" + AccessScope specifies the scope for the policy + + Attributes + ---------- + namespaces : [str], default is Undefined, optional + Namespaces are the namespaces for the access scope + Only valid when Type is namespace + $type : str, default is "cluster", required + Type is the type of access scope. Defaults to "cluster". + """ + + + namespaces?: [str] + + $type: "cluster" | "namespace" = "cluster" + + + check: + len(namespaces) >= 1 if namespaces + + schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecAddonsItems0: r""" Addon represents a EKS addon. @@ -305,6 +387,7 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecBastion: allowedCIDRBlocks : [str], default is Undefined, optional AllowedCIDRBlocks is a list of CIDR blocks allowed to access the bastion host. They are set as ingress rules for the Bastion host's Security Group (defaults to 0.0.0.0/0). + If the cluster has IPv6 enabled, defaults to ::/0 and 0.0.0.0/0. ami : str, default is Undefined, optional AMI will use the specified AMI to boot the bastion. If not specified, the AMI will default to one picked out in public space. @@ -735,10 +818,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecNetworkSubnetsI ipv6CidrBlock : str, default is Undefined, optional IPv6CidrBlock is the IPv6 CIDR block to be used when the provider creates a managed VPC. A subnet can have an IPv4 and an IPv6 address. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. isIpv6 : bool, default is Undefined, optional - IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with a VPC that has IPv6 enabled. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. + IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with an IPv6 CIDR. isPublic : bool, default is Undefined, optional IsPublic defines the subnet as a public subnet. A subnet is public when it is associated with a route table that has a route to an internet gateway. natGatewayId : str, default is Undefined, optional @@ -938,8 +1019,7 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecNetworkVpcElast schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecNetworkVpcIPV6: r""" - IPv6 contains ipv6 specific settings for the network. Supported only in managed clusters. - This field cannot be set on AWSCluster object. + IPv6 contains ipv6 specific settings for the network. Attributes ---------- @@ -981,6 +1061,7 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecNetworkVpcIPV6I The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -1006,6 +1087,7 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecNetworkVpcIpamP The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -1137,9 +1219,9 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneSpecVpcCniEnvItems0 Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $ are reduced + the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". + "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". @@ -1414,6 +1496,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusBastion: ---------- addresses : [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusBastionAddressesItems0], default is Undefined, optional Addresses contains the AWS instance associated addresses. + assignPrimaryIPv6 : str, default is Undefined, optional + AssignPrimaryIPv6 specifies whether to enable assigning a primary IPv6 address to the primary network Interface. availabilityZone : str, default is Undefined, optional Availability zone of instance capacityReservationId : str, default is Undefined, optional @@ -1451,6 +1535,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusBastion: instance metadata options instanceState : str, default is Undefined, optional The current state of the instance. + ipv6Address : str, default is Undefined, optional + The IPv6 address assigned to the instance. marketType : str, default is Undefined, optional MarketType specifies the type of market for the EC2 instance. Valid values include: "OnDemand" (default): The instance runs as a standard OnDemand instance. @@ -1504,6 +1590,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusBastion: addresses?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusBastionAddressesItems0] + assignPrimaryIPv6?: str + availabilityZone?: str capacityReservationId?: str @@ -1532,6 +1620,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusBastion: instanceState?: str + ipv6Address?: str + marketType?: "OnDemand" | "Spot" | "CapacityBlock" networkInterfaceType?: str @@ -1654,6 +1744,11 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusBastionInstan If you specify a value of disabled, you cannot access your instance metadata. Default: enabled + httpProtocolIpv6 : str, default is "disabled", optional + Enables or disables the IPv6 endpoint for the instance metadata service. + This applies only if you enabled the HTTP metadata endpoint. + + Default: disabled httpPutResponseHopLimit : int, default is 1, optional The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. @@ -1686,6 +1781,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusBastionInstan httpEndpoint?: "enabled" | "disabled" = "enabled" + httpProtocolIpv6?: "enabled" | "disabled" = "disabled" + httpPutResponseHopLimit?: int = 1 httpTokens?: "optional" | "required" = "optional" @@ -1964,6 +2061,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatus health checks listeners : [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatusAPIServerElbListenersItems0], default is Undefined, optional ClassicELBListeners is an array of classic elb listeners associated with the load balancer. There must be at least one. + loadBalancerIPAddressType : str, default is Undefined, optional + LoadBalancerIPAddressType specifies the IP address type for the load balancer. loadBalancerType : str, default is Undefined, optional LoadBalancerType sets the type for a load balancer. The default type is classic. name : str, default is Undefined, optional @@ -1996,6 +2095,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatus listeners?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatusAPIServerElbListenersItems0] + loadBalancerIPAddressType?: "ipv4" | "dualstack" | "dualstack-without-public-ipv4" + loadBalancerType?: "classic" | "elb" | "alb" | "nlb" name?: str @@ -2057,6 +2158,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatus Attributes ---------- + ipType : str, default is Undefined, optional + IPType is the IP address type for the target group. name : str, default is Undefined, required Name of the TargetGroup. Must be unique over the same group of listeners. port : int, default is Undefined, required @@ -2070,6 +2173,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatus """ + ipType?: str + name: str port: int @@ -2206,6 +2311,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatus health checks listeners : [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatusSecondaryAPIServerELBListenersItems0], default is Undefined, optional ClassicELBListeners is an array of classic elb listeners associated with the load balancer. There must be at least one. + loadBalancerIPAddressType : str, default is Undefined, optional + LoadBalancerIPAddressType specifies the IP address type for the load balancer. loadBalancerType : str, default is Undefined, optional LoadBalancerType sets the type for a load balancer. The default type is classic. name : str, default is Undefined, optional @@ -2238,6 +2345,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatus listeners?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatusSecondaryAPIServerELBListenersItems0] + loadBalancerIPAddressType?: "ipv4" | "dualstack" | "dualstack-without-public-ipv4" + loadBalancerType?: "classic" | "elb" | "alb" | "nlb" name?: str @@ -2299,6 +2408,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatus Attributes ---------- + ipType : str, default is Undefined, optional + IPType is the IP address type for the target group. name : str, default is Undefined, required Name of the TargetGroup. Must be unique over the same group of listeners. port : int, default is Undefined, required @@ -2312,6 +2423,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneStatusNetworkStatus """ + ipType?: str + name: str port: int diff --git a/cluster-api-provider-aws/v1beta2/controlplane_clusterx_k8s_io_v1beta2_a_w_s_managed_control_plane_template.k b/cluster-api-provider-aws/v1beta2/controlplane_clusterx_k8s_io_v1beta2_a_w_s_managed_control_plane_template.k index dd41eb1d..78bf5ba8 100644 --- a/cluster-api-provider-aws/v1beta2/controlplane_clusterx_k8s_io_v1beta2_a_w_s_managed_control_plane_template.k +++ b/cluster-api-provider-aws/v1beta2/controlplane_clusterx_k8s_io_v1beta2_a_w_s_managed_control_plane_template.k @@ -69,6 +69,9 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat ---------- accessConfig : ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessConfig, default is Undefined, optional access config + accessEntries : [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0], default is Undefined, optional + AccessEntries specifies the access entries for the cluster + Access entries require AuthenticationMode to be either "api" or "api_and_config_map" additionalTags : {str:str}, default is Undefined, optional AdditionalTags is an optional set of tags to add to AWS resources managed by the AWS provider, in addition to the ones added by default. @@ -190,6 +193,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat accessConfig?: ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessConfig + accessEntries?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0] + additionalTags?: {str:str} addons?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAddonsItems0] @@ -280,6 +285,83 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat bootstrapClusterCreatorAdminPermissions?: bool = True +schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0: + r""" + AccessEntry represents an AWS EKS access entry for IAM principals + + Attributes + ---------- + accessPolicies : [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0AccessPoliciesItems0], default is Undefined, optional + AccessPolicies specifies the policies to associate with this access entry + Cannot be specified if Type is "ec2_linux" or "ec2_windows" + kubernetesGroups : [str], default is Undefined, optional + KubernetesGroups represents the Kubernetes groups for the access entry + Cannot be specified if Type is "ec2_linux" or "ec2_windows" + principalARN : str, default is Undefined, required + PrincipalARN is the Amazon Resource Name (ARN) of the IAM principal + $type : str, default is "standard", optional + Type is the type of access entry. Defaults to standard if not specified. + username : str, default is Undefined, optional + Username is the username for the access entry + """ + + + accessPolicies?: [ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0AccessPoliciesItems0] + + kubernetesGroups?: [str] + + principalARN: str + + $type?: "standard" | "ec2_linux" | "ec2_windows" | "fargate_linux" | "ec2" | "hybrid_linux" | "hyperpod_linux" = "standard" + + username?: str + + + check: + len(accessPolicies) <= 20 if accessPolicies + + +schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0AccessPoliciesItems0: + r""" + AccessPolicyReference represents a reference to an AWS EKS access policy + + Attributes + ---------- + accessScope : ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0AccessPoliciesItems0AccessScope, default is Undefined, required + access scope + policyARN : str, default is Undefined, required + PolicyARN is the Amazon Resource Name (ARN) of the access policy + """ + + + accessScope: ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0AccessPoliciesItems0AccessScope + + policyARN: str + + +schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAccessEntriesItems0AccessPoliciesItems0AccessScope: + r""" + AccessScope specifies the scope for the policy + + Attributes + ---------- + namespaces : [str], default is Undefined, optional + Namespaces are the namespaces for the access scope + Only valid when Type is namespace + $type : str, default is "cluster", required + Type is the type of access scope. Defaults to "cluster". + """ + + + namespaces?: [str] + + $type: "cluster" | "namespace" = "cluster" + + + check: + len(namespaces) >= 1 if namespaces + + schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecAddonsItems0: r""" Addon represents a EKS addon. @@ -329,6 +411,7 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat allowedCIDRBlocks : [str], default is Undefined, optional AllowedCIDRBlocks is a list of CIDR blocks allowed to access the bastion host. They are set as ingress rules for the Bastion host's Security Group (defaults to 0.0.0.0/0). + If the cluster has IPv6 enabled, defaults to ::/0 and 0.0.0.0/0. ami : str, default is Undefined, optional AMI will use the specified AMI to boot the bastion. If not specified, the AMI will default to one picked out in public space. @@ -759,10 +842,8 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat ipv6CidrBlock : str, default is Undefined, optional IPv6CidrBlock is the IPv6 CIDR block to be used when the provider creates a managed VPC. A subnet can have an IPv4 and an IPv6 address. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. isIpv6 : bool, default is Undefined, optional - IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with a VPC that has IPv6 enabled. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. + IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with an IPv6 CIDR. isPublic : bool, default is Undefined, optional IsPublic defines the subnet as a public subnet. A subnet is public when it is associated with a route table that has a route to an internet gateway. natGatewayId : str, default is Undefined, optional @@ -962,8 +1043,7 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplateSpecNetworkVpcIPV6: r""" - IPv6 contains ipv6 specific settings for the network. Supported only in managed clusters. - This field cannot be set on AWSCluster object. + IPv6 contains ipv6 specific settings for the network. Attributes ---------- @@ -1005,6 +1085,7 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -1030,6 +1111,7 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -1161,9 +1243,9 @@ schema ControlplaneClusterxK8sIoV1beta2AWSManagedControlPlaneTemplateSpecTemplat Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $ are reduced + the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". + "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_controller_identity.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_controller_identity.k new file mode 100644 index 00000000..14240de4 --- /dev/null +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_controller_identity.k @@ -0,0 +1,118 @@ +""" +This file was generated by the KCL auto-gen tool. DO NOT EDIT. +Editing this file might prove futile when you re-run the KCL auto-gen generate command. +""" +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema AWSClusterControllerIdentity: + r""" + AWSClusterControllerIdentity is the Schema for the awsclustercontrolleridentities API + It is used to grant access to use Cluster API Provider AWS Controller credentials. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta2", required + APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is "AWSClusterControllerIdentity", required + Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metadata : v1.ObjectMeta, default is Undefined, optional + metadata + spec : InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta2" = "infrastructure.cluster.x-k8s.io/v1beta2" + + kind: "AWSClusterControllerIdentity" = "AWSClusterControllerIdentity" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpec + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpec: + r""" + Spec for this AWSClusterControllerIdentity. + + Attributes + ---------- + allowedNamespaces : InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespaces, default is Undefined, optional + allowed namespaces + """ + + + allowedNamespaces?: InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespaces + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespaces: + r""" + AllowedNamespaces is used to identify which namespaces are allowed to use the identity from. + Namespaces can be selected either using an array of namespaces or with label selector. + An empty allowedNamespaces object indicates that AWSClusters can use this identity from any namespace. + If this object is nil, no namespaces will be allowed (default behaviour, if this field is not provided) + A namespace should be either in the NamespaceList or match with Selector to use the identity. + + Attributes + ---------- + list : [str], default is Undefined, optional + An nil or empty list indicates that AWSClusters cannot use the identity from any namespace. + selector : InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespacesSelector, default is Undefined, optional + selector + """ + + + list?: [str] + + selector?: InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespacesSelector + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespacesSelector: + r""" + An empty selector indicates that AWSClusters cannot use this + AWSClusterIdentity from any namespace. + + Attributes + ---------- + matchExpressions : [InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0], default is Undefined, optional + matchExpressions is a list of label selector requirements. The requirements are ANDed. + matchLabels : {str:str}, default is Undefined, optional + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + """ + + + matchExpressions?: [InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0] + + matchLabels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterControllerIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0: + r""" + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + + Attributes + ---------- + key : str, default is Undefined, required + key is the label key that the selector applies to. + operator : str, default is Undefined, required + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + values : [str], default is Undefined, optional + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + """ + + + key: str + + operator: str + + values?: [str] + + diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_role_identity.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_role_identity.k new file mode 100644 index 00000000..07821e48 --- /dev/null +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_role_identity.k @@ -0,0 +1,184 @@ +""" +This file was generated by the KCL auto-gen tool. DO NOT EDIT. +Editing this file might prove futile when you re-run the KCL auto-gen generate command. +""" +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema AWSClusterRoleIdentity: + r""" + AWSClusterRoleIdentity is the Schema for the awsclusterroleidentities API + It is used to assume a role using the provided sourceRef. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta2", required + APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is "AWSClusterRoleIdentity", required + Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metadata : v1.ObjectMeta, default is Undefined, optional + metadata + spec : InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta2" = "infrastructure.cluster.x-k8s.io/v1beta2" + + kind: "AWSClusterRoleIdentity" = "AWSClusterRoleIdentity" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpec + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpec: + r""" + Spec for this AWSClusterRoleIdentity. + + Attributes + ---------- + allowedNamespaces : InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespaces, default is Undefined, optional + allowed namespaces + durationSeconds : int, default is Undefined, optional + The duration, in seconds, of the role session before it is renewed. + externalID : str, default is Undefined, optional + A unique identifier that might be required when you assume a role in another account. + If the administrator of the account to which the role belongs provided you with an + external ID, then provide that value in the ExternalId parameter. This value can be + any string, such as a passphrase or account number. A cross-account role is usually + set up to trust everyone in an account. Therefore, the administrator of the trusting + account might send an external ID to the administrator of the trusted account. That + way, only someone with the ID can assume the role, rather than everyone in the + account. For more information about the external ID, see How to Use an External ID + When Granting Access to Your AWS Resources to a Third Party in the IAM User Guide. + inlinePolicy : str, default is Undefined, optional + An IAM policy as a JSON-encoded string that you want to use as an inline session policy. + policyARNs : [str], default is Undefined, optional + The Amazon Resource Names (ARNs) of the IAM managed policies that you want + to use as managed session policies. + The policies must exist in the same account as the role. + roleARN : str, default is Undefined, required + The Amazon Resource Name (ARN) of the role to assume. + sessionName : str, default is Undefined, optional + An identifier for the assumed role session + sourceIdentityRef : InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecSourceIdentityRef, default is Undefined, optional + source identity ref + """ + + + allowedNamespaces?: InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespaces + + durationSeconds?: int + + externalID?: str + + inlinePolicy?: str + + policyARNs?: [str] + + roleARN: str + + sessionName?: str + + sourceIdentityRef?: InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecSourceIdentityRef + + + check: + durationSeconds <= 43200 if durationSeconds not in [None, Undefined] + durationSeconds >= 900 if durationSeconds not in [None, Undefined] + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespaces: + r""" + AllowedNamespaces is used to identify which namespaces are allowed to use the identity from. + Namespaces can be selected either using an array of namespaces or with label selector. + An empty allowedNamespaces object indicates that AWSClusters can use this identity from any namespace. + If this object is nil, no namespaces will be allowed (default behaviour, if this field is not provided) + A namespace should be either in the NamespaceList or match with Selector to use the identity. + + Attributes + ---------- + list : [str], default is Undefined, optional + An nil or empty list indicates that AWSClusters cannot use the identity from any namespace. + selector : InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespacesSelector, default is Undefined, optional + selector + """ + + + list?: [str] + + selector?: InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespacesSelector + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespacesSelector: + r""" + An empty selector indicates that AWSClusters cannot use this + AWSClusterIdentity from any namespace. + + Attributes + ---------- + matchExpressions : [InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0], default is Undefined, optional + matchExpressions is a list of label selector requirements. The requirements are ANDed. + matchLabels : {str:str}, default is Undefined, optional + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + """ + + + matchExpressions?: [InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0] + + matchLabels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0: + r""" + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + + Attributes + ---------- + key : str, default is Undefined, required + key is the label key that the selector applies to. + operator : str, default is Undefined, required + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + values : [str], default is Undefined, optional + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + """ + + + key: str + + operator: str + + values?: [str] + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterRoleIdentitySpecSourceIdentityRef: + r""" + SourceIdentityRef is a reference to another identity which will be chained to do + role assumption. All identity types are accepted. + + Attributes + ---------- + kind : str, default is Undefined, required + Kind of the identity. + name : str, default is Undefined, required + Name of the identity. + """ + + + kind: "AWSClusterControllerIdentity" | "AWSClusterRoleIdentity" | "AWSClusterStaticIdentity" + + name: str + + + check: + len(name) >= 1 + + diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_static_identity.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_static_identity.k new file mode 100644 index 00000000..0f4522f0 --- /dev/null +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta1_a_w_s_cluster_static_identity.k @@ -0,0 +1,126 @@ +""" +This file was generated by the KCL auto-gen tool. DO NOT EDIT. +Editing this file might prove futile when you re-run the KCL auto-gen generate command. +""" +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema AWSClusterStaticIdentity: + r""" + AWSClusterStaticIdentity is the Schema for the awsclusterstaticidentities API + It represents a reference to an AWS access key ID and secret access key, stored in a secret. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta2", required + APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is "AWSClusterStaticIdentity", required + Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + metadata : v1.ObjectMeta, default is Undefined, optional + metadata + spec : InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta2" = "infrastructure.cluster.x-k8s.io/v1beta2" + + kind: "AWSClusterStaticIdentity" = "AWSClusterStaticIdentity" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpec + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpec: + r""" + Spec for this AWSClusterStaticIdentity + + Attributes + ---------- + allowedNamespaces : InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespaces, default is Undefined, optional + allowed namespaces + secretRef : str, default is Undefined, required + Reference to a secret containing the credentials. The secret should + contain the following data keys: + AccessKeyID: AKIAIOSFODNN7EXAMPLE + SecretAccessKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY + SessionToken: Optional + """ + + + allowedNamespaces?: InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespaces + + secretRef: str + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespaces: + r""" + AllowedNamespaces is used to identify which namespaces are allowed to use the identity from. + Namespaces can be selected either using an array of namespaces or with label selector. + An empty allowedNamespaces object indicates that AWSClusters can use this identity from any namespace. + If this object is nil, no namespaces will be allowed (default behaviour, if this field is not provided) + A namespace should be either in the NamespaceList or match with Selector to use the identity. + + Attributes + ---------- + list : [str], default is Undefined, optional + An nil or empty list indicates that AWSClusters cannot use the identity from any namespace. + selector : InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespacesSelector, default is Undefined, optional + selector + """ + + + list?: [str] + + selector?: InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespacesSelector + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespacesSelector: + r""" + An empty selector indicates that AWSClusters cannot use this + AWSClusterIdentity from any namespace. + + Attributes + ---------- + matchExpressions : [InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0], default is Undefined, optional + matchExpressions is a list of label selector requirements. The requirements are ANDed. + matchLabels : {str:str}, default is Undefined, optional + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + """ + + + matchExpressions?: [InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0] + + matchLabels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1beta1AWSClusterStaticIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0: + r""" + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + + Attributes + ---------- + key : str, default is Undefined, required + key is the label key that the selector applies to. + operator : str, default is Undefined, required + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + values : [str], default is Undefined, optional + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + """ + + + key: str + + operator: str + + values?: [str] + + diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_cluster.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_cluster.k index 00cd8926..00a02aa7 100644 --- a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_cluster.k +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_cluster.k @@ -129,6 +129,7 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecBastion: allowedCIDRBlocks : [str], default is Undefined, optional AllowedCIDRBlocks is a list of CIDR blocks allowed to access the bastion host. They are set as ingress rules for the Bastion host's Security Group (defaults to 0.0.0.0/0). + If the cluster has IPv6 enabled, defaults to ::/0 and 0.0.0.0/0. ami : str, default is Undefined, optional AMI will use the specified AMI to boot the bastion. If not specified, the AMI will default to one picked out in public space. @@ -223,6 +224,12 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecControlPlaneLoadBalancer: Scheme sets the scheme of the load balancer (defaults to internet-facing) subnets : [str], default is Undefined, optional Subnets sets the subnets that should be applied to the control plane load balancer (defaults to discovered subnets for managed VPCs or an empty set for unmanaged VPCs) + targetGroupIPType : str, default is Undefined, optional + TargetGroupIPType sets the IP address type for the target group. + Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless + the VPC has IPv6 enabled, in which case it defaults to ipv6. + This applies to the API server target group. + This field cannot be set if LoadBalancerType is classic or disabled. """ @@ -250,6 +257,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecControlPlaneLoadBalancer: subnets?: [str] + targetGroupIPType?: "ipv4" | "ipv6" + check: len(name) <= 32 if name @@ -270,6 +279,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecControlPlaneLoadBalancerA $protocol : str, default is "TCP", optional Protocol sets the protocol for the additional listener. Currently only TCP is supported. + targetGroupIPType : str, default is Undefined, optional + TargetGroupIPType sets the IP address type for the target group. + Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless + the VPC has IPv6 enabled, in which case it defaults to ipv6. + This field cannot be set if LoadBalancerType is classic or disabled. """ @@ -279,6 +293,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecControlPlaneLoadBalancerA $protocol?: "TCP" = "TCP" + targetGroupIPType?: "ipv4" | "ipv6" + check: port <= 65535 @@ -649,10 +665,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecNetworkSubnetsItems0: ipv6CidrBlock : str, default is Undefined, optional IPv6CidrBlock is the IPv6 CIDR block to be used when the provider creates a managed VPC. A subnet can have an IPv4 and an IPv6 address. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. isIpv6 : bool, default is Undefined, optional - IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with a VPC that has IPv6 enabled. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. + IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with an IPv6 CIDR. isPublic : bool, default is Undefined, optional IsPublic defines the subnet as a public subnet. A subnet is public when it is associated with a route table that has a route to an internet gateway. natGatewayId : str, default is Undefined, optional @@ -852,8 +866,7 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecNetworkVpcElasticIPPool: schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecNetworkVpcIPV6: r""" - IPv6 contains ipv6 specific settings for the network. Supported only in managed clusters. - This field cannot be set on AWSCluster object. + IPv6 contains ipv6 specific settings for the network. Attributes ---------- @@ -895,6 +908,7 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecNetworkVpcIPV6IpamPool: The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -920,6 +934,7 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecNetworkVpcIpamPool: The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -1042,6 +1057,12 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecSecondaryControlPlaneLoad Scheme sets the scheme of the load balancer (defaults to internet-facing) subnets : [str], default is Undefined, optional Subnets sets the subnets that should be applied to the control plane load balancer (defaults to discovered subnets for managed VPCs or an empty set for unmanaged VPCs) + targetGroupIPType : str, default is Undefined, optional + TargetGroupIPType sets the IP address type for the target group. + Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless + the VPC has IPv6 enabled, in which case it defaults to ipv6. + This applies to the API server target group. + This field cannot be set if LoadBalancerType is classic or disabled. """ @@ -1069,6 +1090,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecSecondaryControlPlaneLoad subnets?: [str] + targetGroupIPType?: "ipv4" | "ipv6" + check: len(name) <= 32 if name @@ -1089,6 +1112,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecSecondaryControlPlaneLoad $protocol : str, default is "TCP", optional Protocol sets the protocol for the additional listener. Currently only TCP is supported. + targetGroupIPType : str, default is Undefined, optional + TargetGroupIPType sets the IP address type for the target group. + Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless + the VPC has IPv6 enabled, in which case it defaults to ipv6. + This field cannot be set if LoadBalancerType is classic or disabled. """ @@ -1098,6 +1126,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterSpecSecondaryControlPlaneLoad $protocol?: "TCP" = "TCP" + targetGroupIPType?: "ipv4" | "ipv6" + check: port <= 65535 @@ -1286,6 +1316,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusBastion: ---------- addresses : [InfrastructureClusterxK8sIoV1beta2AWSClusterStatusBastionAddressesItems0], default is Undefined, optional Addresses contains the AWS instance associated addresses. + assignPrimaryIPv6 : str, default is Undefined, optional + AssignPrimaryIPv6 specifies whether to enable assigning a primary IPv6 address to the primary network Interface. availabilityZone : str, default is Undefined, optional Availability zone of instance capacityReservationId : str, default is Undefined, optional @@ -1323,6 +1355,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusBastion: instance metadata options instanceState : str, default is Undefined, optional The current state of the instance. + ipv6Address : str, default is Undefined, optional + The IPv6 address assigned to the instance. marketType : str, default is Undefined, optional MarketType specifies the type of market for the EC2 instance. Valid values include: "OnDemand" (default): The instance runs as a standard OnDemand instance. @@ -1376,6 +1410,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusBastion: addresses?: [InfrastructureClusterxK8sIoV1beta2AWSClusterStatusBastionAddressesItems0] + assignPrimaryIPv6?: str + availabilityZone?: str capacityReservationId?: str @@ -1404,6 +1440,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusBastion: instanceState?: str + ipv6Address?: str + marketType?: "OnDemand" | "Spot" | "CapacityBlock" networkInterfaceType?: str @@ -1526,6 +1564,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusBastionInstanceMetadata If you specify a value of disabled, you cannot access your instance metadata. Default: enabled + httpProtocolIpv6 : str, default is "disabled", optional + Enables or disables the IPv6 endpoint for the instance metadata service. + This applies only if you enabled the HTTP metadata endpoint. + + Default: disabled httpPutResponseHopLimit : int, default is 1, optional The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. @@ -1558,6 +1601,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusBastionInstanceMetadata httpEndpoint?: "enabled" | "disabled" = "enabled" + httpProtocolIpv6?: "enabled" | "disabled" = "disabled" + httpPutResponseHopLimit?: int = 1 httpTokens?: "optional" | "required" = "optional" @@ -1817,6 +1862,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusAPIServerE health checks listeners : [InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusAPIServerElbListenersItems0], default is Undefined, optional ClassicELBListeners is an array of classic elb listeners associated with the load balancer. There must be at least one. + loadBalancerIPAddressType : str, default is Undefined, optional + LoadBalancerIPAddressType specifies the IP address type for the load balancer. loadBalancerType : str, default is Undefined, optional LoadBalancerType sets the type for a load balancer. The default type is classic. name : str, default is Undefined, optional @@ -1849,6 +1896,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusAPIServerE listeners?: [InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusAPIServerElbListenersItems0] + loadBalancerIPAddressType?: "ipv4" | "dualstack" | "dualstack-without-public-ipv4" + loadBalancerType?: "classic" | "elb" | "alb" | "nlb" name?: str @@ -1910,6 +1959,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusAPIServerE Attributes ---------- + ipType : str, default is Undefined, optional + IPType is the IP address type for the target group. name : str, default is Undefined, required Name of the TargetGroup. Must be unique over the same group of listeners. port : int, default is Undefined, required @@ -1923,6 +1974,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusAPIServerE """ + ipType?: str + name: str port: int @@ -2059,6 +2112,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusSecondaryA health checks listeners : [InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusSecondaryAPIServerELBListenersItems0], default is Undefined, optional ClassicELBListeners is an array of classic elb listeners associated with the load balancer. There must be at least one. + loadBalancerIPAddressType : str, default is Undefined, optional + LoadBalancerIPAddressType specifies the IP address type for the load balancer. loadBalancerType : str, default is Undefined, optional LoadBalancerType sets the type for a load balancer. The default type is classic. name : str, default is Undefined, optional @@ -2091,6 +2146,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusSecondaryA listeners?: [InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusSecondaryAPIServerELBListenersItems0] + loadBalancerIPAddressType?: "ipv4" | "dualstack" | "dualstack-without-public-ipv4" + loadBalancerType?: "classic" | "elb" | "alb" | "nlb" name?: str @@ -2152,6 +2209,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusSecondaryA Attributes ---------- + ipType : str, default is Undefined, optional + IPType is the IP address type for the target group. name : str, default is Undefined, required Name of the TargetGroup. Must be unique over the same group of listeners. port : int, default is Undefined, required @@ -2165,6 +2224,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterStatusNetworkStatusSecondaryA """ + ipType?: str + name: str port: int diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_cluster_template.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_cluster_template.k index 1b2a4e5d..88ba2e70 100644 --- a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_cluster_template.k +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_cluster_template.k @@ -182,6 +182,7 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecBasti allowedCIDRBlocks : [str], default is Undefined, optional AllowedCIDRBlocks is a list of CIDR blocks allowed to access the bastion host. They are set as ingress rules for the Bastion host's Security Group (defaults to 0.0.0.0/0). + If the cluster has IPv6 enabled, defaults to ::/0 and 0.0.0.0/0. ami : str, default is Undefined, optional AMI will use the specified AMI to boot the bastion. If not specified, the AMI will default to one picked out in public space. @@ -276,6 +277,12 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecContr Scheme sets the scheme of the load balancer (defaults to internet-facing) subnets : [str], default is Undefined, optional Subnets sets the subnets that should be applied to the control plane load balancer (defaults to discovered subnets for managed VPCs or an empty set for unmanaged VPCs) + targetGroupIPType : str, default is Undefined, optional + TargetGroupIPType sets the IP address type for the target group. + Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless + the VPC has IPv6 enabled, in which case it defaults to ipv6. + This applies to the API server target group. + This field cannot be set if LoadBalancerType is classic or disabled. """ @@ -303,6 +310,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecContr subnets?: [str] + targetGroupIPType?: "ipv4" | "ipv6" + check: len(name) <= 32 if name @@ -323,6 +332,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecContr $protocol : str, default is "TCP", optional Protocol sets the protocol for the additional listener. Currently only TCP is supported. + targetGroupIPType : str, default is Undefined, optional + TargetGroupIPType sets the IP address type for the target group. + Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless + the VPC has IPv6 enabled, in which case it defaults to ipv6. + This field cannot be set if LoadBalancerType is classic or disabled. """ @@ -332,6 +346,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecContr $protocol?: "TCP" = "TCP" + targetGroupIPType?: "ipv4" | "ipv6" + check: port <= 65535 @@ -702,10 +718,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecNetwo ipv6CidrBlock : str, default is Undefined, optional IPv6CidrBlock is the IPv6 CIDR block to be used when the provider creates a managed VPC. A subnet can have an IPv4 and an IPv6 address. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. isIpv6 : bool, default is Undefined, optional - IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with a VPC that has IPv6 enabled. - IPv6 is only supported in managed clusters, this field cannot be set on AWSCluster object. + IsIPv6 defines the subnet as an IPv6 subnet. A subnet is IPv6 when it is associated with an IPv6 CIDR. isPublic : bool, default is Undefined, optional IsPublic defines the subnet as a public subnet. A subnet is public when it is associated with a route table that has a route to an internet gateway. natGatewayId : str, default is Undefined, optional @@ -905,8 +919,7 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecNetwo schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecNetworkVpcIPV6: r""" - IPv6 contains ipv6 specific settings for the network. Supported only in managed clusters. - This field cannot be set on AWSCluster object. + IPv6 contains ipv6 specific settings for the network. Attributes ---------- @@ -948,6 +961,7 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecNetwo The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -973,6 +987,7 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecNetwo The netmask length of the IPv4 CIDR you want to allocate to VPC from an Amazon VPC IP Address Manager (IPAM) pool. Defaults to /16 for IPv4 if not specified. + Defaults to /56 for IPv6 if not specified. """ @@ -1095,6 +1110,12 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecSecon Scheme sets the scheme of the load balancer (defaults to internet-facing) subnets : [str], default is Undefined, optional Subnets sets the subnets that should be applied to the control plane load balancer (defaults to discovered subnets for managed VPCs or an empty set for unmanaged VPCs) + targetGroupIPType : str, default is Undefined, optional + TargetGroupIPType sets the IP address type for the target group. + Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless + the VPC has IPv6 enabled, in which case it defaults to ipv6. + This applies to the API server target group. + This field cannot be set if LoadBalancerType is classic or disabled. """ @@ -1122,6 +1143,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecSecon subnets?: [str] + targetGroupIPType?: "ipv4" | "ipv6" + check: len(name) <= 32 if name @@ -1142,6 +1165,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecSecon $protocol : str, default is "TCP", optional Protocol sets the protocol for the additional listener. Currently only TCP is supported. + targetGroupIPType : str, default is Undefined, optional + TargetGroupIPType sets the IP address type for the target group. + Valid values are ipv4 and ipv6. If not specified, defaults to ipv4 unless + the VPC has IPv6 enabled, in which case it defaults to ipv6. + This field cannot be set if LoadBalancerType is classic or disabled. """ @@ -1151,6 +1179,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSClusterTemplateSpecTemplateSpecSecon $protocol?: "TCP" = "TCP" + targetGroupIPType?: "ipv4" | "ipv6" + check: port <= 65535 diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine.k index 42d4310b..2dde7496 100644 --- a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine.k +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine.k @@ -54,6 +54,14 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachineSpec: AWSMachine's value takes precedence. ami : InfrastructureClusterxK8sIoV1beta2AWSMachineSpecAmi, default is Undefined, optional ami + assignPrimaryIPv6 : str, default is Undefined, optional + AssignPrimaryIPv6 specifies whether to enable assigning a primary IPv6 address to the primary network Interface. + When set to enabled, the instance will be assigned a primary IPv6 address from the subnet's IPv6 CIDR block. + This is required when registering instances by ID to IPv6 target groups of dual-stack load balancers. + + When not specified, the default value varies based on the subnet that the instance is launched in: + - disabled if subnet is ipv4 only + - enabled if subnet is ipv6 only or dual-stack capacityReservationId : str, default is Undefined, optional CapacityReservationID specifies the target Capacity Reservation into which the instance should be launched. capacityReservationPreference : str, default is Undefined, optional @@ -169,6 +177,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachineSpec: ami?: InfrastructureClusterxK8sIoV1beta2AWSMachineSpecAmi + assignPrimaryIPv6?: "enabled" | "disabled" + capacityReservationId?: str capacityReservationPreference?: str @@ -527,6 +537,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachineSpecInstanceMetadataOptions: If you specify a value of disabled, you cannot access your instance metadata. Default: enabled + httpProtocolIpv6 : str, default is "disabled", optional + Enables or disables the IPv6 endpoint for the instance metadata service. + This applies only if you enabled the HTTP metadata endpoint. + + Default: disabled httpPutResponseHopLimit : int, default is 1, optional The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. @@ -559,6 +574,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachineSpecInstanceMetadataOptions: httpEndpoint?: "enabled" | "disabled" = "enabled" + httpProtocolIpv6?: "enabled" | "disabled" = "disabled" + httpPutResponseHopLimit?: int = 1 httpTokens?: "optional" | "required" = "optional" diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine_pool.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine_pool.k index 62f5653c..8baf6d4c 100644 --- a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine_pool.k +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine_pool.k @@ -304,6 +304,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachinePoolSpecAwsLaunchTemplateInst If you specify a value of disabled, you cannot access your instance metadata. Default: enabled + httpProtocolIpv6 : str, default is "disabled", optional + Enables or disables the IPv6 endpoint for the instance metadata service. + This applies only if you enabled the HTTP metadata endpoint. + + Default: disabled httpPutResponseHopLimit : int, default is 1, optional The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. @@ -336,6 +341,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachinePoolSpecAwsLaunchTemplateInst httpEndpoint?: "enabled" | "disabled" = "enabled" + httpProtocolIpv6?: "enabled" | "disabled" = "disabled" + httpPutResponseHopLimit?: int = 1 httpTokens?: "optional" | "required" = "optional" diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine_template.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine_template.k index 952ea8d8..bba02563 100644 --- a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine_template.k +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_machine_template.k @@ -111,6 +111,14 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachineTemplateSpecTemplateSpec: AWSMachine's value takes precedence. ami : InfrastructureClusterxK8sIoV1beta2AWSMachineTemplateSpecTemplateSpecAmi, default is Undefined, optional ami + assignPrimaryIPv6 : str, default is Undefined, optional + AssignPrimaryIPv6 specifies whether to enable assigning a primary IPv6 address to the primary network Interface. + When set to enabled, the instance will be assigned a primary IPv6 address from the subnet's IPv6 CIDR block. + This is required when registering instances by ID to IPv6 target groups of dual-stack load balancers. + + When not specified, the default value varies based on the subnet that the instance is launched in: + - disabled if subnet is ipv4 only + - enabled if subnet is ipv6 only or dual-stack capacityReservationId : str, default is Undefined, optional CapacityReservationID specifies the target Capacity Reservation into which the instance should be launched. capacityReservationPreference : str, default is Undefined, optional @@ -226,6 +234,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachineTemplateSpecTemplateSpec: ami?: InfrastructureClusterxK8sIoV1beta2AWSMachineTemplateSpecTemplateSpecAmi + assignPrimaryIPv6?: "enabled" | "disabled" + capacityReservationId?: str capacityReservationPreference?: str @@ -584,6 +594,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachineTemplateSpecTemplateSpecInsta If you specify a value of disabled, you cannot access your instance metadata. Default: enabled + httpProtocolIpv6 : str, default is "disabled", optional + Enables or disables the IPv6 endpoint for the instance metadata service. + This applies only if you enabled the HTTP metadata endpoint. + + Default: disabled httpPutResponseHopLimit : int, default is 1, optional The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. @@ -616,6 +631,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSMachineTemplateSpecTemplateSpecInsta httpEndpoint?: "enabled" | "disabled" = "enabled" + httpProtocolIpv6?: "enabled" | "disabled" = "disabled" + httpPutResponseHopLimit?: int = 1 httpTokens?: "optional" | "required" = "optional" diff --git a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_managed_machine_pool.k b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_managed_machine_pool.k index 4a683920..4e52c293 100644 --- a/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_managed_machine_pool.k +++ b/cluster-api-provider-aws/v1beta2/infrastructure_clusterx_k8s_io_v1beta2_a_w_s_managed_machine_pool.k @@ -353,6 +353,11 @@ schema InfrastructureClusterxK8sIoV1beta2AWSManagedMachinePoolSpecAwsLaunchTempl If you specify a value of disabled, you cannot access your instance metadata. Default: enabled + httpProtocolIpv6 : str, default is "disabled", optional + Enables or disables the IPv6 endpoint for the instance metadata service. + This applies only if you enabled the HTTP metadata endpoint. + + Default: disabled httpPutResponseHopLimit : int, default is 1, optional The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. @@ -385,6 +390,8 @@ schema InfrastructureClusterxK8sIoV1beta2AWSManagedMachinePoolSpecAwsLaunchTempl httpEndpoint?: "enabled" | "disabled" = "enabled" + httpProtocolIpv6?: "enabled" | "disabled" = "disabled" + httpPutResponseHopLimit?: int = 1 httpTokens?: "optional" | "required" = "optional"