From 440c0f793974a6f3a556dbe251022e0505138b2c Mon Sep 17 00:00:00 2001 From: peefy Date: Mon, 11 Dec 2023 17:20:12 +0800 Subject: [PATCH] feat: add cluster-api-provider-vsphere-module modules Signed-off-by: peefy --- README.md | 13 + .../crds/cluster-api-provider-vsphere.yaml | 17267 ++++++++++++++++ cluster-api-provider-vsphere/kcl.mod | 7 + cluster-api-provider-vsphere/kcl.mod.lock | 9 + ...projectcalico_org_v1_b_g_p_configuration.k | 215 + .../v1/crd_projectcalico_org_v1_b_g_p_peer.k | 119 + .../crd_projectcalico_org_v1_block_affinity.k | 59 + ..._projectcalico_org_v1_calico_node_status.k | 363 + ...projectcalico_org_v1_cluster_information.k | 63 + ...projectcalico_org_v1_felix_configuration.k | 601 + ...ojectcalico_org_v1_global_network_policy.k | 747 + ..._projectcalico_org_v1_global_network_set.k | 47 + .../crd_projectcalico_org_v1_host_endpoint.k | 92 + .../crd_projectcalico_org_v1_ip_a_m_block.k | 97 + .../crd_projectcalico_org_v1_ip_a_m_config.k | 60 + .../crd_projectcalico_org_v1_ip_a_m_handle.k | 55 + .../v1/crd_projectcalico_org_v1_ip_pool.k | 105 + .../crd_projectcalico_org_v1_ip_reservation.k | 47 + ...co_org_v1_kube_controllers_configuration.k | 375 + .../crd_projectcalico_org_v1_network_policy.k | 731 + .../v1/crd_projectcalico_org_v1_network_set.k | 47 + ...m_v1alpha1_cluster_virtual_machine_image.k | 281 + ...re_com_v1alpha1_content_library_provider.k | 51 + ...rator_vmware_com_v1alpha1_content_source.k | 77 + ...ware_com_v1alpha1_content_source_binding.k | 55 + ...ator_vmware_com_v1alpha1_virtual_machine.k | 548 + ...mware_com_v1alpha1_virtual_machine_class.k | 268 + ...m_v1alpha1_virtual_machine_class_binding.k | 55 + ...mware_com_v1alpha1_virtual_machine_image.k | 281 + ...v1alpha1_virtual_machine_publish_request.k | 324 + ...are_com_v1alpha1_virtual_machine_service.k | 147 + ...pha1_virtual_machine_set_resource_policy.k | 192 + ..._vmware_com_v1alpha1_web_console_request.k | 81 + ...m_v1alpha2_cluster_virtual_machine_image.k | 243 + ...ator_vmware_com_v1alpha2_virtual_machine.k | 2104 ++ ...mware_com_v1alpha2_virtual_machine_class.k | 341 + ...mware_com_v1alpha2_virtual_machine_image.k | 243 + ...v1alpha2_virtual_machine_publish_request.k | 337 + ...are_com_v1alpha2_virtual_machine_service.k | 147 + ...pha2_virtual_machine_set_resource_policy.k | 164 + ...pha2_virtual_machine_web_console_request.k | 74 + ..._k8s_io_v1alpha3_h_a_proxy_load_balancer.k | 296 + ...lusterx_k8s_io_v1alpha3_v_sphere_cluster.k | 516 + ...8s_io_v1alpha3_v_sphere_cluster_identity.k | 166 + ...k8s_io_v1alpha3_v_sphere_deployment_zone.k | 134 + ..._k8s_io_v1alpha3_v_sphere_failure_domain.k | 156 + ...lusterx_k8s_io_v1alpha3_v_sphere_machine.k | 364 + ...8s_io_v1alpha3_v_sphere_machine_template.k | 351 + ...ure_clusterx_k8s_io_v1alpha3_v_sphere_vm.k | 400 + ...lusterx_k8s_io_v1alpha4_v_sphere_cluster.k | 178 + ...8s_io_v1alpha4_v_sphere_cluster_identity.k | 166 + ...8s_io_v1alpha4_v_sphere_cluster_template.k | 128 + ...k8s_io_v1alpha4_v_sphere_deployment_zone.k | 134 + ..._k8s_io_v1alpha4_v_sphere_failure_domain.k | 156 + ...lusterx_k8s_io_v1alpha4_v_sphere_machine.k | 364 + ...8s_io_v1alpha4_v_sphere_machine_template.k | 294 + ...ure_clusterx_k8s_io_v1alpha4_v_sphere_vm.k | 400 + ...clusterx_k8s_io_v1beta1_v_sphere_cluster.k | 251 + ...k8s_io_v1beta1_v_sphere_cluster_identity.k | 165 + ...k8s_io_v1beta1_v_sphere_cluster_template.k | 197 + ..._k8s_io_v1beta1_v_sphere_deployment_zone.k | 133 + ...x_k8s_io_v1beta1_v_sphere_failure_domain.k | 157 + ...clusterx_k8s_io_v1beta1_v_sphere_machine.k | 539 + ...k8s_io_v1beta1_v_sphere_machine_template.k | 469 + ...ture_clusterx_k8s_io_v1beta1_v_sphere_vm.k | 587 + ..._k8s_io_v1beta1_provider_service_account.k | 127 + ...clusterx_k8s_io_v1beta1_v_sphere_cluster.k | 147 + ...k8s_io_v1beta1_v_sphere_cluster_template.k | 93 + ...clusterx_k8s_io_v1beta1_v_sphere_machine.k | 200 + ...k8s_io_v1beta1_v_sphere_machine_template.k | 126 + scripts/crd_to_kcl.sh | 65 + 71 files changed, 34591 insertions(+) create mode 100644 cluster-api-provider-vsphere/crds/cluster-api-provider-vsphere.yaml create mode 100644 cluster-api-provider-vsphere/kcl.mod create mode 100644 cluster-api-provider-vsphere/kcl.mod.lock create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_b_g_p_configuration.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_b_g_p_peer.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_block_affinity.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_calico_node_status.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_cluster_information.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_felix_configuration.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_global_network_policy.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_global_network_set.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_host_endpoint.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_block.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_config.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_handle.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_pool.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_reservation.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_kube_controllers_configuration.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_network_policy.k create mode 100644 cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_network_set.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_cluster_virtual_machine_image.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_library_provider.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_source.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_source_binding.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_class.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_class_binding.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_image.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_publish_request.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_service.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_set_resource_policy.k create mode 100644 cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_web_console_request.k create mode 100644 cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_cluster_virtual_machine_image.k create mode 100644 cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine.k create mode 100644 cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_class.k create mode 100644 cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_image.k create mode 100644 cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_publish_request.k create mode 100644 cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_service.k create mode 100644 cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_set_resource_policy.k create mode 100644 cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_web_console_request.k create mode 100644 cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_h_a_proxy_load_balancer.k create mode 100644 cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_cluster.k create mode 100644 cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_cluster_identity.k create mode 100644 cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_deployment_zone.k create mode 100644 cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_failure_domain.k create mode 100644 cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_machine.k create mode 100644 cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_machine_template.k create mode 100644 cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_vm.k create mode 100644 cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster.k create mode 100644 cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster_identity.k create mode 100644 cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster_template.k create mode 100644 cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_deployment_zone.k create mode 100644 cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_failure_domain.k create mode 100644 cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_machine.k create mode 100644 cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_machine_template.k create mode 100644 cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_vm.k create mode 100644 cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster.k create mode 100644 cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_identity.k create mode 100644 cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_template.k create mode 100644 cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_deployment_zone.k create mode 100644 cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_failure_domain.k create mode 100644 cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine.k create mode 100644 cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine_template.k create mode 100644 cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_vm.k create mode 100644 cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_provider_service_account.k create mode 100644 cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster.k create mode 100644 cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_template.k create mode 100644 cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine.k create mode 100644 cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine_template.k create mode 100755 scripts/crd_to_kcl.sh diff --git a/README.md b/README.md index 76557805..b8eaec8c 100644 --- a/README.md +++ b/README.md @@ -131,3 +131,16 @@ description = "This is my module." **At the same time, you cannot upload the same version module multiple times.** Once the version number of your module has been used, you will not be able to use this version number again. The only way to upload this module again is to upgrade the version number. +## Other Usages + +### Convert Kubernetes CRD to KCL Modules + +```shell +./scripts/crd_to_kcl +``` + +For example + +```shell +./scripts/crd_to_kcl.sh github.com/kubernetes-sigs/cluster-api-provider-vsphere +``` diff --git a/cluster-api-provider-vsphere/crds/cluster-api-provider-vsphere.yaml b/cluster-api-provider-vsphere/crds/cluster-api-provider-vsphere.yaml new file mode 100644 index 00000000..9435307b --- /dev/null +++ b/cluster-api-provider-vsphere/crds/cluster-api-provider-vsphere.yaml @@ -0,0 +1,17267 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: bgpconfigurations.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: BGPConfiguration + listKind: BGPConfigurationList + plural: bgpconfigurations + singular: bgpconfiguration + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: BGPConfiguration contains the configuration for any BGP routing. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: BGPConfigurationSpec contains the values of the BGP configuration. + properties: + asNumber: + description: 'ASNumber is the default AS number used by a node. [Default: + 64512]' + format: int32 + type: integer + bindMode: + description: BindMode indicates whether to listen for BGP connections + on all addresses (None) or only on the node's canonical IP address + Node.Spec.BGP.IPvXAddress (NodeIP). Default behaviour is to listen + for BGP connections on all addresses. + type: string + communities: + description: Communities is a list of BGP community values and their + arbitrary names for tagging routes. + items: + description: Community contains standard or large community value + and its name. + properties: + name: + description: Name given to community value. + type: string + value: + description: Value must be of format `aa:nn` or `aa:nn:mm`. + For standard community use `aa:nn` format, where `aa` and + `nn` are 16 bit number. For large community use `aa:nn:mm` + format, where `aa`, `nn` and `mm` are 32 bit number. Where, + `aa` is an AS Number, `nn` and `mm` are per-AS identifier. + pattern: ^(\d+):(\d+)$|^(\d+):(\d+):(\d+)$ + type: string + type: object + type: array + listenPort: + description: ListenPort is the port where BGP protocol should listen. + Defaults to 179 + maximum: 65535 + minimum: 1 + type: integer + logSeverityScreen: + description: 'LogSeverityScreen is the log severity above which logs + are sent to the stdout. [Default: INFO]' + type: string + nodeMeshMaxRestartTime: + description: Time to allow for software restart for node-to-mesh peerings. When + specified, this is configured as the graceful restart timeout. When + not specified, the BIRD default of 120s is used. This field can + only be set on the default BGPConfiguration instance and requires + that NodeMesh is enabled + type: string + nodeMeshPassword: + description: Optional BGP password for full node-to-mesh peerings. + This field can only be set on the default BGPConfiguration instance + and requires that NodeMesh is enabled + properties: + secretKeyRef: + description: Selects a key of a secret in the node pod's namespace. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + type: object + nodeToNodeMeshEnabled: + description: 'NodeToNodeMeshEnabled sets whether full node to node + BGP mesh is enabled. [Default: true]' + type: boolean + prefixAdvertisements: + description: PrefixAdvertisements contains per-prefix advertisement + configuration. + items: + description: PrefixAdvertisement configures advertisement properties + for the specified CIDR. + properties: + cidr: + description: CIDR for which properties should be advertised. + type: string + communities: + description: Communities can be list of either community names + already defined in `Specs.Communities` or community value + of format `aa:nn` or `aa:nn:mm`. For standard community use + `aa:nn` format, where `aa` and `nn` are 16 bit number. For + large community use `aa:nn:mm` format, where `aa`, `nn` and + `mm` are 32 bit number. Where,`aa` is an AS Number, `nn` and + `mm` are per-AS identifier. + items: + type: string + type: array + type: object + type: array + serviceClusterIPs: + description: ServiceClusterIPs are the CIDR blocks from which service + cluster IPs are allocated. If specified, Calico will advertise these + blocks, as well as any cluster IPs within them. + items: + description: ServiceClusterIPBlock represents a single allowed ClusterIP + CIDR block. + properties: + cidr: + type: string + type: object + type: array + serviceExternalIPs: + description: ServiceExternalIPs are the CIDR blocks for Kubernetes + Service External IPs. Kubernetes Service ExternalIPs will only be + advertised if they are within one of these blocks. + items: + description: ServiceExternalIPBlock represents a single allowed + External IP CIDR block. + properties: + cidr: + type: string + type: object + type: array + serviceLoadBalancerIPs: + description: ServiceLoadBalancerIPs are the CIDR blocks for Kubernetes + Service LoadBalancer IPs. Kubernetes Service status.LoadBalancer.Ingress + IPs will only be advertised if they are within one of these blocks. + items: + description: ServiceLoadBalancerIPBlock represents a single allowed + LoadBalancer IP CIDR block. + properties: + cidr: + type: string + type: object + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: bgppeers.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: BGPPeer + listKind: BGPPeerList + plural: bgppeers + singular: bgppeer + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: BGPPeerSpec contains the specification for a BGPPeer resource. + properties: + asNumber: + description: The AS Number of the peer. + format: int32 + type: integer + keepOriginalNextHop: + description: Option to keep the original nexthop field when routes + are sent to a BGP Peer. Setting "true" configures the selected BGP + Peers node to use the "next hop keep;" instead of "next hop self;"(default) + in the specific branch of the Node on "bird.cfg". + type: boolean + maxRestartTime: + description: Time to allow for software restart. When specified, + this is configured as the graceful restart timeout. When not specified, + the BIRD default of 120s is used. + type: string + node: + description: The node name identifying the Calico node instance that + is targeted by this peer. If this is not set, and no nodeSelector + is specified, then this BGP peer selects all nodes in the cluster. + type: string + nodeSelector: + description: Selector for the nodes that should have this peering. When + this is set, the Node field must be empty. + type: string + numAllowedLocalASNumbers: + description: Maximum number of local AS numbers that are allowed in + the AS path for received routes. This removes BGP loop prevention + and should only be used if absolutely necesssary. + format: int32 + type: integer + password: + description: Optional BGP password for the peerings generated by this + BGPPeer resource. + properties: + secretKeyRef: + description: Selects a key of a secret in the node pod's namespace. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + type: object + peerIP: + description: The IP address of the peer followed by an optional port + number to peer with. If port number is given, format should be `[]:port` + or `:` for IPv4. If optional port number is not set, + and this peer IP and ASNumber belongs to a calico/node with ListenPort + set in BGPConfiguration, then we use that port to peer. + type: string + peerSelector: + description: Selector for the remote nodes to peer with. When this + is set, the PeerIP and ASNumber fields must be empty. For each + peering between the local node and selected remote nodes, we configure + an IPv4 peering if both ends have NodeBGPSpec.IPv4Address specified, + and an IPv6 peering if both ends have NodeBGPSpec.IPv6Address specified. The + remote AS number comes from the remote node's NodeBGPSpec.ASNumber, + or the global default if that is not set. + type: string + sourceAddress: + description: Specifies whether and how to configure a source address + for the peerings generated by this BGPPeer resource. Default value + "UseNodeIP" means to configure the node IP as the source address. "None" + means not to configure a source address. + type: string + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: blockaffinities.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: BlockAffinity + listKind: BlockAffinityList + plural: blockaffinities + singular: blockaffinity + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: BlockAffinitySpec contains the specification for a BlockAffinity + resource. + properties: + cidr: + type: string + deleted: + description: Deleted indicates that this block affinity is being deleted. + This field is a string for compatibility with older releases that + mistakenly treat this field as a string. + type: string + node: + type: string + state: + type: string + required: + - cidr + - deleted + - node + - state + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: caliconodestatuses.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: CalicoNodeStatus + listKind: CalicoNodeStatusList + plural: caliconodestatuses + singular: caliconodestatus + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: CalicoNodeStatusSpec contains the specification for a CalicoNodeStatus + resource. + properties: + classes: + description: Classes declares the types of information to monitor + for this calico/node, and allows for selective status reporting + about certain subsets of information. + items: + type: string + type: array + node: + description: The node name identifies the Calico node instance for + node status. + type: string + updatePeriodSeconds: + description: UpdatePeriodSeconds is the period at which CalicoNodeStatus + should be updated. Set to 0 to disable CalicoNodeStatus refresh. + Maximum update period is one day. + format: int32 + type: integer + type: object + status: + description: CalicoNodeStatusStatus defines the observed state of CalicoNodeStatus. + No validation needed for status since it is updated by Calico. + properties: + agent: + description: Agent holds agent status on the node. + properties: + birdV4: + description: BIRDV4 represents the latest observed status of bird4. + properties: + lastBootTime: + description: LastBootTime holds the value of lastBootTime + from bird.ctl output. + type: string + lastReconfigurationTime: + description: LastReconfigurationTime holds the value of lastReconfigTime + from bird.ctl output. + type: string + routerID: + description: Router ID used by bird. + type: string + state: + description: The state of the BGP Daemon. + type: string + version: + description: Version of the BGP daemon + type: string + type: object + birdV6: + description: BIRDV6 represents the latest observed status of bird6. + properties: + lastBootTime: + description: LastBootTime holds the value of lastBootTime + from bird.ctl output. + type: string + lastReconfigurationTime: + description: LastReconfigurationTime holds the value of lastReconfigTime + from bird.ctl output. + type: string + routerID: + description: Router ID used by bird. + type: string + state: + description: The state of the BGP Daemon. + type: string + version: + description: Version of the BGP daemon + type: string + type: object + type: object + bgp: + description: BGP holds node BGP status. + properties: + numberEstablishedV4: + description: The total number of IPv4 established bgp sessions. + type: integer + numberEstablishedV6: + description: The total number of IPv6 established bgp sessions. + type: integer + numberNotEstablishedV4: + description: The total number of IPv4 non-established bgp sessions. + type: integer + numberNotEstablishedV6: + description: The total number of IPv6 non-established bgp sessions. + type: integer + peersV4: + description: PeersV4 represents IPv4 BGP peers status on the node. + items: + description: CalicoNodePeer contains the status of BGP peers + on the node. + properties: + peerIP: + description: IP address of the peer whose condition we are + reporting. + type: string + since: + description: Since the state or reason last changed. + type: string + state: + description: State is the BGP session state. + type: string + type: + description: Type indicates whether this peer is configured + via the node-to-node mesh, or via en explicit global or + per-node BGPPeer object. + type: string + type: object + type: array + peersV6: + description: PeersV6 represents IPv6 BGP peers status on the node. + items: + description: CalicoNodePeer contains the status of BGP peers + on the node. + properties: + peerIP: + description: IP address of the peer whose condition we are + reporting. + type: string + since: + description: Since the state or reason last changed. + type: string + state: + description: State is the BGP session state. + type: string + type: + description: Type indicates whether this peer is configured + via the node-to-node mesh, or via en explicit global or + per-node BGPPeer object. + type: string + type: object + type: array + required: + - numberEstablishedV4 + - numberEstablishedV6 + - numberNotEstablishedV4 + - numberNotEstablishedV6 + type: object + lastUpdated: + description: LastUpdated is a timestamp representing the server time + when CalicoNodeStatus object last updated. It is represented in + RFC3339 form and is in UTC. + format: date-time + nullable: true + type: string + routes: + description: Routes reports routes known to the Calico BGP daemon + on the node. + properties: + routesV4: + description: RoutesV4 represents IPv4 routes on the node. + items: + description: CalicoNodeRoute contains the status of BGP routes + on the node. + properties: + destination: + description: Destination of the route. + type: string + gateway: + description: Gateway for the destination. + type: string + interface: + description: Interface for the destination + type: string + learnedFrom: + description: LearnedFrom contains information regarding + where this route originated. + properties: + peerIP: + description: If sourceType is NodeMesh or BGPPeer, IP + address of the router that sent us this route. + type: string + sourceType: + description: Type of the source where a route is learned + from. + type: string + type: object + type: + description: Type indicates if the route is being used for + forwarding or not. + type: string + type: object + type: array + routesV6: + description: RoutesV6 represents IPv6 routes on the node. + items: + description: CalicoNodeRoute contains the status of BGP routes + on the node. + properties: + destination: + description: Destination of the route. + type: string + gateway: + description: Gateway for the destination. + type: string + interface: + description: Interface for the destination + type: string + learnedFrom: + description: LearnedFrom contains information regarding + where this route originated. + properties: + peerIP: + description: If sourceType is NodeMesh or BGPPeer, IP + address of the router that sent us this route. + type: string + sourceType: + description: Type of the source where a route is learned + from. + type: string + type: object + type: + description: Type indicates if the route is being used for + forwarding or not. + type: string + type: object + type: array + type: object + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: clusterinformations.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: ClusterInformation + listKind: ClusterInformationList + plural: clusterinformations + singular: clusterinformation + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: ClusterInformation contains the cluster specific information. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: ClusterInformationSpec contains the values of describing + the cluster. + properties: + calicoVersion: + description: CalicoVersion is the version of Calico that the cluster + is running + type: string + clusterGUID: + description: ClusterGUID is the GUID of the cluster + type: string + clusterType: + description: ClusterType describes the type of the cluster + type: string + datastoreReady: + description: DatastoreReady is used during significant datastore migrations + to signal to components such as Felix that it should wait before + accessing the datastore. + type: boolean + variant: + description: Variant declares which variant of Calico should be active. + type: string + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: felixconfigurations.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: FelixConfiguration + listKind: FelixConfigurationList + plural: felixconfigurations + singular: felixconfiguration + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: Felix Configuration contains the configuration for Felix. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: FelixConfigurationSpec contains the values of the Felix configuration. + properties: + allowIPIPPacketsFromWorkloads: + description: 'AllowIPIPPacketsFromWorkloads controls whether Felix + will add a rule to drop IPIP encapsulated traffic from workloads + [Default: false]' + type: boolean + allowVXLANPacketsFromWorkloads: + description: 'AllowVXLANPacketsFromWorkloads controls whether Felix + will add a rule to drop VXLAN encapsulated traffic from workloads + [Default: false]' + type: boolean + awsSrcDstCheck: + description: 'Set source-destination-check on AWS EC2 instances. Accepted + value must be one of "DoNothing", "Enable" or "Disable". [Default: + DoNothing]' + enum: + - DoNothing + - Enable + - Disable + type: string + bpfConnectTimeLoadBalancingEnabled: + description: 'BPFConnectTimeLoadBalancingEnabled when in BPF mode, + controls whether Felix installs the connection-time load balancer. The + connect-time load balancer is required for the host to be able to + reach Kubernetes services and it improves the performance of pod-to-service + connections. The only reason to disable it is for debugging purposes. [Default: + true]' + type: boolean + bpfDataIfacePattern: + description: BPFDataIfacePattern is a regular expression that controls + which interfaces Felix should attach BPF programs to in order to + catch traffic to/from the network. This needs to match the interfaces + that Calico workload traffic flows over as well as any interfaces + that handle incoming traffic to nodeports and services from outside + the cluster. It should not match the workload interfaces (usually + named cali...). + type: string + bpfDisableUnprivileged: + description: 'BPFDisableUnprivileged, if enabled, Felix sets the kernel.unprivileged_bpf_disabled + sysctl to disable unprivileged use of BPF. This ensures that unprivileged + users cannot access Calico''s BPF maps and cannot insert their own + BPF programs to interfere with Calico''s. [Default: true]' + type: boolean + bpfEnabled: + description: 'BPFEnabled, if enabled Felix will use the BPF dataplane. + [Default: false]' + type: boolean + bpfEnforceRPF: + description: 'BPFEnforceRPF enforce strict RPF on all interfaces with + BPF programs regardless of what is the per-interfaces or global + setting. Possible values are Disabled or Strict. [Default: Strict]' + type: string + bpfExtToServiceConnmark: + description: 'BPFExtToServiceConnmark in BPF mode, control a 32bit + mark that is set on connections from an external client to a local + service. This mark allows us to control how packets of that connection + are routed within the host and how is routing interpreted by RPF + check. [Default: 0]' + type: integer + bpfExternalServiceMode: + description: 'BPFExternalServiceMode in BPF mode, controls how connections + from outside the cluster to services (node ports and cluster IPs) + are forwarded to remote workloads. If set to "Tunnel" then both + request and response traffic is tunneled to the remote node. If + set to "DSR", the request traffic is tunneled but the response traffic + is sent directly from the remote node. In "DSR" mode, the remote + node appears to use the IP of the ingress node; this requires a + permissive L2 network. [Default: Tunnel]' + type: string + bpfKubeProxyEndpointSlicesEnabled: + description: BPFKubeProxyEndpointSlicesEnabled in BPF mode, controls + whether Felix's embedded kube-proxy accepts EndpointSlices or not. + type: boolean + bpfKubeProxyIptablesCleanupEnabled: + description: 'BPFKubeProxyIptablesCleanupEnabled, if enabled in BPF + mode, Felix will proactively clean up the upstream Kubernetes kube-proxy''s + iptables chains. Should only be enabled if kube-proxy is not running. [Default: + true]' + type: boolean + bpfKubeProxyMinSyncPeriod: + description: 'BPFKubeProxyMinSyncPeriod, in BPF mode, controls the + minimum time between updates to the dataplane for Felix''s embedded + kube-proxy. Lower values give reduced set-up latency. Higher values + reduce Felix CPU usage by batching up more work. [Default: 1s]' + type: string + bpfLogLevel: + description: 'BPFLogLevel controls the log level of the BPF programs + when in BPF dataplane mode. One of "Off", "Info", or "Debug". The + logs are emitted to the BPF trace pipe, accessible with the command + `tc exec bpf debug`. [Default: Off].' + type: string + bpfMapSizeConntrack: + description: 'BPFMapSizeConntrack sets the size for the conntrack + map. This map must be large enough to hold an entry for each active + connection. Warning: changing the size of the conntrack map can + cause disruption.' + type: integer + bpfMapSizeIPSets: + description: BPFMapSizeIPSets sets the size for ipsets map. The IP + sets map must be large enough to hold an entry for each endpoint + matched by every selector in the source/destination matches in network + policy. Selectors such as "all()" can result in large numbers of + entries (one entry per endpoint in that case). + type: integer + bpfMapSizeIfState: + description: BPFMapSizeIfState sets the size for ifstate map. The + ifstate map must be large enough to hold an entry for each device + (host + workloads) on a host. + type: integer + bpfMapSizeNATAffinity: + type: integer + bpfMapSizeNATBackend: + description: BPFMapSizeNATBackend sets the size for nat back end map. + This is the total number of endpoints. This is mostly more than + the size of the number of services. + type: integer + bpfMapSizeNATFrontend: + description: BPFMapSizeNATFrontend sets the size for nat front end + map. FrontendMap should be large enough to hold an entry for each + nodeport, external IP and each port in each service. + type: integer + bpfMapSizeRoute: + description: BPFMapSizeRoute sets the size for the routes map. The + routes map should be large enough to hold one entry per workload + and a handful of entries per host (enough to cover its own IPs and + tunnel IPs). + type: integer + bpfPSNATPorts: + anyOf: + - type: integer + - type: string + description: 'BPFPSNATPorts sets the range from which we randomly + pick a port if there is a source port collision. This should be + within the ephemeral range as defined by RFC 6056 (1024–65535) and + preferably outside the ephemeral ranges used by common operating + systems. Linux uses 32768–60999, while others mostly use the IANA + defined range 49152–65535. It is not necessarily a problem if this + range overlaps with the operating systems. Both ends of the range + are inclusive. [Default: 20000:29999]' + pattern: ^.* + x-kubernetes-int-or-string: true + bpfPolicyDebugEnabled: + description: BPFPolicyDebugEnabled when true, Felix records detailed + information about the BPF policy programs, which can be examined + with the calico-bpf command-line tool. + type: boolean + chainInsertMode: + description: 'ChainInsertMode controls whether Felix hooks the kernel''s + top-level iptables chains by inserting a rule at the top of the + chain or by appending a rule at the bottom. insert is the safe default + since it prevents Calico''s rules from being bypassed. If you switch + to append mode, be sure that the other rules in the chains signal + acceptance by falling through to the Calico rules, otherwise the + Calico policy will be bypassed. [Default: insert]' + type: string + dataplaneDriver: + description: DataplaneDriver filename of the external dataplane driver + to use. Only used if UseInternalDataplaneDriver is set to false. + type: string + dataplaneWatchdogTimeout: + description: 'DataplaneWatchdogTimeout is the readiness/liveness timeout + used for Felix''s (internal) dataplane driver. Increase this value + if you experience spurious non-ready or non-live events when Felix + is under heavy load. Decrease the value to get felix to report non-live + or non-ready more quickly. [Default: 90s]' + type: string + debugDisableLogDropping: + type: boolean + debugMemoryProfilePath: + type: string + debugSimulateCalcGraphHangAfter: + type: string + debugSimulateDataplaneHangAfter: + type: string + defaultEndpointToHostAction: + description: 'DefaultEndpointToHostAction controls what happens to + traffic that goes from a workload endpoint to the host itself (after + the traffic hits the endpoint egress policy). By default Calico + blocks traffic from workload endpoints to the host itself with an + iptables "DROP" action. If you want to allow some or all traffic + from endpoint to host, set this parameter to RETURN or ACCEPT. Use + RETURN if you have your own rules in the iptables "INPUT" chain; + Calico will insert its rules at the top of that chain, then "RETURN" + packets to the "INPUT" chain once it has completed processing workload + endpoint egress policy. Use ACCEPT to unconditionally accept packets + from workloads after processing workload endpoint egress policy. + [Default: Drop]' + type: string + deviceRouteProtocol: + description: This defines the route protocol added to programmed device + routes, by default this will be RTPROT_BOOT when left blank. + type: integer + deviceRouteSourceAddress: + description: This is the IPv4 source address to use on programmed + device routes. By default the source address is left blank, leaving + the kernel to choose the source address used. + type: string + deviceRouteSourceAddressIPv6: + description: This is the IPv6 source address to use on programmed + device routes. By default the source address is left blank, leaving + the kernel to choose the source address used. + type: string + disableConntrackInvalidCheck: + type: boolean + endpointReportingDelay: + type: string + endpointReportingEnabled: + type: boolean + externalNodesList: + description: ExternalNodesCIDRList is a list of CIDR's of external-non-calico-nodes + which may source tunnel traffic and have the tunneled traffic be + accepted at calico nodes. + items: + type: string + type: array + failsafeInboundHostPorts: + description: 'FailsafeInboundHostPorts is a list of UDP/TCP ports + and CIDRs that Felix will allow incoming traffic to host endpoints + on irrespective of the security policy. This is useful to avoid + accidentally cutting off a host with incorrect configuration. For + back-compatibility, if the protocol is not specified, it defaults + to "tcp". If a CIDR is not specified, it will allow traffic from + all addresses. To disable all inbound host ports, use the value + none. The default value allows ssh access and DHCP. [Default: tcp:22, + udp:68, tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666, tcp:6667]' + items: + description: ProtoPort is combination of protocol, port, and CIDR. + Protocol and port must be specified. + properties: + net: + type: string + port: + type: integer + protocol: + type: string + required: + - port + - protocol + type: object + type: array + failsafeOutboundHostPorts: + description: 'FailsafeOutboundHostPorts is a list of UDP/TCP ports + and CIDRs that Felix will allow outgoing traffic from host endpoints + to irrespective of the security policy. This is useful to avoid + accidentally cutting off a host with incorrect configuration. For + back-compatibility, if the protocol is not specified, it defaults + to "tcp". If a CIDR is not specified, it will allow traffic from + all addresses. To disable all outbound host ports, use the value + none. The default value opens etcd''s standard ports to ensure that + Felix does not get cut off from etcd as well as allowing DHCP and + DNS. [Default: tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666, + tcp:6667, udp:53, udp:67]' + items: + description: ProtoPort is combination of protocol, port, and CIDR. + Protocol and port must be specified. + properties: + net: + type: string + port: + type: integer + protocol: + type: string + required: + - port + - protocol + type: object + type: array + featureDetectOverride: + description: FeatureDetectOverride is used to override the feature + detection. Values are specified in a comma separated list with no + spaces, example; "SNATFullyRandom=true,MASQFullyRandom=false,RestoreSupportsLock=". + "true" or "false" will force the feature, empty or omitted values + are auto-detected. + type: string + floatingIPs: + description: FloatingIPs configures whether or not Felix will program + floating IP addresses. + enum: + - Enabled + - Disabled + type: string + genericXDPEnabled: + description: 'GenericXDPEnabled enables Generic XDP so network cards + that don''t support XDP offload or driver modes can use XDP. This + is not recommended since it doesn''t provide better performance + than iptables. [Default: false]' + type: boolean + healthEnabled: + type: boolean + healthHost: + type: string + healthPort: + type: integer + interfaceExclude: + description: 'InterfaceExclude is a comma-separated list of interfaces + that Felix should exclude when monitoring for host endpoints. The + default value ensures that Felix ignores Kubernetes'' IPVS dummy + interface, which is used internally by kube-proxy. If you want to + exclude multiple interface names using a single value, the list + supports regular expressions. For regular expressions you must wrap + the value with ''/''. For example having values ''/^kube/,veth1'' + will exclude all interfaces that begin with ''kube'' and also the + interface ''veth1''. [Default: kube-ipvs0]' + type: string + interfacePrefix: + description: 'InterfacePrefix is the interface name prefix that identifies + workload endpoints and so distinguishes them from host endpoint + interfaces. Note: in environments other than bare metal, the orchestrators + configure this appropriately. For example our Kubernetes and Docker + integrations set the ''cali'' value, and our OpenStack integration + sets the ''tap'' value. [Default: cali]' + type: string + interfaceRefreshInterval: + description: InterfaceRefreshInterval is the period at which Felix + rescans local interfaces to verify their state. The rescan can be + disabled by setting the interval to 0. + type: string + ipipEnabled: + description: 'IPIPEnabled overrides whether Felix should configure + an IPIP interface on the host. Optional as Felix determines this + based on the existing IP pools. [Default: nil (unset)]' + type: boolean + ipipMTU: + description: 'IPIPMTU is the MTU to set on the tunnel device. See + Configuring MTU [Default: 1440]' + type: integer + ipsetsRefreshInterval: + description: 'IpsetsRefreshInterval is the period at which Felix re-checks + all iptables state to ensure that no other process has accidentally + broken Calico''s rules. Set to 0 to disable iptables refresh. [Default: + 90s]' + type: string + iptablesBackend: + description: IptablesBackend specifies which backend of iptables will + be used. The default is legacy. + type: string + iptablesFilterAllowAction: + type: string + iptablesLockFilePath: + description: 'IptablesLockFilePath is the location of the iptables + lock file. You may need to change this if the lock file is not in + its standard location (for example if you have mapped it into Felix''s + container at a different path). [Default: /run/xtables.lock]' + type: string + iptablesLockProbeInterval: + description: 'IptablesLockProbeInterval is the time that Felix will + wait between attempts to acquire the iptables lock if it is not + available. Lower values make Felix more responsive when the lock + is contended, but use more CPU. [Default: 50ms]' + type: string + iptablesLockTimeout: + description: 'IptablesLockTimeout is the time that Felix will wait + for the iptables lock, or 0, to disable. To use this feature, Felix + must share the iptables lock file with all other processes that + also take the lock. When running Felix inside a container, this + requires the /run directory of the host to be mounted into the calico/node + or calico/felix container. [Default: 0s disabled]' + type: string + iptablesMangleAllowAction: + type: string + iptablesMarkMask: + description: 'IptablesMarkMask is the mask that Felix selects its + IPTables Mark bits from. Should be a 32 bit hexadecimal number with + at least 8 bits set, none of which clash with any other mark bits + in use on the system. [Default: 0xff000000]' + format: int32 + type: integer + iptablesNATOutgoingInterfaceFilter: + type: string + iptablesPostWriteCheckInterval: + description: 'IptablesPostWriteCheckInterval is the period after Felix + has done a write to the dataplane that it schedules an extra read + back in order to check the write was not clobbered by another process. + This should only occur if another application on the system doesn''t + respect the iptables lock. [Default: 1s]' + type: string + iptablesRefreshInterval: + description: 'IptablesRefreshInterval is the period at which Felix + re-checks the IP sets in the dataplane to ensure that no other process + has accidentally broken Calico''s rules. Set to 0 to disable IP + sets refresh. Note: the default for this value is lower than the + other refresh intervals as a workaround for a Linux kernel bug that + was fixed in kernel version 4.11. If you are using v4.11 or greater + you may want to set this to, a higher value to reduce Felix CPU + usage. [Default: 10s]' + type: string + ipv6Support: + description: IPv6Support controls whether Felix enables support for + IPv6 (if supported by the in-use dataplane). + type: boolean + kubeNodePortRanges: + description: 'KubeNodePortRanges holds list of port ranges used for + service node ports. Only used if felix detects kube-proxy running + in ipvs mode. Felix uses these ranges to separate host and workload + traffic. [Default: 30000:32767].' + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + logDebugFilenameRegex: + description: LogDebugFilenameRegex controls which source code files + have their Debug log output included in the logs. Only logs from + files with names that match the given regular expression are included. The + filter only applies to Debug level logs. + type: string + logFilePath: + description: 'LogFilePath is the full path to the Felix log. Set to + none to disable file logging. [Default: /var/log/calico/felix.log]' + type: string + logPrefix: + description: 'LogPrefix is the log prefix that Felix uses when rendering + LOG rules. [Default: calico-packet]' + type: string + logSeverityFile: + description: 'LogSeverityFile is the log severity above which logs + are sent to the log file. [Default: Info]' + type: string + logSeverityScreen: + description: 'LogSeverityScreen is the log severity above which logs + are sent to the stdout. [Default: Info]' + type: string + logSeveritySys: + description: 'LogSeveritySys is the log severity above which logs + are sent to the syslog. Set to None for no logging to syslog. [Default: + Info]' + type: string + maxIpsetSize: + type: integer + metadataAddr: + description: 'MetadataAddr is the IP address or domain name of the + server that can answer VM queries for cloud-init metadata. In OpenStack, + this corresponds to the machine running nova-api (or in Ubuntu, + nova-api-metadata). A value of none (case insensitive) means that + Felix should not set up any NAT rule for the metadata path. [Default: + 127.0.0.1]' + type: string + metadataPort: + description: 'MetadataPort is the port of the metadata server. This, + combined with global.MetadataAddr (if not ''None''), is used to + set up a NAT rule, from 169.254.169.254:80 to MetadataAddr:MetadataPort. + In most cases this should not need to be changed [Default: 8775].' + type: integer + mtuIfacePattern: + description: MTUIfacePattern is a regular expression that controls + which interfaces Felix should scan in order to calculate the host's + MTU. This should not match workload interfaces (usually named cali...). + type: string + natOutgoingAddress: + description: NATOutgoingAddress specifies an address to use when performing + source NAT for traffic in a natOutgoing pool that is leaving the + network. By default the address used is an address on the interface + the traffic is leaving on (ie it uses the iptables MASQUERADE target) + type: string + natPortRange: + anyOf: + - type: integer + - type: string + description: NATPortRange specifies the range of ports that is used + for port mapping when doing outgoing NAT. When unset the default + behavior of the network stack is used. + pattern: ^.* + x-kubernetes-int-or-string: true + netlinkTimeout: + type: string + openstackRegion: + description: 'OpenstackRegion is the name of the region that a particular + Felix belongs to. In a multi-region Calico/OpenStack deployment, + this must be configured somehow for each Felix (here in the datamodel, + or in felix.cfg or the environment on each compute node), and must + match the [calico] openstack_region value configured in neutron.conf + on each node. [Default: Empty]' + type: string + policySyncPathPrefix: + description: 'PolicySyncPathPrefix is used to by Felix to communicate + policy changes to external services, like Application layer policy. + [Default: Empty]' + type: string + prometheusGoMetricsEnabled: + description: 'PrometheusGoMetricsEnabled disables Go runtime metrics + collection, which the Prometheus client does by default, when set + to false. This reduces the number of metrics reported, reducing + Prometheus load. [Default: true]' + type: boolean + prometheusMetricsEnabled: + description: 'PrometheusMetricsEnabled enables the Prometheus metrics + server in Felix if set to true. [Default: false]' + type: boolean + prometheusMetricsHost: + description: 'PrometheusMetricsHost is the host that the Prometheus + metrics server should bind to. [Default: empty]' + type: string + prometheusMetricsPort: + description: 'PrometheusMetricsPort is the TCP port that the Prometheus + metrics server should bind to. [Default: 9091]' + type: integer + prometheusProcessMetricsEnabled: + description: 'PrometheusProcessMetricsEnabled disables process metrics + collection, which the Prometheus client does by default, when set + to false. This reduces the number of metrics reported, reducing + Prometheus load. [Default: true]' + type: boolean + prometheusWireGuardMetricsEnabled: + description: 'PrometheusWireGuardMetricsEnabled disables wireguard + metrics collection, which the Prometheus client does by default, + when set to false. This reduces the number of metrics reported, + reducing Prometheus load. [Default: true]' + type: boolean + removeExternalRoutes: + description: Whether or not to remove device routes that have not + been programmed by Felix. Disabling this will allow external applications + to also add device routes. This is enabled by default which means + we will remove externally added routes. + type: boolean + reportingInterval: + description: 'ReportingInterval is the interval at which Felix reports + its status into the datastore or 0 to disable. Must be non-zero + in OpenStack deployments. [Default: 30s]' + type: string + reportingTTL: + description: 'ReportingTTL is the time-to-live setting for process-wide + status reports. [Default: 90s]' + type: string + routeRefreshInterval: + description: 'RouteRefreshInterval is the period at which Felix re-checks + the routes in the dataplane to ensure that no other process has + accidentally broken Calico''s rules. Set to 0 to disable route refresh. + [Default: 90s]' + type: string + routeSource: + description: 'RouteSource configures where Felix gets its routing + information. - WorkloadIPs: use workload endpoints to construct + routes. - CalicoIPAM: the default - use IPAM data to construct routes.' + type: string + routeSyncDisabled: + description: RouteSyncDisabled will disable all operations performed + on the route table. Set to true to run in network-policy mode only. + type: boolean + routeTableRange: + description: Deprecated in favor of RouteTableRanges. Calico programs + additional Linux route tables for various purposes. RouteTableRange + specifies the indices of the route tables that Calico should use. + properties: + max: + type: integer + min: + type: integer + required: + - max + - min + type: object + routeTableRanges: + description: Calico programs additional Linux route tables for various + purposes. RouteTableRanges specifies a set of table index ranges + that Calico should use. Deprecates`RouteTableRange`, overrides `RouteTableRange`. + items: + properties: + max: + type: integer + min: + type: integer + required: + - max + - min + type: object + type: array + serviceLoopPrevention: + description: 'When service IP advertisement is enabled, prevent routing + loops to service IPs that are not in use, by dropping or rejecting + packets that do not get DNAT''d by kube-proxy. Unless set to "Disabled", + in which case such routing loops continue to be allowed. [Default: + Drop]' + type: string + sidecarAccelerationEnabled: + description: 'SidecarAccelerationEnabled enables experimental sidecar + acceleration [Default: false]' + type: boolean + usageReportingEnabled: + description: 'UsageReportingEnabled reports anonymous Calico version + number and cluster size to projectcalico.org. Logs warnings returned + by the usage server. For example, if a significant security vulnerability + has been discovered in the version of Calico being used. [Default: + true]' + type: boolean + usageReportingInitialDelay: + description: 'UsageReportingInitialDelay controls the minimum delay + before Felix makes a report. [Default: 300s]' + type: string + usageReportingInterval: + description: 'UsageReportingInterval controls the interval at which + Felix makes reports. [Default: 86400s]' + type: string + useInternalDataplaneDriver: + description: UseInternalDataplaneDriver, if true, Felix will use its + internal dataplane programming logic. If false, it will launch + an external dataplane driver and communicate with it over protobuf. + type: boolean + vxlanEnabled: + description: 'VXLANEnabled overrides whether Felix should create the + VXLAN tunnel device for VXLAN networking. Optional as Felix determines + this based on the existing IP pools. [Default: nil (unset)]' + type: boolean + vxlanMTU: + description: 'VXLANMTU is the MTU to set on the IPv4 VXLAN tunnel + device. See Configuring MTU [Default: 1410]' + type: integer + vxlanMTUV6: + description: 'VXLANMTUV6 is the MTU to set on the IPv6 VXLAN tunnel + device. See Configuring MTU [Default: 1390]' + type: integer + vxlanPort: + type: integer + vxlanVNI: + type: integer + wireguardEnabled: + description: 'WireguardEnabled controls whether Wireguard is enabled + for IPv4 (encapsulating IPv4 traffic over an IPv4 underlay network). + [Default: false]' + type: boolean + wireguardEnabledV6: + description: 'WireguardEnabledV6 controls whether Wireguard is enabled + for IPv6 (encapsulating IPv6 traffic over an IPv6 underlay network). + [Default: false]' + type: boolean + wireguardHostEncryptionEnabled: + description: 'WireguardHostEncryptionEnabled controls whether Wireguard + host-to-host encryption is enabled. [Default: false]' + type: boolean + wireguardInterfaceName: + description: 'WireguardInterfaceName specifies the name to use for + the IPv4 Wireguard interface. [Default: wireguard.cali]' + type: string + wireguardInterfaceNameV6: + description: 'WireguardInterfaceNameV6 specifies the name to use for + the IPv6 Wireguard interface. [Default: wg-v6.cali]' + type: string + wireguardKeepAlive: + description: 'WireguardKeepAlive controls Wireguard PersistentKeepalive + option. Set 0 to disable. [Default: 0]' + type: string + wireguardListeningPort: + description: 'WireguardListeningPort controls the listening port used + by IPv4 Wireguard. [Default: 51820]' + type: integer + wireguardListeningPortV6: + description: 'WireguardListeningPortV6 controls the listening port + used by IPv6 Wireguard. [Default: 51821]' + type: integer + wireguardMTU: + description: 'WireguardMTU controls the MTU on the IPv4 Wireguard + interface. See Configuring MTU [Default: 1440]' + type: integer + wireguardMTUV6: + description: 'WireguardMTUV6 controls the MTU on the IPv6 Wireguard + interface. See Configuring MTU [Default: 1420]' + type: integer + wireguardRoutingRulePriority: + description: 'WireguardRoutingRulePriority controls the priority value + to use for the Wireguard routing rule. [Default: 99]' + type: integer + workloadSourceSpoofing: + description: WorkloadSourceSpoofing controls whether pods can use + the allowedSourcePrefixes annotation to send traffic with a source + IP address that is not theirs. This is disabled by default. When + set to "Any", pods can request any prefix. + type: string + xdpEnabled: + description: 'XDPEnabled enables XDP acceleration for suitable untracked + incoming deny rules. [Default: true]' + type: boolean + xdpRefreshInterval: + description: 'XDPRefreshInterval is the period at which Felix re-checks + all XDP state to ensure that no other process has accidentally broken + Calico''s BPF maps or attached programs. Set to 0 to disable XDP + refresh. [Default: 90s]' + type: string + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: globalnetworkpolicies.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: GlobalNetworkPolicy + listKind: GlobalNetworkPolicyList + plural: globalnetworkpolicies + singular: globalnetworkpolicy + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + properties: + applyOnForward: + description: ApplyOnForward indicates to apply the rules in this policy + on forward traffic. + type: boolean + doNotTrack: + description: DoNotTrack indicates whether packets matched by the rules + in this policy should go through the data plane's connection tracking, + such as Linux conntrack. If True, the rules in this policy are + applied before any data plane connection tracking, and packets allowed + by this policy are marked as not to be tracked. + type: boolean + egress: + description: The ordered set of egress rules. Each rule contains + a set of packet match criteria and a corresponding action to apply. + items: + description: "A Rule encapsulates a set of match criteria and an + action. Both selector-based security Policy and security Profiles + reference rules - separated out as a list of rules for both ingress + and egress packet matching. \n Each positive match criteria has + a negated version, prefixed with \"Not\". All the match criteria + within a rule must be satisfied for a packet to match. A single + rule can contain the positive and negative version of a match + and both must be satisfied for the rule to match." + properties: + action: + type: string + destination: + description: Destination contains the match criteria that apply + to destination entity. + properties: + namespaceSelector: + description: "NamespaceSelector is an optional field that + contains a selector expression. Only traffic that originates + from (or terminates at) endpoints within the selected + namespaces will be matched. When both NamespaceSelector + and another selector are defined on the same rule, then + only workload endpoints that are matched by both selectors + will be selected by the rule. \n For NetworkPolicy, an + empty NamespaceSelector implies that the Selector is limited + to selecting only workload endpoints in the same namespace + as the NetworkPolicy. \n For NetworkPolicy, `global()` + NamespaceSelector implies that the Selector is limited + to selecting only GlobalNetworkSet or HostEndpoint. \n + For GlobalNetworkPolicy, an empty NamespaceSelector implies + the Selector applies to workload endpoints across all + namespaces." + type: string + nets: + description: Nets is an optional field that restricts the + rule to only apply to traffic that originates from (or + terminates at) IP addresses in any of the given subnets. + items: + type: string + type: array + notNets: + description: NotNets is the negated version of the Nets + field. + items: + type: string + type: array + notPorts: + description: NotPorts is the negated version of the Ports + field. Since only some protocols have ports, if any ports + are specified it requires the Protocol match in the Rule + to be set to "TCP" or "UDP". + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + notSelector: + description: NotSelector is the negated version of the Selector + field. See Selector field for subtleties with negated + selectors. + type: string + ports: + description: "Ports is an optional field that restricts + the rule to only apply to traffic that has a source (destination) + port that matches one of these ranges/values. This value + is a list of integers or strings that represent ranges + of ports. \n Since only some protocols have ports, if + any ports are specified it requires the Protocol match + in the Rule to be set to \"TCP\" or \"UDP\"." + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + selector: + description: "Selector is an optional field that contains + a selector expression (see Policy for sample syntax). + \ Only traffic that originates from (terminates at) endpoints + matching the selector will be matched. \n Note that: in + addition to the negated version of the Selector (see NotSelector + below), the selector expression syntax itself supports + negation. The two types of negation are subtly different. + One negates the set of matched endpoints, the other negates + the whole match: \n \tSelector = \"!has(my_label)\" matches + packets that are from other Calico-controlled \tendpoints + that do not have the label \"my_label\". \n \tNotSelector + = \"has(my_label)\" matches packets that are not from + Calico-controlled \tendpoints that do have the label \"my_label\". + \n The effect is that the latter will accept packets from + non-Calico sources whereas the former is limited to packets + from Calico-controlled endpoints." + type: string + serviceAccounts: + description: ServiceAccounts is an optional field that restricts + the rule to only apply to traffic that originates from + (or terminates at) a pod running as a matching service + account. + properties: + names: + description: Names is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account whose name is in the list. + items: + type: string + type: array + selector: + description: Selector is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account that matches the given label selector. If + both Names and Selector are specified then they are + AND'ed. + type: string + type: object + services: + description: "Services is an optional field that contains + options for matching Kubernetes Services. If specified, + only traffic that originates from or terminates at endpoints + within the selected service(s) will be matched, and only + to/from each endpoint's port. \n Services cannot be specified + on the same rule as Selector, NotSelector, NamespaceSelector, + Nets, NotNets or ServiceAccounts. \n Ports and NotPorts + can only be specified with Services on ingress rules." + properties: + name: + description: Name specifies the name of a Kubernetes + Service to match. + type: string + namespace: + description: Namespace specifies the namespace of the + given Service. If left empty, the rule will match + within this policy's namespace. + type: string + type: object + type: object + http: + description: HTTP contains match criteria that apply to HTTP + requests. + properties: + methods: + description: Methods is an optional field that restricts + the rule to apply only to HTTP requests that use one of + the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple + methods are OR'd together. + items: + type: string + type: array + paths: + description: 'Paths is an optional field that restricts + the rule to apply to HTTP requests that use one of the + listed HTTP Paths. Multiple paths are OR''d together. + e.g: - exact: /foo - prefix: /bar NOTE: Each entry may + ONLY specify either a `exact` or a `prefix` match. The + validator will check for it.' + items: + description: 'HTTPPath specifies an HTTP path to match. + It may be either of the form: exact: : which matches + the path exactly or prefix: : which matches + the path prefix' + properties: + exact: + type: string + prefix: + type: string + type: object + type: array + type: object + icmp: + description: ICMP is an optional field that restricts the rule + to apply to a specific type and code of ICMP traffic. This + should only be specified if the Protocol field is set to "ICMP" + or "ICMPv6". + properties: + code: + description: Match on a specific ICMP code. If specified, + the Type value must also be specified. This is a technical + limitation imposed by the kernel's iptables firewall, + which Calico uses to enforce the rule. + type: integer + type: + description: Match on a specific ICMP type. For example + a value of 8 refers to ICMP Echo Request (i.e. pings). + type: integer + type: object + ipVersion: + description: IPVersion is an optional field that restricts the + rule to only match a specific IP version. + type: integer + metadata: + description: Metadata contains additional information for this + rule + properties: + annotations: + additionalProperties: + type: string + description: Annotations is a set of key value pairs that + give extra information about the rule + type: object + type: object + notICMP: + description: NotICMP is the negated version of the ICMP field. + properties: + code: + description: Match on a specific ICMP code. If specified, + the Type value must also be specified. This is a technical + limitation imposed by the kernel's iptables firewall, + which Calico uses to enforce the rule. + type: integer + type: + description: Match on a specific ICMP type. For example + a value of 8 refers to ICMP Echo Request (i.e. pings). + type: integer + type: object + notProtocol: + anyOf: + - type: integer + - type: string + description: NotProtocol is the negated version of the Protocol + field. + pattern: ^.* + x-kubernetes-int-or-string: true + protocol: + anyOf: + - type: integer + - type: string + description: "Protocol is an optional field that restricts the + rule to only apply to traffic of a specific IP protocol. Required + if any of the EntityRules contain Ports (because ports only + apply to certain protocols). \n Must be one of these string + values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\", + \"UDPLite\" or an integer in the range 1-255." + pattern: ^.* + x-kubernetes-int-or-string: true + source: + description: Source contains the match criteria that apply to + source entity. + properties: + namespaceSelector: + description: "NamespaceSelector is an optional field that + contains a selector expression. Only traffic that originates + from (or terminates at) endpoints within the selected + namespaces will be matched. When both NamespaceSelector + and another selector are defined on the same rule, then + only workload endpoints that are matched by both selectors + will be selected by the rule. \n For NetworkPolicy, an + empty NamespaceSelector implies that the Selector is limited + to selecting only workload endpoints in the same namespace + as the NetworkPolicy. \n For NetworkPolicy, `global()` + NamespaceSelector implies that the Selector is limited + to selecting only GlobalNetworkSet or HostEndpoint. \n + For GlobalNetworkPolicy, an empty NamespaceSelector implies + the Selector applies to workload endpoints across all + namespaces." + type: string + nets: + description: Nets is an optional field that restricts the + rule to only apply to traffic that originates from (or + terminates at) IP addresses in any of the given subnets. + items: + type: string + type: array + notNets: + description: NotNets is the negated version of the Nets + field. + items: + type: string + type: array + notPorts: + description: NotPorts is the negated version of the Ports + field. Since only some protocols have ports, if any ports + are specified it requires the Protocol match in the Rule + to be set to "TCP" or "UDP". + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + notSelector: + description: NotSelector is the negated version of the Selector + field. See Selector field for subtleties with negated + selectors. + type: string + ports: + description: "Ports is an optional field that restricts + the rule to only apply to traffic that has a source (destination) + port that matches one of these ranges/values. This value + is a list of integers or strings that represent ranges + of ports. \n Since only some protocols have ports, if + any ports are specified it requires the Protocol match + in the Rule to be set to \"TCP\" or \"UDP\"." + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + selector: + description: "Selector is an optional field that contains + a selector expression (see Policy for sample syntax). + \ Only traffic that originates from (terminates at) endpoints + matching the selector will be matched. \n Note that: in + addition to the negated version of the Selector (see NotSelector + below), the selector expression syntax itself supports + negation. The two types of negation are subtly different. + One negates the set of matched endpoints, the other negates + the whole match: \n \tSelector = \"!has(my_label)\" matches + packets that are from other Calico-controlled \tendpoints + that do not have the label \"my_label\". \n \tNotSelector + = \"has(my_label)\" matches packets that are not from + Calico-controlled \tendpoints that do have the label \"my_label\". + \n The effect is that the latter will accept packets from + non-Calico sources whereas the former is limited to packets + from Calico-controlled endpoints." + type: string + serviceAccounts: + description: ServiceAccounts is an optional field that restricts + the rule to only apply to traffic that originates from + (or terminates at) a pod running as a matching service + account. + properties: + names: + description: Names is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account whose name is in the list. + items: + type: string + type: array + selector: + description: Selector is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account that matches the given label selector. If + both Names and Selector are specified then they are + AND'ed. + type: string + type: object + services: + description: "Services is an optional field that contains + options for matching Kubernetes Services. If specified, + only traffic that originates from or terminates at endpoints + within the selected service(s) will be matched, and only + to/from each endpoint's port. \n Services cannot be specified + on the same rule as Selector, NotSelector, NamespaceSelector, + Nets, NotNets or ServiceAccounts. \n Ports and NotPorts + can only be specified with Services on ingress rules." + properties: + name: + description: Name specifies the name of a Kubernetes + Service to match. + type: string + namespace: + description: Namespace specifies the namespace of the + given Service. If left empty, the rule will match + within this policy's namespace. + type: string + type: object + type: object + required: + - action + type: object + type: array + ingress: + description: The ordered set of ingress rules. Each rule contains + a set of packet match criteria and a corresponding action to apply. + items: + description: "A Rule encapsulates a set of match criteria and an + action. Both selector-based security Policy and security Profiles + reference rules - separated out as a list of rules for both ingress + and egress packet matching. \n Each positive match criteria has + a negated version, prefixed with \"Not\". All the match criteria + within a rule must be satisfied for a packet to match. A single + rule can contain the positive and negative version of a match + and both must be satisfied for the rule to match." + properties: + action: + type: string + destination: + description: Destination contains the match criteria that apply + to destination entity. + properties: + namespaceSelector: + description: "NamespaceSelector is an optional field that + contains a selector expression. Only traffic that originates + from (or terminates at) endpoints within the selected + namespaces will be matched. When both NamespaceSelector + and another selector are defined on the same rule, then + only workload endpoints that are matched by both selectors + will be selected by the rule. \n For NetworkPolicy, an + empty NamespaceSelector implies that the Selector is limited + to selecting only workload endpoints in the same namespace + as the NetworkPolicy. \n For NetworkPolicy, `global()` + NamespaceSelector implies that the Selector is limited + to selecting only GlobalNetworkSet or HostEndpoint. \n + For GlobalNetworkPolicy, an empty NamespaceSelector implies + the Selector applies to workload endpoints across all + namespaces." + type: string + nets: + description: Nets is an optional field that restricts the + rule to only apply to traffic that originates from (or + terminates at) IP addresses in any of the given subnets. + items: + type: string + type: array + notNets: + description: NotNets is the negated version of the Nets + field. + items: + type: string + type: array + notPorts: + description: NotPorts is the negated version of the Ports + field. Since only some protocols have ports, if any ports + are specified it requires the Protocol match in the Rule + to be set to "TCP" or "UDP". + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + notSelector: + description: NotSelector is the negated version of the Selector + field. See Selector field for subtleties with negated + selectors. + type: string + ports: + description: "Ports is an optional field that restricts + the rule to only apply to traffic that has a source (destination) + port that matches one of these ranges/values. This value + is a list of integers or strings that represent ranges + of ports. \n Since only some protocols have ports, if + any ports are specified it requires the Protocol match + in the Rule to be set to \"TCP\" or \"UDP\"." + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + selector: + description: "Selector is an optional field that contains + a selector expression (see Policy for sample syntax). + \ Only traffic that originates from (terminates at) endpoints + matching the selector will be matched. \n Note that: in + addition to the negated version of the Selector (see NotSelector + below), the selector expression syntax itself supports + negation. The two types of negation are subtly different. + One negates the set of matched endpoints, the other negates + the whole match: \n \tSelector = \"!has(my_label)\" matches + packets that are from other Calico-controlled \tendpoints + that do not have the label \"my_label\". \n \tNotSelector + = \"has(my_label)\" matches packets that are not from + Calico-controlled \tendpoints that do have the label \"my_label\". + \n The effect is that the latter will accept packets from + non-Calico sources whereas the former is limited to packets + from Calico-controlled endpoints." + type: string + serviceAccounts: + description: ServiceAccounts is an optional field that restricts + the rule to only apply to traffic that originates from + (or terminates at) a pod running as a matching service + account. + properties: + names: + description: Names is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account whose name is in the list. + items: + type: string + type: array + selector: + description: Selector is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account that matches the given label selector. If + both Names and Selector are specified then they are + AND'ed. + type: string + type: object + services: + description: "Services is an optional field that contains + options for matching Kubernetes Services. If specified, + only traffic that originates from or terminates at endpoints + within the selected service(s) will be matched, and only + to/from each endpoint's port. \n Services cannot be specified + on the same rule as Selector, NotSelector, NamespaceSelector, + Nets, NotNets or ServiceAccounts. \n Ports and NotPorts + can only be specified with Services on ingress rules." + properties: + name: + description: Name specifies the name of a Kubernetes + Service to match. + type: string + namespace: + description: Namespace specifies the namespace of the + given Service. If left empty, the rule will match + within this policy's namespace. + type: string + type: object + type: object + http: + description: HTTP contains match criteria that apply to HTTP + requests. + properties: + methods: + description: Methods is an optional field that restricts + the rule to apply only to HTTP requests that use one of + the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple + methods are OR'd together. + items: + type: string + type: array + paths: + description: 'Paths is an optional field that restricts + the rule to apply to HTTP requests that use one of the + listed HTTP Paths. Multiple paths are OR''d together. + e.g: - exact: /foo - prefix: /bar NOTE: Each entry may + ONLY specify either a `exact` or a `prefix` match. The + validator will check for it.' + items: + description: 'HTTPPath specifies an HTTP path to match. + It may be either of the form: exact: : which matches + the path exactly or prefix: : which matches + the path prefix' + properties: + exact: + type: string + prefix: + type: string + type: object + type: array + type: object + icmp: + description: ICMP is an optional field that restricts the rule + to apply to a specific type and code of ICMP traffic. This + should only be specified if the Protocol field is set to "ICMP" + or "ICMPv6". + properties: + code: + description: Match on a specific ICMP code. If specified, + the Type value must also be specified. This is a technical + limitation imposed by the kernel's iptables firewall, + which Calico uses to enforce the rule. + type: integer + type: + description: Match on a specific ICMP type. For example + a value of 8 refers to ICMP Echo Request (i.e. pings). + type: integer + type: object + ipVersion: + description: IPVersion is an optional field that restricts the + rule to only match a specific IP version. + type: integer + metadata: + description: Metadata contains additional information for this + rule + properties: + annotations: + additionalProperties: + type: string + description: Annotations is a set of key value pairs that + give extra information about the rule + type: object + type: object + notICMP: + description: NotICMP is the negated version of the ICMP field. + properties: + code: + description: Match on a specific ICMP code. If specified, + the Type value must also be specified. This is a technical + limitation imposed by the kernel's iptables firewall, + which Calico uses to enforce the rule. + type: integer + type: + description: Match on a specific ICMP type. For example + a value of 8 refers to ICMP Echo Request (i.e. pings). + type: integer + type: object + notProtocol: + anyOf: + - type: integer + - type: string + description: NotProtocol is the negated version of the Protocol + field. + pattern: ^.* + x-kubernetes-int-or-string: true + protocol: + anyOf: + - type: integer + - type: string + description: "Protocol is an optional field that restricts the + rule to only apply to traffic of a specific IP protocol. Required + if any of the EntityRules contain Ports (because ports only + apply to certain protocols). \n Must be one of these string + values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\", + \"UDPLite\" or an integer in the range 1-255." + pattern: ^.* + x-kubernetes-int-or-string: true + source: + description: Source contains the match criteria that apply to + source entity. + properties: + namespaceSelector: + description: "NamespaceSelector is an optional field that + contains a selector expression. Only traffic that originates + from (or terminates at) endpoints within the selected + namespaces will be matched. When both NamespaceSelector + and another selector are defined on the same rule, then + only workload endpoints that are matched by both selectors + will be selected by the rule. \n For NetworkPolicy, an + empty NamespaceSelector implies that the Selector is limited + to selecting only workload endpoints in the same namespace + as the NetworkPolicy. \n For NetworkPolicy, `global()` + NamespaceSelector implies that the Selector is limited + to selecting only GlobalNetworkSet or HostEndpoint. \n + For GlobalNetworkPolicy, an empty NamespaceSelector implies + the Selector applies to workload endpoints across all + namespaces." + type: string + nets: + description: Nets is an optional field that restricts the + rule to only apply to traffic that originates from (or + terminates at) IP addresses in any of the given subnets. + items: + type: string + type: array + notNets: + description: NotNets is the negated version of the Nets + field. + items: + type: string + type: array + notPorts: + description: NotPorts is the negated version of the Ports + field. Since only some protocols have ports, if any ports + are specified it requires the Protocol match in the Rule + to be set to "TCP" or "UDP". + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + notSelector: + description: NotSelector is the negated version of the Selector + field. See Selector field for subtleties with negated + selectors. + type: string + ports: + description: "Ports is an optional field that restricts + the rule to only apply to traffic that has a source (destination) + port that matches one of these ranges/values. This value + is a list of integers or strings that represent ranges + of ports. \n Since only some protocols have ports, if + any ports are specified it requires the Protocol match + in the Rule to be set to \"TCP\" or \"UDP\"." + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + selector: + description: "Selector is an optional field that contains + a selector expression (see Policy for sample syntax). + \ Only traffic that originates from (terminates at) endpoints + matching the selector will be matched. \n Note that: in + addition to the negated version of the Selector (see NotSelector + below), the selector expression syntax itself supports + negation. The two types of negation are subtly different. + One negates the set of matched endpoints, the other negates + the whole match: \n \tSelector = \"!has(my_label)\" matches + packets that are from other Calico-controlled \tendpoints + that do not have the label \"my_label\". \n \tNotSelector + = \"has(my_label)\" matches packets that are not from + Calico-controlled \tendpoints that do have the label \"my_label\". + \n The effect is that the latter will accept packets from + non-Calico sources whereas the former is limited to packets + from Calico-controlled endpoints." + type: string + serviceAccounts: + description: ServiceAccounts is an optional field that restricts + the rule to only apply to traffic that originates from + (or terminates at) a pod running as a matching service + account. + properties: + names: + description: Names is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account whose name is in the list. + items: + type: string + type: array + selector: + description: Selector is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account that matches the given label selector. If + both Names and Selector are specified then they are + AND'ed. + type: string + type: object + services: + description: "Services is an optional field that contains + options for matching Kubernetes Services. If specified, + only traffic that originates from or terminates at endpoints + within the selected service(s) will be matched, and only + to/from each endpoint's port. \n Services cannot be specified + on the same rule as Selector, NotSelector, NamespaceSelector, + Nets, NotNets or ServiceAccounts. \n Ports and NotPorts + can only be specified with Services on ingress rules." + properties: + name: + description: Name specifies the name of a Kubernetes + Service to match. + type: string + namespace: + description: Namespace specifies the namespace of the + given Service. If left empty, the rule will match + within this policy's namespace. + type: string + type: object + type: object + required: + - action + type: object + type: array + namespaceSelector: + description: NamespaceSelector is an optional field for an expression + used to select a pod based on namespaces. + type: string + order: + description: Order is an optional field that specifies the order in + which the policy is applied. Policies with higher "order" are applied + after those with lower order. If the order is omitted, it may be + considered to be "infinite" - i.e. the policy will be applied last. Policies + with identical order will be applied in alphanumerical order based + on the Policy "Name". + type: number + preDNAT: + description: PreDNAT indicates to apply the rules in this policy before + any DNAT. + type: boolean + selector: + description: "The selector is an expression used to pick pick out + the endpoints that the policy should be applied to. \n Selector + expressions follow this syntax: \n \tlabel == \"string_literal\" + \ -> comparison, e.g. my_label == \"foo bar\" \tlabel != \"string_literal\" + \ -> not equal; also matches if label is not present \tlabel in + { \"a\", \"b\", \"c\", ... } -> true if the value of label X is + one of \"a\", \"b\", \"c\" \tlabel not in { \"a\", \"b\", \"c\", + ... } -> true if the value of label X is not one of \"a\", \"b\", + \"c\" \thas(label_name) -> True if that label is present \t! expr + -> negation of expr \texpr && expr -> Short-circuit and \texpr + || expr -> Short-circuit or \t( expr ) -> parens for grouping \tall() + or the empty selector -> matches all endpoints. \n Label names are + allowed to contain alphanumerics, -, _ and /. String literals are + more permissive but they do not support escape characters. \n Examples + (with made-up labels): \n \ttype == \"webserver\" && deployment + == \"prod\" \ttype in {\"frontend\", \"backend\"} \tdeployment != + \"dev\" \t! has(label_name)" + type: string + serviceAccountSelector: + description: ServiceAccountSelector is an optional field for an expression + used to select a pod based on service accounts. + type: string + types: + description: "Types indicates whether this policy applies to ingress, + or to egress, or to both. When not explicitly specified (and so + the value on creation is empty or nil), Calico defaults Types according + to what Ingress and Egress rules are present in the policy. The + default is: \n - [ PolicyTypeIngress ], if there are no Egress rules + (including the case where there are also no Ingress rules) \n + - [ PolicyTypeEgress ], if there are Egress rules but no Ingress + rules \n - [ PolicyTypeIngress, PolicyTypeEgress ], if there are + both Ingress and Egress rules. \n When the policy is read back again, + Types will always be one of these values, never empty or nil." + items: + description: PolicyType enumerates the possible values of the PolicySpec + Types field. + type: string + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: globalnetworksets.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: GlobalNetworkSet + listKind: GlobalNetworkSetList + plural: globalnetworksets + singular: globalnetworkset + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: GlobalNetworkSet contains a set of arbitrary IP sub-networks/CIDRs + that share labels to allow rules to refer to them via selectors. The labels + of GlobalNetworkSet are not namespaced. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: GlobalNetworkSetSpec contains the specification for a NetworkSet + resource. + properties: + nets: + description: The list of IP networks that belong to this set. + items: + type: string + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hostendpoints.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: HostEndpoint + listKind: HostEndpointList + plural: hostendpoints + singular: hostendpoint + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: HostEndpointSpec contains the specification for a HostEndpoint + resource. + properties: + expectedIPs: + description: "The expected IP addresses (IPv4 and IPv6) of the endpoint. + If \"InterfaceName\" is not present, Calico will look for an interface + matching any of the IPs in the list and apply policy to that. Note: + \tWhen using the selector match criteria in an ingress or egress + security Policy \tor Profile, Calico converts the selector into + a set of IP addresses. For host \tendpoints, the ExpectedIPs field + is used for that purpose. (If only the interface \tname is specified, + Calico does not learn the IPs of the interface for use in match + \tcriteria.)" + items: + type: string + type: array + interfaceName: + description: "Either \"*\", or the name of a specific Linux interface + to apply policy to; or empty. \"*\" indicates that this HostEndpoint + governs all traffic to, from or through the default network namespace + of the host named by the \"Node\" field; entering and leaving that + namespace via any interface, including those from/to non-host-networked + local workloads. \n If InterfaceName is not \"*\", this HostEndpoint + only governs traffic that enters or leaves the host through the + specific interface named by InterfaceName, or - when InterfaceName + is empty - through the specific interface that has one of the IPs + in ExpectedIPs. Therefore, when InterfaceName is empty, at least + one expected IP must be specified. Only external interfaces (such + as \"eth0\") are supported here; it isn't possible for a HostEndpoint + to protect traffic through a specific local workload interface. + \n Note: Only some kinds of policy are implemented for \"*\" HostEndpoints; + initially just pre-DNAT policy. Please check Calico documentation + for the latest position." + type: string + node: + description: The node name identifying the Calico node instance. + type: string + ports: + description: Ports contains the endpoint's named ports, which may + be referenced in security policy rules. + items: + properties: + name: + type: string + port: + type: integer + protocol: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + required: + - name + - port + - protocol + type: object + type: array + profiles: + description: A list of identifiers of security Profile objects that + apply to this endpoint. Each profile is applied in the order that + they appear in this list. Profile rules are applied after the selector-based + security policy. + items: + type: string + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: ipamblocks.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: IPAMBlock + listKind: IPAMBlockList + plural: ipamblocks + singular: ipamblock + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: IPAMBlockSpec contains the specification for an IPAMBlock + resource. + properties: + affinity: + description: Affinity of the block, if this block has one. If set, + it will be of the form "host:". If not set, this block + is not affine to a host. + type: string + allocations: + description: Array of allocations in-use within this block. nil entries + mean the allocation is free. For non-nil entries at index i, the + index is the ordinal of the allocation within this block and the + value is the index of the associated attributes in the Attributes + array. + items: + nullable: true + type: integer + type: array + attributes: + description: Attributes is an array of arbitrary metadata associated + with allocations in the block. To find attributes for a given allocation, + use the value of the allocation's entry in the Allocations array + as the index of the element in this array. + items: + properties: + handle_id: + type: string + secondary: + additionalProperties: + type: string + type: object + type: object + type: array + cidr: + description: The block's CIDR. + type: string + deleted: + description: Deleted is an internal boolean used to workaround a limitation + in the Kubernetes API whereby deletion will not return a conflict + error if the block has been updated. It should not be set manually. + type: boolean + sequenceNumber: + default: 0 + description: We store a sequence number that is updated each time + the block is written. Each allocation will also store the sequence + number of the block at the time of its creation. When releasing + an IP, passing the sequence number associated with the allocation + allows us to protect against a race condition and ensure the IP + hasn't been released and re-allocated since the release request. + format: int64 + type: integer + sequenceNumberForAllocation: + additionalProperties: + format: int64 + type: integer + description: Map of allocated ordinal within the block to sequence + number of the block at the time of allocation. Kubernetes does not + allow numerical keys for maps, so the key is cast to a string. + type: object + strictAffinity: + description: StrictAffinity on the IPAMBlock is deprecated and no + longer used by the code. Use IPAMConfig StrictAffinity instead. + type: boolean + unallocated: + description: Unallocated is an ordered list of allocations which are + free in the block. + items: + type: integer + type: array + required: + - allocations + - attributes + - cidr + - strictAffinity + - unallocated + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: ipamconfigs.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: IPAMConfig + listKind: IPAMConfigList + plural: ipamconfigs + singular: ipamconfig + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: IPAMConfigSpec contains the specification for an IPAMConfig + resource. + properties: + autoAllocateBlocks: + type: boolean + maxBlocksPerHost: + description: MaxBlocksPerHost, if non-zero, is the max number of blocks + that can be affine to each host. + maximum: 2147483647 + minimum: 0 + type: integer + strictAffinity: + type: boolean + required: + - autoAllocateBlocks + - strictAffinity + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: ipamhandles.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: IPAMHandle + listKind: IPAMHandleList + plural: ipamhandles + singular: ipamhandle + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: IPAMHandleSpec contains the specification for an IPAMHandle + resource. + properties: + block: + additionalProperties: + type: integer + type: object + deleted: + type: boolean + handleID: + type: string + required: + - block + - handleID + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: ippools.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: IPPool + listKind: IPPoolList + plural: ippools + singular: ippool + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: IPPoolSpec contains the specification for an IPPool resource. + properties: + allowedUses: + description: AllowedUse controls what the IP pool will be used for. If + not specified or empty, defaults to ["Tunnel", "Workload"] for back-compatibility + items: + type: string + type: array + blockSize: + description: The block size to use for IP address assignments from + this pool. Defaults to 26 for IPv4 and 122 for IPv6. + type: integer + cidr: + description: The pool CIDR. + type: string + disableBGPExport: + description: 'Disable exporting routes from this IP Pool''s CIDR over + BGP. [Default: false]' + type: boolean + disabled: + description: When disabled is true, Calico IPAM will not assign addresses + from this pool. + type: boolean + ipip: + description: 'Deprecated: this field is only used for APIv1 backwards + compatibility. Setting this field is not allowed, this field is + for internal use only.' + properties: + enabled: + description: When enabled is true, ipip tunneling will be used + to deliver packets to destinations within this pool. + type: boolean + mode: + description: The IPIP mode. This can be one of "always" or "cross-subnet". A + mode of "always" will also use IPIP tunneling for routing to + destination IP addresses within this pool. A mode of "cross-subnet" + will only use IPIP tunneling when the destination node is on + a different subnet to the originating node. The default value + (if not specified) is "always". + type: string + type: object + ipipMode: + description: Contains configuration for IPIP tunneling for this pool. + If not specified, then this is defaulted to "Never" (i.e. IPIP tunneling + is disabled). + type: string + nat-outgoing: + description: 'Deprecated: this field is only used for APIv1 backwards + compatibility. Setting this field is not allowed, this field is + for internal use only.' + type: boolean + natOutgoing: + description: When nat-outgoing is true, packets sent from Calico networked + containers in this pool to destinations outside of this pool will + be masqueraded. + type: boolean + nodeSelector: + description: Allows IPPool to allocate for a specific node by label + selector. + type: string + vxlanMode: + description: Contains configuration for VXLAN tunneling for this pool. + If not specified, then this is defaulted to "Never" (i.e. VXLAN + tunneling is disabled). + type: string + required: + - cidr + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: ipreservations.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: IPReservation + listKind: IPReservationList + plural: ipreservations + singular: ipreservation + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: IPReservationSpec contains the specification for an IPReservation + resource. + properties: + reservedCIDRs: + description: ReservedCIDRs is a list of CIDRs and/or IP addresses + that Calico IPAM will exclude from new allocations. + items: + type: string + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: kubecontrollersconfigurations.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: KubeControllersConfiguration + listKind: KubeControllersConfigurationList + plural: kubecontrollersconfigurations + singular: kubecontrollersconfiguration + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: KubeControllersConfigurationSpec contains the values of the + Kubernetes controllers configuration. + properties: + controllers: + description: Controllers enables and configures individual Kubernetes + controllers + properties: + namespace: + description: Namespace enables and configures the namespace controller. + Enabled by default, set to nil to disable. + properties: + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform reconciliation + with the Calico datastore. [Default: 5m]' + type: string + type: object + node: + description: Node enables and configures the node controller. + Enabled by default, set to nil to disable. + properties: + hostEndpoint: + description: HostEndpoint controls syncing nodes to host endpoints. + Disabled by default, set to nil to disable. + properties: + autoCreate: + description: 'AutoCreate enables automatic creation of + host endpoints for every node. [Default: Disabled]' + type: string + type: object + leakGracePeriod: + description: 'LeakGracePeriod is the period used by the controller + to determine if an IP address has been leaked. Set to 0 + to disable IP garbage collection. [Default: 15m]' + type: string + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform reconciliation + with the Calico datastore. [Default: 5m]' + type: string + syncLabels: + description: 'SyncLabels controls whether to copy Kubernetes + node labels to Calico nodes. [Default: Enabled]' + type: string + type: object + policy: + description: Policy enables and configures the policy controller. + Enabled by default, set to nil to disable. + properties: + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform reconciliation + with the Calico datastore. [Default: 5m]' + type: string + type: object + serviceAccount: + description: ServiceAccount enables and configures the service + account controller. Enabled by default, set to nil to disable. + properties: + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform reconciliation + with the Calico datastore. [Default: 5m]' + type: string + type: object + workloadEndpoint: + description: WorkloadEndpoint enables and configures the workload + endpoint controller. Enabled by default, set to nil to disable. + properties: + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform reconciliation + with the Calico datastore. [Default: 5m]' + type: string + type: object + type: object + debugProfilePort: + description: DebugProfilePort configures the port to serve memory + and cpu profiles on. If not specified, profiling is disabled. + format: int32 + type: integer + etcdV3CompactionPeriod: + description: 'EtcdV3CompactionPeriod is the period between etcdv3 + compaction requests. Set to 0 to disable. [Default: 10m]' + type: string + healthChecks: + description: 'HealthChecks enables or disables support for health + checks [Default: Enabled]' + type: string + logSeverityScreen: + description: 'LogSeverityScreen is the log severity above which logs + are sent to the stdout. [Default: Info]' + type: string + prometheusMetricsPort: + description: 'PrometheusMetricsPort is the TCP port that the Prometheus + metrics server should bind to. Set to 0 to disable. [Default: 9094]' + type: integer + required: + - controllers + type: object + status: + description: KubeControllersConfigurationStatus represents the status + of the configuration. It's useful for admins to be able to see the actual + config that was applied, which can be modified by environment variables + on the kube-controllers process. + properties: + environmentVars: + additionalProperties: + type: string + description: EnvironmentVars contains the environment variables on + the kube-controllers that influenced the RunningConfig. + type: object + runningConfig: + description: RunningConfig contains the effective config that is running + in the kube-controllers pod, after merging the API resource with + any environment variables. + properties: + controllers: + description: Controllers enables and configures individual Kubernetes + controllers + properties: + namespace: + description: Namespace enables and configures the namespace + controller. Enabled by default, set to nil to disable. + properties: + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform + reconciliation with the Calico datastore. [Default: + 5m]' + type: string + type: object + node: + description: Node enables and configures the node controller. + Enabled by default, set to nil to disable. + properties: + hostEndpoint: + description: HostEndpoint controls syncing nodes to host + endpoints. Disabled by default, set to nil to disable. + properties: + autoCreate: + description: 'AutoCreate enables automatic creation + of host endpoints for every node. [Default: Disabled]' + type: string + type: object + leakGracePeriod: + description: 'LeakGracePeriod is the period used by the + controller to determine if an IP address has been leaked. + Set to 0 to disable IP garbage collection. [Default: + 15m]' + type: string + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform + reconciliation with the Calico datastore. [Default: + 5m]' + type: string + syncLabels: + description: 'SyncLabels controls whether to copy Kubernetes + node labels to Calico nodes. [Default: Enabled]' + type: string + type: object + policy: + description: Policy enables and configures the policy controller. + Enabled by default, set to nil to disable. + properties: + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform + reconciliation with the Calico datastore. [Default: + 5m]' + type: string + type: object + serviceAccount: + description: ServiceAccount enables and configures the service + account controller. Enabled by default, set to nil to disable. + properties: + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform + reconciliation with the Calico datastore. [Default: + 5m]' + type: string + type: object + workloadEndpoint: + description: WorkloadEndpoint enables and configures the workload + endpoint controller. Enabled by default, set to nil to disable. + properties: + reconcilerPeriod: + description: 'ReconcilerPeriod is the period to perform + reconciliation with the Calico datastore. [Default: + 5m]' + type: string + type: object + type: object + debugProfilePort: + description: DebugProfilePort configures the port to serve memory + and cpu profiles on. If not specified, profiling is disabled. + format: int32 + type: integer + etcdV3CompactionPeriod: + description: 'EtcdV3CompactionPeriod is the period between etcdv3 + compaction requests. Set to 0 to disable. [Default: 10m]' + type: string + healthChecks: + description: 'HealthChecks enables or disables support for health + checks [Default: Enabled]' + type: string + logSeverityScreen: + description: 'LogSeverityScreen is the log severity above which + logs are sent to the stdout. [Default: Info]' + type: string + prometheusMetricsPort: + description: 'PrometheusMetricsPort is the TCP port that the Prometheus + metrics server should bind to. Set to 0 to disable. [Default: + 9094]' + type: integer + required: + - controllers + type: object + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: networkpolicies.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: NetworkPolicy + listKind: NetworkPolicyList + plural: networkpolicies + singular: networkpolicy + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + properties: + egress: + description: The ordered set of egress rules. Each rule contains + a set of packet match criteria and a corresponding action to apply. + items: + description: "A Rule encapsulates a set of match criteria and an + action. Both selector-based security Policy and security Profiles + reference rules - separated out as a list of rules for both ingress + and egress packet matching. \n Each positive match criteria has + a negated version, prefixed with \"Not\". All the match criteria + within a rule must be satisfied for a packet to match. A single + rule can contain the positive and negative version of a match + and both must be satisfied for the rule to match." + properties: + action: + type: string + destination: + description: Destination contains the match criteria that apply + to destination entity. + properties: + namespaceSelector: + description: "NamespaceSelector is an optional field that + contains a selector expression. Only traffic that originates + from (or terminates at) endpoints within the selected + namespaces will be matched. When both NamespaceSelector + and another selector are defined on the same rule, then + only workload endpoints that are matched by both selectors + will be selected by the rule. \n For NetworkPolicy, an + empty NamespaceSelector implies that the Selector is limited + to selecting only workload endpoints in the same namespace + as the NetworkPolicy. \n For NetworkPolicy, `global()` + NamespaceSelector implies that the Selector is limited + to selecting only GlobalNetworkSet or HostEndpoint. \n + For GlobalNetworkPolicy, an empty NamespaceSelector implies + the Selector applies to workload endpoints across all + namespaces." + type: string + nets: + description: Nets is an optional field that restricts the + rule to only apply to traffic that originates from (or + terminates at) IP addresses in any of the given subnets. + items: + type: string + type: array + notNets: + description: NotNets is the negated version of the Nets + field. + items: + type: string + type: array + notPorts: + description: NotPorts is the negated version of the Ports + field. Since only some protocols have ports, if any ports + are specified it requires the Protocol match in the Rule + to be set to "TCP" or "UDP". + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + notSelector: + description: NotSelector is the negated version of the Selector + field. See Selector field for subtleties with negated + selectors. + type: string + ports: + description: "Ports is an optional field that restricts + the rule to only apply to traffic that has a source (destination) + port that matches one of these ranges/values. This value + is a list of integers or strings that represent ranges + of ports. \n Since only some protocols have ports, if + any ports are specified it requires the Protocol match + in the Rule to be set to \"TCP\" or \"UDP\"." + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + selector: + description: "Selector is an optional field that contains + a selector expression (see Policy for sample syntax). + \ Only traffic that originates from (terminates at) endpoints + matching the selector will be matched. \n Note that: in + addition to the negated version of the Selector (see NotSelector + below), the selector expression syntax itself supports + negation. The two types of negation are subtly different. + One negates the set of matched endpoints, the other negates + the whole match: \n \tSelector = \"!has(my_label)\" matches + packets that are from other Calico-controlled \tendpoints + that do not have the label \"my_label\". \n \tNotSelector + = \"has(my_label)\" matches packets that are not from + Calico-controlled \tendpoints that do have the label \"my_label\". + \n The effect is that the latter will accept packets from + non-Calico sources whereas the former is limited to packets + from Calico-controlled endpoints." + type: string + serviceAccounts: + description: ServiceAccounts is an optional field that restricts + the rule to only apply to traffic that originates from + (or terminates at) a pod running as a matching service + account. + properties: + names: + description: Names is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account whose name is in the list. + items: + type: string + type: array + selector: + description: Selector is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account that matches the given label selector. If + both Names and Selector are specified then they are + AND'ed. + type: string + type: object + services: + description: "Services is an optional field that contains + options for matching Kubernetes Services. If specified, + only traffic that originates from or terminates at endpoints + within the selected service(s) will be matched, and only + to/from each endpoint's port. \n Services cannot be specified + on the same rule as Selector, NotSelector, NamespaceSelector, + Nets, NotNets or ServiceAccounts. \n Ports and NotPorts + can only be specified with Services on ingress rules." + properties: + name: + description: Name specifies the name of a Kubernetes + Service to match. + type: string + namespace: + description: Namespace specifies the namespace of the + given Service. If left empty, the rule will match + within this policy's namespace. + type: string + type: object + type: object + http: + description: HTTP contains match criteria that apply to HTTP + requests. + properties: + methods: + description: Methods is an optional field that restricts + the rule to apply only to HTTP requests that use one of + the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple + methods are OR'd together. + items: + type: string + type: array + paths: + description: 'Paths is an optional field that restricts + the rule to apply to HTTP requests that use one of the + listed HTTP Paths. Multiple paths are OR''d together. + e.g: - exact: /foo - prefix: /bar NOTE: Each entry may + ONLY specify either a `exact` or a `prefix` match. The + validator will check for it.' + items: + description: 'HTTPPath specifies an HTTP path to match. + It may be either of the form: exact: : which matches + the path exactly or prefix: : which matches + the path prefix' + properties: + exact: + type: string + prefix: + type: string + type: object + type: array + type: object + icmp: + description: ICMP is an optional field that restricts the rule + to apply to a specific type and code of ICMP traffic. This + should only be specified if the Protocol field is set to "ICMP" + or "ICMPv6". + properties: + code: + description: Match on a specific ICMP code. If specified, + the Type value must also be specified. This is a technical + limitation imposed by the kernel's iptables firewall, + which Calico uses to enforce the rule. + type: integer + type: + description: Match on a specific ICMP type. For example + a value of 8 refers to ICMP Echo Request (i.e. pings). + type: integer + type: object + ipVersion: + description: IPVersion is an optional field that restricts the + rule to only match a specific IP version. + type: integer + metadata: + description: Metadata contains additional information for this + rule + properties: + annotations: + additionalProperties: + type: string + description: Annotations is a set of key value pairs that + give extra information about the rule + type: object + type: object + notICMP: + description: NotICMP is the negated version of the ICMP field. + properties: + code: + description: Match on a specific ICMP code. If specified, + the Type value must also be specified. This is a technical + limitation imposed by the kernel's iptables firewall, + which Calico uses to enforce the rule. + type: integer + type: + description: Match on a specific ICMP type. For example + a value of 8 refers to ICMP Echo Request (i.e. pings). + type: integer + type: object + notProtocol: + anyOf: + - type: integer + - type: string + description: NotProtocol is the negated version of the Protocol + field. + pattern: ^.* + x-kubernetes-int-or-string: true + protocol: + anyOf: + - type: integer + - type: string + description: "Protocol is an optional field that restricts the + rule to only apply to traffic of a specific IP protocol. Required + if any of the EntityRules contain Ports (because ports only + apply to certain protocols). \n Must be one of these string + values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\", + \"UDPLite\" or an integer in the range 1-255." + pattern: ^.* + x-kubernetes-int-or-string: true + source: + description: Source contains the match criteria that apply to + source entity. + properties: + namespaceSelector: + description: "NamespaceSelector is an optional field that + contains a selector expression. Only traffic that originates + from (or terminates at) endpoints within the selected + namespaces will be matched. When both NamespaceSelector + and another selector are defined on the same rule, then + only workload endpoints that are matched by both selectors + will be selected by the rule. \n For NetworkPolicy, an + empty NamespaceSelector implies that the Selector is limited + to selecting only workload endpoints in the same namespace + as the NetworkPolicy. \n For NetworkPolicy, `global()` + NamespaceSelector implies that the Selector is limited + to selecting only GlobalNetworkSet or HostEndpoint. \n + For GlobalNetworkPolicy, an empty NamespaceSelector implies + the Selector applies to workload endpoints across all + namespaces." + type: string + nets: + description: Nets is an optional field that restricts the + rule to only apply to traffic that originates from (or + terminates at) IP addresses in any of the given subnets. + items: + type: string + type: array + notNets: + description: NotNets is the negated version of the Nets + field. + items: + type: string + type: array + notPorts: + description: NotPorts is the negated version of the Ports + field. Since only some protocols have ports, if any ports + are specified it requires the Protocol match in the Rule + to be set to "TCP" or "UDP". + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + notSelector: + description: NotSelector is the negated version of the Selector + field. See Selector field for subtleties with negated + selectors. + type: string + ports: + description: "Ports is an optional field that restricts + the rule to only apply to traffic that has a source (destination) + port that matches one of these ranges/values. This value + is a list of integers or strings that represent ranges + of ports. \n Since only some protocols have ports, if + any ports are specified it requires the Protocol match + in the Rule to be set to \"TCP\" or \"UDP\"." + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + selector: + description: "Selector is an optional field that contains + a selector expression (see Policy for sample syntax). + \ Only traffic that originates from (terminates at) endpoints + matching the selector will be matched. \n Note that: in + addition to the negated version of the Selector (see NotSelector + below), the selector expression syntax itself supports + negation. The two types of negation are subtly different. + One negates the set of matched endpoints, the other negates + the whole match: \n \tSelector = \"!has(my_label)\" matches + packets that are from other Calico-controlled \tendpoints + that do not have the label \"my_label\". \n \tNotSelector + = \"has(my_label)\" matches packets that are not from + Calico-controlled \tendpoints that do have the label \"my_label\". + \n The effect is that the latter will accept packets from + non-Calico sources whereas the former is limited to packets + from Calico-controlled endpoints." + type: string + serviceAccounts: + description: ServiceAccounts is an optional field that restricts + the rule to only apply to traffic that originates from + (or terminates at) a pod running as a matching service + account. + properties: + names: + description: Names is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account whose name is in the list. + items: + type: string + type: array + selector: + description: Selector is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account that matches the given label selector. If + both Names and Selector are specified then they are + AND'ed. + type: string + type: object + services: + description: "Services is an optional field that contains + options for matching Kubernetes Services. If specified, + only traffic that originates from or terminates at endpoints + within the selected service(s) will be matched, and only + to/from each endpoint's port. \n Services cannot be specified + on the same rule as Selector, NotSelector, NamespaceSelector, + Nets, NotNets or ServiceAccounts. \n Ports and NotPorts + can only be specified with Services on ingress rules." + properties: + name: + description: Name specifies the name of a Kubernetes + Service to match. + type: string + namespace: + description: Namespace specifies the namespace of the + given Service. If left empty, the rule will match + within this policy's namespace. + type: string + type: object + type: object + required: + - action + type: object + type: array + ingress: + description: The ordered set of ingress rules. Each rule contains + a set of packet match criteria and a corresponding action to apply. + items: + description: "A Rule encapsulates a set of match criteria and an + action. Both selector-based security Policy and security Profiles + reference rules - separated out as a list of rules for both ingress + and egress packet matching. \n Each positive match criteria has + a negated version, prefixed with \"Not\". All the match criteria + within a rule must be satisfied for a packet to match. A single + rule can contain the positive and negative version of a match + and both must be satisfied for the rule to match." + properties: + action: + type: string + destination: + description: Destination contains the match criteria that apply + to destination entity. + properties: + namespaceSelector: + description: "NamespaceSelector is an optional field that + contains a selector expression. Only traffic that originates + from (or terminates at) endpoints within the selected + namespaces will be matched. When both NamespaceSelector + and another selector are defined on the same rule, then + only workload endpoints that are matched by both selectors + will be selected by the rule. \n For NetworkPolicy, an + empty NamespaceSelector implies that the Selector is limited + to selecting only workload endpoints in the same namespace + as the NetworkPolicy. \n For NetworkPolicy, `global()` + NamespaceSelector implies that the Selector is limited + to selecting only GlobalNetworkSet or HostEndpoint. \n + For GlobalNetworkPolicy, an empty NamespaceSelector implies + the Selector applies to workload endpoints across all + namespaces." + type: string + nets: + description: Nets is an optional field that restricts the + rule to only apply to traffic that originates from (or + terminates at) IP addresses in any of the given subnets. + items: + type: string + type: array + notNets: + description: NotNets is the negated version of the Nets + field. + items: + type: string + type: array + notPorts: + description: NotPorts is the negated version of the Ports + field. Since only some protocols have ports, if any ports + are specified it requires the Protocol match in the Rule + to be set to "TCP" or "UDP". + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + notSelector: + description: NotSelector is the negated version of the Selector + field. See Selector field for subtleties with negated + selectors. + type: string + ports: + description: "Ports is an optional field that restricts + the rule to only apply to traffic that has a source (destination) + port that matches one of these ranges/values. This value + is a list of integers or strings that represent ranges + of ports. \n Since only some protocols have ports, if + any ports are specified it requires the Protocol match + in the Rule to be set to \"TCP\" or \"UDP\"." + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + selector: + description: "Selector is an optional field that contains + a selector expression (see Policy for sample syntax). + \ Only traffic that originates from (terminates at) endpoints + matching the selector will be matched. \n Note that: in + addition to the negated version of the Selector (see NotSelector + below), the selector expression syntax itself supports + negation. The two types of negation are subtly different. + One negates the set of matched endpoints, the other negates + the whole match: \n \tSelector = \"!has(my_label)\" matches + packets that are from other Calico-controlled \tendpoints + that do not have the label \"my_label\". \n \tNotSelector + = \"has(my_label)\" matches packets that are not from + Calico-controlled \tendpoints that do have the label \"my_label\". + \n The effect is that the latter will accept packets from + non-Calico sources whereas the former is limited to packets + from Calico-controlled endpoints." + type: string + serviceAccounts: + description: ServiceAccounts is an optional field that restricts + the rule to only apply to traffic that originates from + (or terminates at) a pod running as a matching service + account. + properties: + names: + description: Names is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account whose name is in the list. + items: + type: string + type: array + selector: + description: Selector is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account that matches the given label selector. If + both Names and Selector are specified then they are + AND'ed. + type: string + type: object + services: + description: "Services is an optional field that contains + options for matching Kubernetes Services. If specified, + only traffic that originates from or terminates at endpoints + within the selected service(s) will be matched, and only + to/from each endpoint's port. \n Services cannot be specified + on the same rule as Selector, NotSelector, NamespaceSelector, + Nets, NotNets or ServiceAccounts. \n Ports and NotPorts + can only be specified with Services on ingress rules." + properties: + name: + description: Name specifies the name of a Kubernetes + Service to match. + type: string + namespace: + description: Namespace specifies the namespace of the + given Service. If left empty, the rule will match + within this policy's namespace. + type: string + type: object + type: object + http: + description: HTTP contains match criteria that apply to HTTP + requests. + properties: + methods: + description: Methods is an optional field that restricts + the rule to apply only to HTTP requests that use one of + the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple + methods are OR'd together. + items: + type: string + type: array + paths: + description: 'Paths is an optional field that restricts + the rule to apply to HTTP requests that use one of the + listed HTTP Paths. Multiple paths are OR''d together. + e.g: - exact: /foo - prefix: /bar NOTE: Each entry may + ONLY specify either a `exact` or a `prefix` match. The + validator will check for it.' + items: + description: 'HTTPPath specifies an HTTP path to match. + It may be either of the form: exact: : which matches + the path exactly or prefix: : which matches + the path prefix' + properties: + exact: + type: string + prefix: + type: string + type: object + type: array + type: object + icmp: + description: ICMP is an optional field that restricts the rule + to apply to a specific type and code of ICMP traffic. This + should only be specified if the Protocol field is set to "ICMP" + or "ICMPv6". + properties: + code: + description: Match on a specific ICMP code. If specified, + the Type value must also be specified. This is a technical + limitation imposed by the kernel's iptables firewall, + which Calico uses to enforce the rule. + type: integer + type: + description: Match on a specific ICMP type. For example + a value of 8 refers to ICMP Echo Request (i.e. pings). + type: integer + type: object + ipVersion: + description: IPVersion is an optional field that restricts the + rule to only match a specific IP version. + type: integer + metadata: + description: Metadata contains additional information for this + rule + properties: + annotations: + additionalProperties: + type: string + description: Annotations is a set of key value pairs that + give extra information about the rule + type: object + type: object + notICMP: + description: NotICMP is the negated version of the ICMP field. + properties: + code: + description: Match on a specific ICMP code. If specified, + the Type value must also be specified. This is a technical + limitation imposed by the kernel's iptables firewall, + which Calico uses to enforce the rule. + type: integer + type: + description: Match on a specific ICMP type. For example + a value of 8 refers to ICMP Echo Request (i.e. pings). + type: integer + type: object + notProtocol: + anyOf: + - type: integer + - type: string + description: NotProtocol is the negated version of the Protocol + field. + pattern: ^.* + x-kubernetes-int-or-string: true + protocol: + anyOf: + - type: integer + - type: string + description: "Protocol is an optional field that restricts the + rule to only apply to traffic of a specific IP protocol. Required + if any of the EntityRules contain Ports (because ports only + apply to certain protocols). \n Must be one of these string + values: \"TCP\", \"UDP\", \"ICMP\", \"ICMPv6\", \"SCTP\", + \"UDPLite\" or an integer in the range 1-255." + pattern: ^.* + x-kubernetes-int-or-string: true + source: + description: Source contains the match criteria that apply to + source entity. + properties: + namespaceSelector: + description: "NamespaceSelector is an optional field that + contains a selector expression. Only traffic that originates + from (or terminates at) endpoints within the selected + namespaces will be matched. When both NamespaceSelector + and another selector are defined on the same rule, then + only workload endpoints that are matched by both selectors + will be selected by the rule. \n For NetworkPolicy, an + empty NamespaceSelector implies that the Selector is limited + to selecting only workload endpoints in the same namespace + as the NetworkPolicy. \n For NetworkPolicy, `global()` + NamespaceSelector implies that the Selector is limited + to selecting only GlobalNetworkSet or HostEndpoint. \n + For GlobalNetworkPolicy, an empty NamespaceSelector implies + the Selector applies to workload endpoints across all + namespaces." + type: string + nets: + description: Nets is an optional field that restricts the + rule to only apply to traffic that originates from (or + terminates at) IP addresses in any of the given subnets. + items: + type: string + type: array + notNets: + description: NotNets is the negated version of the Nets + field. + items: + type: string + type: array + notPorts: + description: NotPorts is the negated version of the Ports + field. Since only some protocols have ports, if any ports + are specified it requires the Protocol match in the Rule + to be set to "TCP" or "UDP". + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + notSelector: + description: NotSelector is the negated version of the Selector + field. See Selector field for subtleties with negated + selectors. + type: string + ports: + description: "Ports is an optional field that restricts + the rule to only apply to traffic that has a source (destination) + port that matches one of these ranges/values. This value + is a list of integers or strings that represent ranges + of ports. \n Since only some protocols have ports, if + any ports are specified it requires the Protocol match + in the Rule to be set to \"TCP\" or \"UDP\"." + items: + anyOf: + - type: integer + - type: string + pattern: ^.* + x-kubernetes-int-or-string: true + type: array + selector: + description: "Selector is an optional field that contains + a selector expression (see Policy for sample syntax). + \ Only traffic that originates from (terminates at) endpoints + matching the selector will be matched. \n Note that: in + addition to the negated version of the Selector (see NotSelector + below), the selector expression syntax itself supports + negation. The two types of negation are subtly different. + One negates the set of matched endpoints, the other negates + the whole match: \n \tSelector = \"!has(my_label)\" matches + packets that are from other Calico-controlled \tendpoints + that do not have the label \"my_label\". \n \tNotSelector + = \"has(my_label)\" matches packets that are not from + Calico-controlled \tendpoints that do have the label \"my_label\". + \n The effect is that the latter will accept packets from + non-Calico sources whereas the former is limited to packets + from Calico-controlled endpoints." + type: string + serviceAccounts: + description: ServiceAccounts is an optional field that restricts + the rule to only apply to traffic that originates from + (or terminates at) a pod running as a matching service + account. + properties: + names: + description: Names is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account whose name is in the list. + items: + type: string + type: array + selector: + description: Selector is an optional field that restricts + the rule to only apply to traffic that originates + from (or terminates at) a pod running as a service + account that matches the given label selector. If + both Names and Selector are specified then they are + AND'ed. + type: string + type: object + services: + description: "Services is an optional field that contains + options for matching Kubernetes Services. If specified, + only traffic that originates from or terminates at endpoints + within the selected service(s) will be matched, and only + to/from each endpoint's port. \n Services cannot be specified + on the same rule as Selector, NotSelector, NamespaceSelector, + Nets, NotNets or ServiceAccounts. \n Ports and NotPorts + can only be specified with Services on ingress rules." + properties: + name: + description: Name specifies the name of a Kubernetes + Service to match. + type: string + namespace: + description: Namespace specifies the namespace of the + given Service. If left empty, the rule will match + within this policy's namespace. + type: string + type: object + type: object + required: + - action + type: object + type: array + order: + description: Order is an optional field that specifies the order in + which the policy is applied. Policies with higher "order" are applied + after those with lower order. If the order is omitted, it may be + considered to be "infinite" - i.e. the policy will be applied last. Policies + with identical order will be applied in alphanumerical order based + on the Policy "Name". + type: number + selector: + description: "The selector is an expression used to pick pick out + the endpoints that the policy should be applied to. \n Selector + expressions follow this syntax: \n \tlabel == \"string_literal\" + \ -> comparison, e.g. my_label == \"foo bar\" \tlabel != \"string_literal\" + \ -> not equal; also matches if label is not present \tlabel in + { \"a\", \"b\", \"c\", ... } -> true if the value of label X is + one of \"a\", \"b\", \"c\" \tlabel not in { \"a\", \"b\", \"c\", + ... } -> true if the value of label X is not one of \"a\", \"b\", + \"c\" \thas(label_name) -> True if that label is present \t! expr + -> negation of expr \texpr && expr -> Short-circuit and \texpr + || expr -> Short-circuit or \t( expr ) -> parens for grouping \tall() + or the empty selector -> matches all endpoints. \n Label names are + allowed to contain alphanumerics, -, _ and /. String literals are + more permissive but they do not support escape characters. \n Examples + (with made-up labels): \n \ttype == \"webserver\" && deployment + == \"prod\" \ttype in {\"frontend\", \"backend\"} \tdeployment != + \"dev\" \t! has(label_name)" + type: string + serviceAccountSelector: + description: ServiceAccountSelector is an optional field for an expression + used to select a pod based on service accounts. + type: string + types: + description: "Types indicates whether this policy applies to ingress, + or to egress, or to both. When not explicitly specified (and so + the value on creation is empty or nil), Calico defaults Types according + to what Ingress and Egress are present in the policy. The default + is: \n - [ PolicyTypeIngress ], if there are no Egress rules (including + the case where there are also no Ingress rules) \n - [ PolicyTypeEgress + ], if there are Egress rules but no Ingress rules \n - [ PolicyTypeIngress, + PolicyTypeEgress ], if there are both Ingress and Egress rules. + \n When the policy is read back again, Types will always be one + of these values, never empty or nil." + items: + description: PolicyType enumerates the possible values of the PolicySpec + Types field. + type: string + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: networksets.crd.projectcalico.org +spec: + group: crd.projectcalico.org + names: + kind: NetworkSet + listKind: NetworkSetList + plural: networksets + singular: networkset + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: NetworkSet is the Namespaced-equivalent of the GlobalNetworkSet. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: NetworkSetSpec contains the specification for a NetworkSet + resource. + properties: + nets: + description: The list of IP networks that belong to this set. + items: + type: string + type: array + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: + - v1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: haproxyloadbalancers.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + kind: HAProxyLoadBalancer + listKind: HAProxyLoadBalancerList + plural: haproxyloadbalancers + singular: haproxyloadbalancer + scope: Namespaced + versions: + - name: v1alpha3 + schema: + openAPIV3Schema: + description: "HAProxyLoadBalancer is the Schema for the haproxyloadbalancers + API \n Deprecated: This type will be removed in v1alpha4." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: HAProxyLoadBalancerSpec defines the desired state of HAProxyLoadBalancer. + properties: + user: + description: SSHUser specifies the name of a user that is granted + remote access to the deployed VM. + properties: + authorizedKeys: + description: AuthorizedKeys is one or more public SSH keys that + grant remote access. + items: + type: string + type: array + name: + description: Name is the name of the SSH user. + type: string + required: + - authorizedKeys + - name + type: object + virtualMachineConfiguration: + description: VirtualMachineConfiguration is information used to deploy + a load balancer VM. + properties: + cloneMode: + description: CloneMode specifies the type of clone operation. + The LinkedClone mode is only support for templates that have + at least one snapshot. If the template has no snapshots, then + CloneMode defaults to FullClone. When LinkedClone mode is enabled + the DiskGiB field is ignored as it is not possible to expand + disks of linked clones. Defaults to LinkedClone, but fails gracefully + to FullClone if the source of the clone operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX options + that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the datacenter + in which the virtual machine is created/located. + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, + in GiB. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int32 + type: integer + folder: + description: Folder is the name or inventory path of the folder + in which the virtual machine is created/located. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's memory, + in MiB. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this machine's + VM. + properties: + devices: + description: Devices is the list of network devices used by + the virtual machine. TODO(akutz) Make sure at least one + network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + deviceName: + description: DeviceName may be used to explicitly assign + a name to the network device as it exists in the guest + operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether + or not to use DHCP for IPv4 on this device. If true + then IPAddrs should not contain any IPv4 addresses. + type: boolean + dhcp6: + description: DHCP6 is a flag that indicates whether + or not to use DHCP for IPv6 on this device. If true + then IPAddrs should not contain any IPv6 addresses. + type: boolean + gateway4: + description: Gateway4 is the IPv4 gateway used by this + device. Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by this + device. Required when DHCP6 is false. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 and/or + IPv6 addresses to assign to this device. IP addresses + must also specify the segment length in CIDR notation. + Required when DHCP4 and DHCP6 are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by this + device. It is generally a good idea to omit this field + and allow a MAC address to be generated. Please note + that this value must use the VMware OUI to work with + the in-tree vSphere cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission + Unit size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or IPv6 + addresses used as DNS nameservers. Please note that + Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere + network to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static routes + applied to the device. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of + the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains + used when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR for + the Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes applied + to the virtual machine. + items: + description: NetworkRouteSpec defines a static network route. + properties: + metric: + description: Metric is the weight/priority of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in a + virtual machine. Defaults to the eponymous property value in + the template from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to distribute + CPUs in this virtual machine. Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + format: int32 + type: integer + resourcePool: + description: ResourcePool is the name or inventory path of the + resource pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere server + on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which to + create a linked clone. This field is ignored if LinkedClone + is not enabled. Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use with + this Virtual Machine + type: string + template: + description: Template is the name or inventory path of the template + used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum + of the given vCenter server's host certificate When this is + set to empty, this VirtualMachine would be created without TLS + certificate validation of the communication between Cluster + API Provider vSphere and the VMware vCenter server. + type: string + required: + - network + - template + type: object + required: + - virtualMachineConfiguration + type: object + status: + description: HAProxyLoadBalancerStatus defines the observed state of HAProxyLoadBalancer. + properties: + address: + description: "Address is the IP address or DNS name of the load balancer. + \n This field is required as part of the Portable Load Balancer + model and is inspected via an unstructured reader by other controllers + to determine the status of the load balancer." + type: string + ready: + description: "Ready indicates whether or not the load balancer is + ready. \n This field is required as part of the Portable Load Balancer + model and is inspected via an unstructured reader by other controllers + to determine the status of the load balancer." + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha3 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vsphereclusters.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereCluster + listKind: VSphereClusterList + plural: vsphereclusters + singular: vspherecluster + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Cluster infrastructure is ready for VSphereMachine + jsonPath: .status.ready + name: Ready + type: string + - description: Server is the address of the vSphere endpoint + jsonPath: .spec.server + name: Server + type: string + - description: API Endpoint + jsonPath: .spec.controlPlaneEndpoint[0] + name: ControlPlaneEndpoint + priority: 1 + type: string + - description: Time duration since creation of Machine + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha3 + schema: + openAPIV3Schema: + description: "VSphereCluster is the Schema for the vsphereclusters API \n + Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereClusterSpec defines the desired state of VSphereCluster + properties: + cloudProviderConfiguration: + description: 'CloudProviderConfiguration holds the cluster-wide configuration + for the DEPRECATED: will be removed in v1alpha4 vSphere cloud provider.' + properties: + disk: + description: Disk is the vSphere cloud provider's disk configuration. + properties: + scsiControllerType: + description: SCSIControllerType defines SCSI controller to + be used. + type: string + type: object + global: + description: Global is the vSphere cloud provider's global configuration. + properties: + apiBindPort: + description: APIBindPort configures the vSphere cloud controller + manager API port. Defaults to 43001. + type: string + apiDisable: + description: APIDisable disables the vSphere cloud controller + manager API. Defaults to true. + type: boolean + caFile: + description: CAFile Specifies the path to a CA certificate + in PEM format. If not configured, the system's CA certificates + will be used. + type: string + datacenters: + description: Datacenters is a CSV string of the datacenters + in which VMs are located. + type: string + insecure: + description: Insecure is a flag that disables TLS peer verification. + type: boolean + password: + description: Password is the password used to access a vSphere + endpoint. + type: string + port: + description: Port is the port on which the vSphere endpoint + is listening. Defaults to 443. + type: string + roundTripperCount: + description: RoundTripperCount specifies the SOAP round tripper + count (retries = RoundTripper - 1) + format: int32 + type: integer + secretName: + description: SecretName is the name of the Kubernetes secret + in which the vSphere credentials are located. + type: string + secretNamespace: + description: SecretNamespace is the namespace for SecretName. + type: string + secretsDirectory: + description: 'SecretsDirectory is a directory in which secrets + may be found. This may used in the event that: 1. It is + not desirable to use the K8s API to watch changes to secrets + 2. The cloud controller manager is not running in a K8s + environment, such as DC/OS. For example, the container storage + interface (CSI) is container orcehstrator (CO) agnostic, + and should support non-K8s COs. Defaults to /etc/cloud/credentials.' + type: string + serviceAccount: + description: ServiceAccount is the Kubernetes service account + used to launch the cloud controller manager. Defaults to + cloud-controller-manager. + type: string + thumbprint: + description: Thumbprint is the cryptographic thumbprint of + the vSphere endpoint's certificate. + type: string + username: + description: Username is the username used to access a vSphere + endpoint. + type: string + type: object + labels: + description: Labels is the vSphere cloud provider's zone and region + configuration. + properties: + region: + description: Region is the region in which VMs are created/located. + type: string + zone: + description: Zone is the zone in which VMs are created/located. + type: string + type: object + network: + description: Network is the vSphere cloud provider's network configuration. + properties: + name: + description: Name is the name of the network to which VMs + are connected. + type: string + type: object + providerConfig: + description: CPIProviderConfig contains extra information used + to configure the vSphere cloud provider. + properties: + cloud: + properties: + controllerImage: + type: string + extraArgs: + additionalProperties: + type: string + description: ExtraArgs passes through extra arguments + to the cloud provider. The arguments here are passed + to the cloud provider daemonset specification + type: object + type: object + storage: + properties: + attacherImage: + type: string + controllerImage: + type: string + livenessProbeImage: + type: string + metadataSyncerImage: + type: string + nodeDriverImage: + type: string + provisionerImage: + type: string + registrarImage: + type: string + type: object + type: object + virtualCenter: + additionalProperties: + description: CPIVCenterConfig is a vSphere cloud provider's + vCenter configuration. + properties: + datacenters: + description: Datacenters is a CSV string of the datacenters + in which VMs are located. + type: string + password: + description: Password is the password used to access a vSphere + endpoint. + type: string + port: + description: Port is the port on which the vSphere endpoint + is listening. Defaults to 443. + type: string + roundTripperCount: + description: RoundTripperCount specifies the SOAP round + tripper count (retries = RoundTripper - 1) + format: int32 + type: integer + thumbprint: + description: Thumbprint is the cryptographic thumbprint + of the vSphere endpoint's certificate. + type: string + username: + description: Username is the username used to access a vSphere + endpoint. + type: string + type: object + description: VCenter is a list of vCenter configurations. + type: object + workspace: + description: Workspace is the vSphere cloud provider's workspace + configuration. + properties: + datacenter: + description: Datacenter is the datacenter in which VMs are + created/located. + type: string + datastore: + description: Datastore is the datastore in which VMs are created/located. + type: string + folder: + description: Folder is the folder in which VMs are created/located. + type: string + resourcePool: + description: ResourcePool is the resource pool in which VMs + are created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere + endpoint. + type: string + type: object + type: object + controlPlaneEndpoint: + description: ControlPlaneEndpoint represents the endpoint used to + communicate with the control plane. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + identityRef: + description: IdentityRef is a reference to either a Secret or VSphereClusterIdentity + that contains the identity to use when reconciling the cluster. + properties: + kind: + description: Kind of the identity. Can either be VSphereClusterIdentity + or Secret + enum: + - VSphereClusterIdentity + - Secret + type: string + name: + description: Name of the identity. + minLength: 1 + type: string + required: + - kind + - name + type: object + insecure: + description: 'Insecure is a flag that controls whether or not to validate + the vSphere server''s certificate. DEPRECATED: will be removed in + v1alpha4' + type: boolean + loadBalancerRef: + description: 'LoadBalancerRef may be used to enable a control plane + load balancer for this cluster. When a LoadBalancerRef is provided, + the VSphereCluster.Status.Ready field will not be true until the + referenced resource is Status.Ready and has a non-empty Status.Address + value. DEPRECATED: will be removed in v1alpha4' + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of + an entire object, this string should contain a valid JSON/Go + field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within + a pod, this would take on a value like: "spec.containers{name}" + (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" + (container with index 2 in this pod). This syntax is chosen + only to have some well-defined way of referencing a part of + an object. TODO: this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + x-kubernetes-map-type: atomic + server: + description: Server is the address of the vSphere endpoint. + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate When provided, Insecure + should not be set to true + type: string + type: object + status: + description: VSphereClusterStatus defines the observed state of VSphereClusterSpec + properties: + conditions: + description: Conditions defines current service state of the VSphereCluster. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + failureDomains: + additionalProperties: + description: FailureDomainSpec is the Schema for Cluster API failure + domains. It allows controllers to understand how many failure + domains a cluster can optionally span across. + properties: + attributes: + additionalProperties: + type: string + description: Attributes is a free form map of attributes an + infrastructure provider might use or require. + type: object + controlPlane: + description: ControlPlane determines if this failure domain + is suitable for use by control plane machines. + type: boolean + type: object + description: FailureDomains is a list of failure domain objects synced + from the infrastructure provider. + type: object + ready: + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Cluster infrastructure is ready for VSphereMachine + jsonPath: .status.ready + name: Ready + type: string + - description: Server is the address of the vSphere endpoint + jsonPath: .spec.server + name: Server + type: string + - description: API Endpoint + jsonPath: .spec.controlPlaneEndpoint[0] + name: ControlPlaneEndpoint + priority: 1 + type: string + - description: Time duration since creation of Machine + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha4 + schema: + openAPIV3Schema: + description: "VSphereCluster is the Schema for the vsphereclusters API \n + Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereClusterSpec defines the desired state of VSphereCluster + properties: + controlPlaneEndpoint: + description: ControlPlaneEndpoint represents the endpoint used to + communicate with the control plane. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + identityRef: + description: IdentityRef is a reference to either a Secret or VSphereClusterIdentity + that contains the identity to use when reconciling the cluster. + properties: + kind: + description: Kind of the identity. Can either be VSphereClusterIdentity + or Secret + enum: + - VSphereClusterIdentity + - Secret + type: string + name: + description: Name of the identity. + minLength: 1 + type: string + required: + - kind + - name + type: object + server: + description: Server is the address of the vSphere endpoint. + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate + type: string + type: object + status: + description: VSphereClusterStatus defines the observed state of VSphereClusterSpec + properties: + conditions: + description: Conditions defines current service state of the VSphereCluster. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + failureDomains: + additionalProperties: + description: FailureDomainSpec is the Schema for Cluster API failure + domains. It allows controllers to understand how many failure + domains a cluster can optionally span across. + properties: + attributes: + additionalProperties: + type: string + description: Attributes is a free form map of attributes an + infrastructure provider might use or require. + type: object + controlPlane: + description: ControlPlane determines if this failure domain + is suitable for use by control plane machines. + type: boolean + type: object + description: FailureDomains is a list of failure domain objects synced + from the infrastructure provider. + type: object + ready: + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Cluster infrastructure is ready for VSphereMachine + jsonPath: .status.ready + name: Ready + type: string + - description: Server is the address of the vSphere endpoint. + jsonPath: .spec.server + name: Server + type: string + - description: API Endpoint + jsonPath: .spec.controlPlaneEndpoint[0] + name: ControlPlaneEndpoint + priority: 1 + type: string + - description: Time duration since creation of Machine + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereCluster is the Schema for the vsphereclusters API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereClusterSpec defines the desired state of VSphereCluster + properties: + clusterModules: + description: ClusterModules hosts information regarding the anti-affinity + vSphere constructs for each of the objects responsible for creation + of VM objects belonging to the cluster. + items: + description: ClusterModule holds the anti affinity construct `ClusterModule` + identifier in use by the VMs owned by the object referred by the + TargetObjectName field. + properties: + controlPlane: + description: ControlPlane indicates whether the referred object + is responsible for control plane nodes. Currently, only the + KubeadmControlPlane objects have this flag set to true. Only + a single object in the slice can have this value set to true. + type: boolean + moduleUUID: + description: ModuleUUID is the unique identifier of the `ClusterModule` + used by the object. + type: string + targetObjectName: + description: TargetObjectName points to the object that uses + the Cluster Module information to enforce anti-affinity amongst + its descendant VM objects. + type: string + required: + - controlPlane + - moduleUUID + - targetObjectName + type: object + type: array + controlPlaneEndpoint: + description: ControlPlaneEndpoint represents the endpoint used to + communicate with the control plane. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + failureDomainSelector: + description: FailureDomainSelector is the label selector to use for + failure domain selection for the control plane nodes of the cluster. + If not set (`nil`), selecting failure domains will be disabled. + An empty value (`{}`) selects all existing failure domains. A valid + selector will select all failure domains which match the selector. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: A label selector requirement is a selector that + contains values, a key, and an operator that relates the key + and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: operator represents a key's relationship to + a set of values. Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: 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. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: 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. + type: object + type: object + x-kubernetes-map-type: atomic + identityRef: + description: IdentityRef is a reference to either a Secret or VSphereClusterIdentity + that contains the identity to use when reconciling the cluster. + properties: + kind: + description: Kind of the identity. Can either be VSphereClusterIdentity + or Secret + enum: + - VSphereClusterIdentity + - Secret + type: string + name: + description: Name of the identity. + minLength: 1 + type: string + required: + - kind + - name + type: object + server: + description: Server is the address of the vSphere endpoint. + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate + type: string + type: object + status: + description: VSphereClusterStatus defines the observed state of VSphereClusterSpec + properties: + conditions: + description: Conditions defines current service state of the VSphereCluster. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + failureDomains: + additionalProperties: + description: FailureDomainSpec is the Schema for Cluster API failure + domains. It allows controllers to understand how many failure + domains a cluster can optionally span across. + properties: + attributes: + additionalProperties: + type: string + description: Attributes is a free form map of attributes an + infrastructure provider might use or require. + type: object + controlPlane: + description: ControlPlane determines if this failure domain + is suitable for use by control plane machines. + type: boolean + type: object + description: FailureDomains is a list of failure domain objects synced + from the infrastructure provider. + type: object + ready: + type: boolean + vCenterVersion: + description: VCenterVersion defines the version of the vCenter server + defined in the spec. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vsphereclusteridentities.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereClusterIdentity + listKind: VSphereClusterIdentityList + plural: vsphereclusteridentities + singular: vsphereclusteridentity + scope: Cluster + versions: + - name: v1alpha3 + schema: + openAPIV3Schema: + description: "VSphereClusterIdentity defines the account to be used for reconciling + clusters \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + properties: + allowedNamespaces: + description: AllowedNamespaces is used to identify which namespaces + are allowed to use this account. Namespaces can be selected with + a label selector. If this object is nil, no namespaces will be allowed + properties: + selector: + description: Selector is a standard Kubernetes LabelSelector. + A label query over a set of resources. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector + that contains values, a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, NotIn, + Exists and DoesNotExist. + type: string + values: + description: 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. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: 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. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + secretName: + description: SecretName references a Secret inside the controller + namespace with the credentials to use + minLength: 1 + type: string + type: object + status: + properties: + conditions: + description: Conditions defines current service state of the VSphereCluster. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + ready: + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1alpha4 + schema: + openAPIV3Schema: + description: "VSphereClusterIdentity defines the account to be used for reconciling + clusters \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + properties: + allowedNamespaces: + description: AllowedNamespaces is used to identify which namespaces + are allowed to use this account. Namespaces can be selected with + a label selector. If this object is nil, no namespaces will be allowed + properties: + selector: + description: Selector is a standard Kubernetes LabelSelector. + A label query over a set of resources. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector + that contains values, a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, NotIn, + Exists and DoesNotExist. + type: string + values: + description: 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. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: 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. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + secretName: + description: SecretName references a Secret inside the controller + namespace with the credentials to use + minLength: 1 + type: string + type: object + status: + properties: + conditions: + description: Conditions defines current service state of the VSphereCluster. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + ready: + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereClusterIdentity defines the account to be used for reconciling + clusters + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + properties: + allowedNamespaces: + description: AllowedNamespaces is used to identify which namespaces + are allowed to use this account. Namespaces can be selected with + a label selector. If this object is nil, no namespaces will be allowed + properties: + selector: + description: Selector is a standard Kubernetes LabelSelector. + A label query over a set of resources. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector + that contains values, a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, NotIn, + Exists and DoesNotExist. + type: string + values: + description: 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. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: 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. + type: object + type: object + x-kubernetes-map-type: atomic + type: object + secretName: + description: SecretName references a Secret inside the controller + namespace with the credentials to use + minLength: 1 + type: string + type: object + status: + properties: + conditions: + description: Conditions defines current service state of the VSphereCluster. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + ready: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vsphereclustertemplates.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereClusterTemplate + listKind: VSphereClusterTemplateList + plural: vsphereclustertemplates + singular: vsphereclustertemplate + preserveUnknownFields: true + scope: Namespaced + versions: + - name: v1alpha4 + schema: + openAPIV3Schema: + description: "VSphereClusterTemplate is the Schema for the vsphereclustertemplates + API \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereClusterTemplateSpec defines the desired state of VSphereClusterTemplate + properties: + template: + properties: + spec: + description: VSphereClusterSpec defines the desired state of VSphereCluster + properties: + controlPlaneEndpoint: + description: ControlPlaneEndpoint represents the endpoint + used to communicate with the control plane. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + identityRef: + description: IdentityRef is a reference to either a Secret + or VSphereClusterIdentity that contains the identity to + use when reconciling the cluster. + properties: + kind: + description: Kind of the identity. Can either be VSphereClusterIdentity + or Secret + enum: + - VSphereClusterIdentity + - Secret + type: string + name: + description: Name of the identity. + minLength: 1 + type: string + required: + - kind + - name + type: object + server: + description: Server is the address of the vSphere endpoint. + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum + of the given vCenter server's host certificate + type: string + type: object + required: + - spec + type: object + required: + - template + type: object + type: object + served: true + storage: false + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereClusterTemplate is the Schema for the vsphereclustertemplates + API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereClusterTemplateSpec defines the desired state of VSphereClusterTemplate + properties: + template: + properties: + spec: + description: VSphereClusterSpec defines the desired state of VSphereCluster + properties: + clusterModules: + description: ClusterModules hosts information regarding the + anti-affinity vSphere constructs for each of the objects + responsible for creation of VM objects belonging to the + cluster. + items: + description: ClusterModule holds the anti affinity construct + `ClusterModule` identifier in use by the VMs owned by + the object referred by the TargetObjectName field. + properties: + controlPlane: + description: ControlPlane indicates whether the referred + object is responsible for control plane nodes. Currently, + only the KubeadmControlPlane objects have this flag + set to true. Only a single object in the slice can + have this value set to true. + type: boolean + moduleUUID: + description: ModuleUUID is the unique identifier of + the `ClusterModule` used by the object. + type: string + targetObjectName: + description: TargetObjectName points to the object that + uses the Cluster Module information to enforce anti-affinity + amongst its descendant VM objects. + type: string + required: + - controlPlane + - moduleUUID + - targetObjectName + type: object + type: array + controlPlaneEndpoint: + description: ControlPlaneEndpoint represents the endpoint + used to communicate with the control plane. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + failureDomainSelector: + description: FailureDomainSelector is the label selector to + use for failure domain selection for the control plane nodes + of the cluster. If not set (`nil`), selecting failure domains + will be disabled. An empty value (`{}`) selects all existing + failure domains. A valid selector will select all failure + domains which match the selector. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, NotIn, + Exists and DoesNotExist. + type: string + values: + description: 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. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: 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. + type: object + type: object + x-kubernetes-map-type: atomic + identityRef: + description: IdentityRef is a reference to either a Secret + or VSphereClusterIdentity that contains the identity to + use when reconciling the cluster. + properties: + kind: + description: Kind of the identity. Can either be VSphereClusterIdentity + or Secret + enum: + - VSphereClusterIdentity + - Secret + type: string + name: + description: Name of the identity. + minLength: 1 + type: string + required: + - kind + - name + type: object + server: + description: Server is the address of the vSphere endpoint. + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum + of the given vCenter server's host certificate + type: string + type: object + required: + - spec + type: object + required: + - template + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vspheredeploymentzones.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereDeploymentZone + listKind: VSphereDeploymentZoneList + plural: vspheredeploymentzones + singular: vspheredeploymentzone + scope: Cluster + versions: + - name: v1alpha3 + schema: + openAPIV3Schema: + description: "VSphereDeploymentZone is the Schema for the vspheredeploymentzones + API \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereDeploymentZoneSpec defines the desired state of VSphereDeploymentZone + properties: + controlPlane: + description: ControlPlane determines if this failure domain is suitable + for use by control plane machines. + type: boolean + failureDomain: + description: failureDomain is the name of the VSphereFailureDomain + used for this VSphereDeploymentZone + type: string + placementConstraint: + description: PlacementConstraint encapsulates the placement constraints + used within this deployment zone. + properties: + folder: + description: Folder is the name or inventory path of the folder + in which the virtual machine is created/located. + type: string + resourcePool: + description: ResourcePool is the name or inventory path of the + resource pool in which the virtual machine is created/located. + type: string + type: object + server: + description: Server is the address of the vSphere endpoint. + type: string + required: + - placementConstraint + type: object + status: + properties: + conditions: + description: Conditions defines current service state of the VSphereMachine. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + ready: + description: Ready is true when the VSphereDeploymentZone resource + is ready. If set to false, it will be ignored by VSphereClusters + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1alpha4 + schema: + openAPIV3Schema: + description: "VSphereDeploymentZone is the Schema for the vspheredeploymentzones + API \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereDeploymentZoneSpec defines the desired state of VSphereDeploymentZone + properties: + controlPlane: + description: ControlPlane determines if this failure domain is suitable + for use by control plane machines. + type: boolean + failureDomain: + description: FailureDomain is the name of the VSphereFailureDomain + used for this VSphereDeploymentZone + type: string + placementConstraint: + description: PlacementConstraint encapsulates the placement constraints + used within this deployment zone. + properties: + folder: + description: Folder is the name or inventory path of the folder + in which the virtual machine is created/located. + type: string + resourcePool: + description: ResourcePool is the name or inventory path of the + resource pool in which the virtual machine is created/located. + type: string + type: object + server: + description: Server is the address of the vSphere endpoint. + type: string + required: + - placementConstraint + type: object + status: + properties: + conditions: + description: Conditions defines current service state of the VSphereMachine. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + ready: + description: Ready is true when the VSphereDeploymentZone resource + is ready. If set to false, it will be ignored by VSphereClusters + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereDeploymentZone is the Schema for the vspheredeploymentzones + API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereDeploymentZoneSpec defines the desired state of VSphereDeploymentZone + properties: + controlPlane: + description: ControlPlane determines if this failure domain is suitable + for use by control plane machines. + type: boolean + failureDomain: + description: FailureDomain is the name of the VSphereFailureDomain + used for this VSphereDeploymentZone + type: string + placementConstraint: + description: PlacementConstraint encapsulates the placement constraints + used within this deployment zone. + properties: + folder: + description: Folder is the name or inventory path of the folder + in which the virtual machine is created/located. + type: string + resourcePool: + description: ResourcePool is the name or inventory path of the + resource pool in which the virtual machine is created/located. + type: string + type: object + server: + description: Server is the address of the vSphere endpoint. + type: string + required: + - placementConstraint + type: object + status: + properties: + conditions: + description: Conditions defines current service state of the VSphereMachine. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + ready: + description: Ready is true when the VSphereDeploymentZone resource + is ready. If set to false, it will be ignored by VSphereClusters + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vspherefailuredomains.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereFailureDomain + listKind: VSphereFailureDomainList + plural: vspherefailuredomains + singular: vspherefailuredomain + preserveUnknownFields: true + scope: Cluster + versions: + - name: v1alpha3 + schema: + openAPIV3Schema: + description: "VSphereFailureDomain is the Schema for the vspherefailuredomains + API \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereFailureDomainSpec defines the desired state of VSphereFailureDomain + properties: + region: + description: Region defines the name and type of a region + properties: + autoConfigure: + description: AutoConfigure tags the Type which is specified in + the Topology + type: boolean + name: + description: Name is the name of the tag that represents this + failure domain + type: string + tagCategory: + description: TagCategory is the category used for the tag + type: string + type: + description: Type is the type of failure domain, the current values + are "Datacenter", "ComputeCluster" and "HostGroup" + enum: + - Datacenter + - ComputeCluster + - HostGroup + type: string + required: + - name + - tagCategory + - type + type: object + topology: + description: Topology is the what describes a given failure domain + using vSphere constructs + properties: + computeCluster: + description: ComputeCluster as the failure domain + type: string + datacenter: + description: The underlying infrastructure for this failure domain + Datacenter as the failure domain + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + hosts: + description: Hosts has information required for placement of machines + on VSphere hosts. + properties: + hostGroupName: + description: HostGroupName is the name of the Host group + type: string + vmGroupName: + description: VMGroupName is the name of the VM group + type: string + required: + - hostGroupName + - vmGroupName + type: object + networks: + description: Networks is the list of networks within this failure + domain + items: + type: string + type: array + required: + - datacenter + type: object + zone: + description: Zone defines the name and type of a zone + properties: + autoConfigure: + description: AutoConfigure tags the Type which is specified in + the Topology + type: boolean + name: + description: Name is the name of the tag that represents this + failure domain + type: string + tagCategory: + description: TagCategory is the category used for the tag + type: string + type: + description: Type is the type of failure domain, the current values + are "Datacenter", "ComputeCluster" and "HostGroup" + enum: + - Datacenter + - ComputeCluster + - HostGroup + type: string + required: + - name + - tagCategory + - type + type: object + required: + - region + - topology + - zone + type: object + type: object + served: true + storage: false + - name: v1alpha4 + schema: + openAPIV3Schema: + description: "VSphereFailureDomain is the Schema for the vspherefailuredomains + API \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereFailureDomainSpec defines the desired state of VSphereFailureDomain + properties: + region: + description: Region defines the name and type of a region + properties: + autoConfigure: + description: AutoConfigure tags the Type which is specified in + the Topology + type: boolean + name: + description: Name is the name of the tag that represents this + failure domain + type: string + tagCategory: + description: TagCategory is the category used for the tag + type: string + type: + description: Type is the type of failure domain, the current values + are "Datacenter", "ComputeCluster" and "HostGroup" + enum: + - Datacenter + - ComputeCluster + - HostGroup + type: string + required: + - name + - tagCategory + - type + type: object + topology: + description: Topology describes a given failure domain using vSphere + constructs + properties: + computeCluster: + description: ComputeCluster as the failure domain + type: string + datacenter: + description: The underlying infrastructure for this failure domain + Datacenter as the failure domain + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + hosts: + description: Hosts has information required for placement of machines + on VSphere hosts. + properties: + hostGroupName: + description: HostGroupName is the name of the Host group + type: string + vmGroupName: + description: VMGroupName is the name of the VM group + type: string + required: + - hostGroupName + - vmGroupName + type: object + networks: + description: Networks is the list of networks within this failure + domain + items: + type: string + type: array + required: + - datacenter + type: object + zone: + description: Zone defines the name and type of a zone + properties: + autoConfigure: + description: AutoConfigure tags the Type which is specified in + the Topology + type: boolean + name: + description: Name is the name of the tag that represents this + failure domain + type: string + tagCategory: + description: TagCategory is the category used for the tag + type: string + type: + description: Type is the type of failure domain, the current values + are "Datacenter", "ComputeCluster" and "HostGroup" + enum: + - Datacenter + - ComputeCluster + - HostGroup + type: string + required: + - name + - tagCategory + - type + type: object + required: + - region + - topology + - zone + type: object + type: object + served: true + storage: false + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereFailureDomain is the Schema for the vspherefailuredomains + API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereFailureDomainSpec defines the desired state of VSphereFailureDomain + properties: + region: + description: Region defines the name and type of a region + properties: + autoConfigure: + description: "AutoConfigure tags the Type which is specified in + the Topology \n Deprecated: This field is going to be removed + in a future release." + type: boolean + name: + description: Name is the name of the tag that represents this + failure domain + type: string + tagCategory: + description: TagCategory is the category used for the tag + type: string + type: + description: Type is the type of failure domain, the current values + are "Datacenter", "ComputeCluster" and "HostGroup" + enum: + - Datacenter + - ComputeCluster + - HostGroup + type: string + required: + - name + - tagCategory + - type + type: object + topology: + description: Topology describes a given failure domain using vSphere + constructs + properties: + computeCluster: + description: ComputeCluster as the failure domain + type: string + datacenter: + description: Datacenter as the failure domain. + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + hosts: + description: Hosts has information required for placement of machines + on VSphere hosts. + properties: + hostGroupName: + description: HostGroupName is the name of the Host group + type: string + vmGroupName: + description: VMGroupName is the name of the VM group + type: string + required: + - hostGroupName + - vmGroupName + type: object + networks: + description: Networks is the list of networks within this failure + domain + items: + type: string + type: array + required: + - datacenter + type: object + zone: + description: Zone defines the name and type of a zone + properties: + autoConfigure: + description: "AutoConfigure tags the Type which is specified in + the Topology \n Deprecated: This field is going to be removed + in a future release." + type: boolean + name: + description: Name is the name of the tag that represents this + failure domain + type: string + tagCategory: + description: TagCategory is the category used for the tag + type: string + type: + description: Type is the type of failure domain, the current values + are "Datacenter", "ComputeCluster" and "HostGroup" + enum: + - Datacenter + - ComputeCluster + - HostGroup + type: string + required: + - name + - tagCategory + - type + type: object + required: + - region + - topology + - zone + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vspheremachines.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereMachine + listKind: VSphereMachineList + plural: vspheremachines + singular: vspheremachine + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Cluster to which this VSphereMachine belongs + jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name + name: Cluster + type: string + - description: Machine ready status + jsonPath: .status.ready + name: Ready + type: string + - description: VSphereMachine instance ID + jsonPath: .spec.providerID + name: ProviderID + type: string + - description: Machine object which owns this VSphereMachine + jsonPath: .metadata.ownerReferences[?(@.kind=="Machine")].name + name: Machine + priority: 1 + type: string + - description: Time duration since creation of Machine + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha3 + schema: + openAPIV3Schema: + description: "VSphereMachine is the Schema for the vspheremachines API \n + Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereMachineSpec defines the desired state of VSphereMachine + properties: + cloneMode: + description: CloneMode specifies the type of clone operation. The + LinkedClone mode is only support for templates that have at least + one snapshot. If the template has no snapshots, then CloneMode defaults + to FullClone. When LinkedClone mode is enabled the DiskGiB field + is ignored as it is not possible to expand disks of linked clones. + Defaults to LinkedClone, but fails gracefully to FullClone if the + source of the clone operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX options + that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the datacenter + in which the virtual machine is created/located. + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, in GiB. + Defaults to the eponymous property value in the template from which + the virtual machine is cloned. + format: int32 + type: integer + failureDomain: + description: FailureDomain is the failure domain unique identifier + this Machine should be attached to, as defined in Cluster API. For + this infrastructure provider, the name is equivalent to the name + of the VSphereDeploymentZone. + type: string + folder: + description: Folder is the name or inventory path of the folder in + which the virtual machine is created/located. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's memory, + in MiB. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this machine's + VM. + properties: + devices: + description: Devices is the list of network devices used by the + virtual machine. TODO(akutz) Make sure at least one network + matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + deviceName: + description: DeviceName may be used to explicitly assign + a name to the network device as it exists in the guest + operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether or not + to use DHCP for IPv4 on this device. If true then IPAddrs + should not contain any IPv4 addresses. + type: boolean + dhcp6: + description: DHCP6 is a flag that indicates whether or not + to use DHCP for IPv6 on this device. If true then IPAddrs + should not contain any IPv6 addresses. + type: boolean + gateway4: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP6 is false. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 and/or + IPv6 addresses to assign to this device. IP addresses + must also specify the segment length in CIDR notation. + Required when DHCP4 and DHCP6 are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by this device. + It is generally a good idea to omit this field and allow + a MAC address to be generated. Please note that this value + must use the VMware OUI to work with the in-tree vSphere + cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission Unit + size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or IPv6 addresses + used as DNS nameservers. Please note that Linux allows + only three nameservers (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere network + to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static routes + applied to the device. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains used + when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR for the + Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes applied + to the virtual machine. + items: + description: NetworkRouteSpec defines a static network route. + properties: + metric: + description: Metric is the weight/priority of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in a virtual + machine. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to distribute + CPUs in this virtual machine. Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + format: int32 + type: integer + providerID: + description: ProviderID is the virtual machine's BIOS UUID formated + as vsphere://12345678-1234-1234-1234-123456789abc + type: string + resourcePool: + description: ResourcePool is the name or inventory path of the resource + pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere server + on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which to create + a linked clone. This field is ignored if LinkedClone is not enabled. + Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use with this + Virtual Machine + type: string + template: + description: Template is the name or inventory path of the template + used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate When this is set to empty, + this VirtualMachine would be created without TLS certificate validation + of the communication between Cluster API Provider vSphere and the + VMware vCenter server. + type: string + required: + - network + - template + type: object + status: + description: VSphereMachineStatus defines the observed state of VSphereMachine + properties: + addresses: + description: Addresses contains the VSphere instance associated addresses. + items: + description: MachineAddress contains information for the node's + address. + properties: + address: + description: The machine address. + type: string + type: + description: Machine address type, one of Hostname, ExternalIP + or InternalIP. + type: string + required: + - address + - type + type: object + type: array + conditions: + description: Conditions defines current service state of the VSphereMachine. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + failureMessage: + description: "FailureMessage will be set in the event that there is + a terminal problem reconciling the Machine and will contain a more + verbose string suitable for logging and human consumption. \n This + field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over time (like + service outages), but instead indicate that something is fundamentally + wrong with the Machine's spec or the configuration of the controller, + and that manual intervention is required. Examples of terminal errors + would be invalid combinations of settings in the spec, values that + are unsupported by the controller, or the responsible controller + itself being critically misconfigured. \n Any transient errors that + occur during the reconciliation of Machines can be added as events + to the Machine object and/or logged in the controller's output." + type: string + failureReason: + description: "FailureReason will be set in the event that there is + a terminal problem reconciling the Machine and will contain a succinct + value suitable for machine interpretation. \n This field should + not be set for transitive errors that a controller faces that are + expected to be fixed automatically over time (like service outages), + but instead indicate that something is fundamentally wrong with + the Machine's spec or the configuration of the controller, and that + manual intervention is required. Examples of terminal errors would + be invalid combinations of settings in the spec, values that are + unsupported by the controller, or the responsible controller itself + being critically misconfigured. \n Any transient errors that occur + during the reconciliation of Machines can be added as events to + the Machine object and/or logged in the controller's output." + type: string + network: + description: Network returns the network status for each of the machine's + configured network interfaces. + items: + description: NetworkStatus provides information about one of a VM's + networks. + properties: + connected: + description: Connected is a flag that indicates whether this + network is currently connected to the VM. + type: boolean + ipAddrs: + description: IPAddrs is one or more IP addresses reported by + vm-tools. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address of the network device. + type: string + networkName: + description: NetworkName is the name of the network. + type: string + required: + - macAddr + type: object + type: array + ready: + description: Ready is true when the provider resource is ready. + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Cluster to which this VSphereMachine belongs + jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name + name: Cluster + type: string + - description: Machine ready status + jsonPath: .status.ready + name: Ready + type: string + - description: VSphereMachine instance ID + jsonPath: .spec.providerID + name: ProviderID + type: string + - description: Machine object which owns this VSphereMachine + jsonPath: .metadata.ownerReferences[?(@.kind=="Machine")].name + name: Machine + priority: 1 + type: string + - description: Time duration since creation of Machine + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha4 + schema: + openAPIV3Schema: + description: "VSphereMachine is the Schema for the vspheremachines API \n + Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereMachineSpec defines the desired state of VSphereMachine + properties: + cloneMode: + description: CloneMode specifies the type of clone operation. The + LinkedClone mode is only support for templates that have at least + one snapshot. If the template has no snapshots, then CloneMode defaults + to FullClone. When LinkedClone mode is enabled the DiskGiB field + is ignored as it is not possible to expand disks of linked clones. + Defaults to LinkedClone, but fails gracefully to FullClone if the + source of the clone operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX options + that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the datacenter + in which the virtual machine is created/located. + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, in GiB. + Defaults to the eponymous property value in the template from which + the virtual machine is cloned. + format: int32 + type: integer + failureDomain: + description: FailureDomain is the failure domain unique identifier + this Machine should be attached to, as defined in Cluster API. For + this infrastructure provider, the name is equivalent to the name + of the VSphereDeploymentZone. + type: string + folder: + description: Folder is the name or inventory path of the folder in + which the virtual machine is created/located. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's memory, + in MiB. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this machine's + VM. + properties: + devices: + description: Devices is the list of network devices used by the + virtual machine. TODO(akutz) Make sure at least one network + matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + deviceName: + description: DeviceName may be used to explicitly assign + a name to the network device as it exists in the guest + operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether or not + to use DHCP for IPv4 on this device. If true then IPAddrs + should not contain any IPv4 addresses. + type: boolean + dhcp6: + description: DHCP6 is a flag that indicates whether or not + to use DHCP for IPv6 on this device. If true then IPAddrs + should not contain any IPv6 addresses. + type: boolean + gateway4: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP6 is false. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 and/or + IPv6 addresses to assign to this device. IP addresses + must also specify the segment length in CIDR notation. + Required when DHCP4 and DHCP6 are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by this device. + It is generally a good idea to omit this field and allow + a MAC address to be generated. Please note that this value + must use the VMware OUI to work with the in-tree vSphere + cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission Unit + size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or IPv6 addresses + used as DNS nameservers. Please note that Linux allows + only three nameservers (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere network + to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static routes + applied to the device. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains used + when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR for the + Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes applied + to the virtual machine. + items: + description: NetworkRouteSpec defines a static network route. + properties: + metric: + description: Metric is the weight/priority of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in a virtual + machine. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to distribute + CPUs in this virtual machine. Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + format: int32 + type: integer + providerID: + description: ProviderID is the virtual machine's BIOS UUID formated + as vsphere://12345678-1234-1234-1234-123456789abc + type: string + resourcePool: + description: ResourcePool is the name or inventory path of the resource + pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere server + on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which to create + a linked clone. This field is ignored if LinkedClone is not enabled. + Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use with this + Virtual Machine + type: string + template: + description: Template is the name or inventory path of the template + used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate When this is set to empty, + this VirtualMachine would be created without TLS certificate validation + of the communication between Cluster API Provider vSphere and the + VMware vCenter server. + type: string + required: + - network + - template + type: object + status: + description: VSphereMachineStatus defines the observed state of VSphereMachine + properties: + addresses: + description: Addresses contains the VSphere instance associated addresses. + items: + description: MachineAddress contains information for the node's + address. + properties: + address: + description: The machine address. + type: string + type: + description: Machine address type, one of Hostname, ExternalIP + or InternalIP. + type: string + required: + - address + - type + type: object + type: array + conditions: + description: Conditions defines current service state of the VSphereMachine. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + failureMessage: + description: "FailureMessage will be set in the event that there is + a terminal problem reconciling the Machine and will contain a more + verbose string suitable for logging and human consumption. \n This + field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over time (like + service outages), but instead indicate that something is fundamentally + wrong with the Machine's spec or the configuration of the controller, + and that manual intervention is required. Examples of terminal errors + would be invalid combinations of settings in the spec, values that + are unsupported by the controller, or the responsible controller + itself being critically misconfigured. \n Any transient errors that + occur during the reconciliation of Machines can be added as events + to the Machine object and/or logged in the controller's output." + type: string + failureReason: + description: "FailureReason will be set in the event that there is + a terminal problem reconciling the Machine and will contain a succinct + value suitable for machine interpretation. \n This field should + not be set for transitive errors that a controller faces that are + expected to be fixed automatically over time (like service outages), + but instead indicate that something is fundamentally wrong with + the Machine's spec or the configuration of the controller, and that + manual intervention is required. Examples of terminal errors would + be invalid combinations of settings in the spec, values that are + unsupported by the controller, or the responsible controller itself + being critically misconfigured. \n Any transient errors that occur + during the reconciliation of Machines can be added as events to + the Machine object and/or logged in the controller's output." + type: string + network: + description: Network returns the network status for each of the machine's + configured network interfaces. + items: + description: NetworkStatus provides information about one of a VM's + networks. + properties: + connected: + description: Connected is a flag that indicates whether this + network is currently connected to the VM. + type: boolean + ipAddrs: + description: IPAddrs is one or more IP addresses reported by + vm-tools. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address of the network device. + type: string + networkName: + description: NetworkName is the name of the network. + type: string + required: + - macAddr + type: object + type: array + ready: + description: Ready is true when the provider resource is ready. + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Cluster to which this VSphereMachine belongs + jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name + name: Cluster + type: string + - description: Machine ready status + jsonPath: .status.ready + name: Ready + type: string + - description: VSphereMachine instance ID + jsonPath: .spec.providerID + name: ProviderID + type: string + - description: Machine object which owns with this VSphereMachine + jsonPath: .metadata.ownerReferences[?(@.kind=="Machine")].name + name: Machine + priority: 1 + type: string + - description: Time duration since creation of Machine + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereMachine is the Schema for the vspheremachines API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereMachineSpec defines the desired state of VSphereMachine + properties: + additionalDisksGiB: + description: AdditionalDisksGiB holds the sizes of additional disks + of the virtual machine, in GiB Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + items: + format: int32 + type: integer + type: array + cloneMode: + description: CloneMode specifies the type of clone operation. The + LinkedClone mode is only support for templates that have at least + one snapshot. If the template has no snapshots, then CloneMode defaults + to FullClone. When LinkedClone mode is enabled the DiskGiB field + is ignored as it is not possible to expand disks of linked clones. + Defaults to LinkedClone, but fails gracefully to FullClone if the + source of the clone operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX options + that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the datacenter + in which the virtual machine is created/located. Defaults to * which + selects the default datacenter. + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, in GiB. + Defaults to the eponymous property value in the template from which + the virtual machine is cloned. + format: int32 + type: integer + failureDomain: + description: FailureDomain is the failure domain unique identifier + this Machine should be attached to, as defined in Cluster API. For + this infrastructure provider, the name is equivalent to the name + of the VSphereDeploymentZone. + type: string + folder: + description: Folder is the name or inventory path of the folder in + which the virtual machine is created/located. + type: string + guestSoftPowerOffTimeout: + description: "GuestSoftPowerOffTimeout sets the wait timeout for shutdown + in the VM guest. The VM will be powered off forcibly after the timeout + if the VM is still up and running when the PowerOffMode is set to + trySoft. \n This parameter only applies when the PowerOffMode is + set to trySoft. \n If omitted, the timeout defaults to 5 minutes." + type: string + hardwareVersion: + description: HardwareVersion is the hardware version of the virtual + machine. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. Check the compatibility + with the ESXi version before setting the value. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's memory, + in MiB. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this machine's + VM. + properties: + devices: + description: Devices is the list of network devices used by the + virtual machine. TODO(akutz) Make sure at least one network + matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + addressesFromPools: + description: AddressesFromPools is a list of IPAddressPools + that should be assigned to IPAddressClaims. The machine's + cloud-init metadata will be populated with IPAddresses + fulfilled by an IPAM provider. + items: + description: TypedLocalObjectReference contains enough + information to let you locate the typed referenced object + inside the same namespace. + properties: + apiGroup: + description: APIGroup is the group for the resource + being referenced. If APIGroup is not specified, + the specified Kind must be in the core API group. + For any other third-party types, APIGroup is required. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + deviceName: + description: DeviceName may be used to explicitly assign + a name to the network device as it exists in the guest + operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether or not + to use DHCP for IPv4 on this device. If true then IPAddrs + should not contain any IPv4 addresses. + type: boolean + dhcp4Overrides: + description: DHCP4Overrides allows for the control over + several DHCP behaviors. Overrides will only be applied + when the corresponding DHCP flag is set. Only configured + values will be sent, omitted values will default to distribution + defaults. Dependent on support in the network stack for + your distribution. For more information see the netplan + reference (https://netplan.io/reference#dhcp-overrides) + properties: + hostname: + description: Hostname is the name which will be sent + to the DHCP server instead of the machine's hostname. + type: string + routeMetric: + description: RouteMetric is used to prioritize routes + for devices. A lower metric for an interface will + have a higher priority. + type: integer + sendHostname: + description: SendHostname when `true`, the hostname + of the machine will be sent to the DHCP server. + type: boolean + useDNS: + description: UseDNS when `true`, the DNS servers in + the DHCP server will be used and take precedence. + type: boolean + useDomains: + description: UseDomains can take the values `true`, + `false`, or `route`. When `true`, the domain name + from the DHCP server will be used as the DNS search + domain for this device. When `route`, the domain name + from the DHCP response will be used for routing DNS + only, not for searching. + type: string + useHostname: + description: UseHostname when `true`, the hostname from + the DHCP server will be set as the transient hostname + of the machine. + type: boolean + useMTU: + description: UseMTU when `true`, the MTU from the DHCP + server will be set as the MTU of the device. + type: boolean + useNTP: + description: UseNTP when `true`, the NTP servers from + the DHCP server will be used by systemd-timesyncd + and take precedence. + type: boolean + useRoutes: + description: UseRoutes when `true`, the routes from + the DHCP server will be installed in the routing table. + type: string + type: object + dhcp6: + description: DHCP6 is a flag that indicates whether or not + to use DHCP for IPv6 on this device. If true then IPAddrs + should not contain any IPv6 addresses. + type: boolean + dhcp6Overrides: + description: DHCP6Overrides allows for the control over + several DHCP behaviors. Overrides will only be applied + when the corresponding DHCP flag is set. Only configured + values will be sent, omitted values will default to distribution + defaults. Dependent on support in the network stack for + your distribution. For more information see the netplan + reference (https://netplan.io/reference#dhcp-overrides) + properties: + hostname: + description: Hostname is the name which will be sent + to the DHCP server instead of the machine's hostname. + type: string + routeMetric: + description: RouteMetric is used to prioritize routes + for devices. A lower metric for an interface will + have a higher priority. + type: integer + sendHostname: + description: SendHostname when `true`, the hostname + of the machine will be sent to the DHCP server. + type: boolean + useDNS: + description: UseDNS when `true`, the DNS servers in + the DHCP server will be used and take precedence. + type: boolean + useDomains: + description: UseDomains can take the values `true`, + `false`, or `route`. When `true`, the domain name + from the DHCP server will be used as the DNS search + domain for this device. When `route`, the domain name + from the DHCP response will be used for routing DNS + only, not for searching. + type: string + useHostname: + description: UseHostname when `true`, the hostname from + the DHCP server will be set as the transient hostname + of the machine. + type: boolean + useMTU: + description: UseMTU when `true`, the MTU from the DHCP + server will be set as the MTU of the device. + type: boolean + useNTP: + description: UseNTP when `true`, the NTP servers from + the DHCP server will be used by systemd-timesyncd + and take precedence. + type: boolean + useRoutes: + description: UseRoutes when `true`, the routes from + the DHCP server will be installed in the routing table. + type: string + type: object + gateway4: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by this device. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 and/or + IPv6 addresses to assign to this device. IP addresses + must also specify the segment length in CIDR notation. + Required when DHCP4 and DHCP6 are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by this device. + It is generally a good idea to omit this field and allow + a MAC address to be generated. Please note that this value + must use the VMware OUI to work with the in-tree vSphere + cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission Unit + size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or IPv6 addresses + used as DNS nameservers. Please note that Linux allows + only three nameservers (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere network + to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static routes + applied to the device. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains used + when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR for the + Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes applied + to the virtual machine. + items: + description: NetworkRouteSpec defines a static network route. + properties: + metric: + description: Metric is the weight/priority of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in a virtual + machine. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to distribute + CPUs in this virtual machine. Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + format: int32 + type: integer + os: + description: OS is the Operating System of the virtual machine Defaults + to Linux + type: string + pciDevices: + description: PciDevices is the list of pci devices used by the virtual + machine. + items: + description: PCIDeviceSpec defines virtual machine's PCI configuration + properties: + deviceId: + description: DeviceID is the device ID of a virtual machine's + PCI, in integer. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int32 + type: integer + vendorId: + description: VendorId is the vendor ID of a virtual machine's + PCI, in integer. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int32 + type: integer + type: object + type: array + powerOffMode: + default: hard + description: "PowerOffMode describes the desired behavior when powering + off a VM. \n There are three, supported power off modes: hard, soft, + and trySoft. The first mode, hard, is the equivalent of a physical + system's power cord being ripped from the wall. The soft mode requires + the VM's guest to have VM Tools installed and attempts to gracefully + shut down the VM. Its variant, trySoft, first attempts a graceful + shutdown, and if that fails or the VM is not in a powered off state + after reaching the GuestSoftPowerOffTimeout, the VM is halted. \n + If omitted, the mode defaults to hard." + enum: + - hard + - soft + - trySoft + type: string + providerID: + description: ProviderID is the virtual machine's BIOS UUID formated + as vsphere://12345678-1234-1234-1234-123456789abc + type: string + resourcePool: + description: ResourcePool is the name or inventory path of the resource + pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere server + on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which to create + a linked clone. This field is ignored if LinkedClone is not enabled. + Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use with this + Virtual Machine + type: string + tagIDs: + description: TagIDs is an optional set of tags to add to an instance. + Specified tagIDs must use URN-notation instead of display names. + items: + type: string + type: array + template: + description: Template is the name or inventory path of the template + used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate When this is set to empty, + this VirtualMachine would be created without TLS certificate validation + of the communication between Cluster API Provider vSphere and the + VMware vCenter server. + type: string + required: + - network + - template + type: object + status: + description: VSphereMachineStatus defines the observed state of VSphereMachine + properties: + addresses: + description: Addresses contains the VSphere instance associated addresses. + items: + description: MachineAddress contains information for the node's + address. + properties: + address: + description: The machine address. + type: string + type: + description: Machine address type, one of Hostname, ExternalIP, + InternalIP, ExternalDNS or InternalDNS. + type: string + required: + - address + - type + type: object + type: array + conditions: + description: Conditions defines current service state of the VSphereMachine. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + failureMessage: + description: "FailureMessage will be set in the event that there is + a terminal problem reconciling the Machine and will contain a more + verbose string suitable for logging and human consumption. \n This + field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over time (like + service outages), but instead indicate that something is fundamentally + wrong with the Machine's spec or the configuration of the controller, + and that manual intervention is required. Examples of terminal errors + would be invalid combinations of settings in the spec, values that + are unsupported by the controller, or the responsible controller + itself being critically misconfigured. \n Any transient errors that + occur during the reconciliation of Machines can be added as events + to the Machine object and/or logged in the controller's output." + type: string + failureReason: + description: "FailureReason will be set in the event that there is + a terminal problem reconciling the Machine and will contain a succinct + value suitable for machine interpretation. \n This field should + not be set for transitive errors that a controller faces that are + expected to be fixed automatically over time (like service outages), + but instead indicate that something is fundamentally wrong with + the Machine's spec or the configuration of the controller, and that + manual intervention is required. Examples of terminal errors would + be invalid combinations of settings in the spec, values that are + unsupported by the controller, or the responsible controller itself + being critically misconfigured. \n Any transient errors that occur + during the reconciliation of Machines can be added as events to + the Machine object and/or logged in the controller's output." + type: string + network: + description: Network returns the network status for each of the machine's + configured network interfaces. + items: + description: NetworkStatus provides information about one of a VM's + networks. + properties: + connected: + description: Connected is a flag that indicates whether this + network is currently connected to the VM. + type: boolean + ipAddrs: + description: IPAddrs is one or more IP addresses reported by + vm-tools. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address of the network device. + type: string + networkName: + description: NetworkName is the name of the network. + type: string + required: + - macAddr + type: object + type: array + ready: + description: Ready is true when the provider resource is ready. + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vspheremachinetemplates.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereMachineTemplate + listKind: VSphereMachineTemplateList + plural: vspheremachinetemplates + singular: vspheremachinetemplate + scope: Namespaced + versions: + - name: v1alpha3 + schema: + openAPIV3Schema: + description: "VSphereMachineTemplate is the Schema for the vspheremachinetemplates + API \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate + properties: + template: + description: VSphereMachineTemplateResource describes the data needed + to create a VSphereMachine from a template + properties: + metadata: + description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map + stored with a resource that may be set by external tools + to store and retrieve arbitrary metadata. They are not queryable + and should be preserved when modifying objects. More info: + http://kubernetes.io/docs/user-guide/annotations' + type: object + generateName: + description: "GenerateName is an optional prefix, used by + the server, to generate a unique name ONLY IF the Name field + has not been provided. If this field is used, the name returned + to the client will be different than the name passed. This + value will also be combined with a unique suffix. The provided + value has the same validation rules as the Name field, and + may be truncated by the length of the suffix required to + make the value unique on the server. \n If this field is + specified and the generated name exists, the server will + NOT return a 409 - instead, it will either return 201 Created + or 500 with Reason ServerTimeout indicating a unique name + could not be found in the time allotted, and the client + should retry (optionally after the time indicated in the + Retry-After header). \n Applied only if Name is not specified. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency + \n Deprecated: This field has no function and is going to + be removed in a next release." + type: string + labels: + additionalProperties: + type: string + description: 'Map of string keys and values that can be used + to organize and categorize (scope and select) objects. May + match selectors of replication controllers and services. + More info: http://kubernetes.io/docs/user-guide/labels' + type: object + name: + description: "Name must be unique within a namespace. Is required + when creating resources, although some resources may allow + a client to request the generation of an appropriate name + automatically. Name is primarily intended for creation idempotence + and configuration definition. Cannot be updated. More info: + http://kubernetes.io/docs/user-guide/identifiers#names \n + Deprecated: This field has no function and is going to be + removed in a next release." + type: string + namespace: + description: "Namespace defines the space within each name + must be unique. An empty namespace is equivalent to the + \"default\" namespace, but \"default\" is the canonical + representation. Not all objects are required to be scoped + to a namespace - the value of this field for those objects + will be empty. \n Must be a DNS_LABEL. Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/namespaces + \n Deprecated: This field has no function and is going to + be removed in a next release." + type: string + ownerReferences: + description: "List of objects depended by this object. If + ALL objects in the list have been deleted, this object will + be garbage collected. If this object is managed by a controller, + then an entry in this list will point to this controller, + with the controller field set to true. There cannot be more + than one managing controller. \n Deprecated: This field + has no function and is going to be removed in a next release." + items: + description: OwnerReference contains enough information + to let you identify an owning object. An owning object + must be in the same namespace as the dependent, or be + cluster-scoped, so there is no namespace field. + properties: + apiVersion: + description: API version of the referent. + type: string + blockOwnerDeletion: + description: If true, AND if the owner has the "foregroundDeletion" + finalizer, then the owner cannot be deleted from the + key-value store until this reference is removed. See + https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this + field and enforces the foreground deletion. Defaults + to false. To set this field, a user needs "delete" + permission of the owner, otherwise 422 (Unprocessable + Entity) will be returned. + type: boolean + controller: + description: If true, this reference points to the managing + controller. + type: boolean + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' + type: string + required: + - apiVersion + - kind + - name + - uid + type: object + x-kubernetes-map-type: atomic + type: array + type: object + spec: + description: Spec is the specification of the desired behavior + of the machine. + properties: + cloneMode: + description: CloneMode specifies the type of clone operation. + The LinkedClone mode is only support for templates that + have at least one snapshot. If the template has no snapshots, + then CloneMode defaults to FullClone. When LinkedClone mode + is enabled the DiskGiB field is ignored as it is not possible + to expand disks of linked clones. Defaults to LinkedClone, + but fails gracefully to FullClone if the source of the clone + operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX + options that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the + datacenter in which the virtual machine is created/located. + type: string + datastore: + description: Datastore is the name or inventory path of the + datastore in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, + in GiB. Defaults to the eponymous property value in the + template from which the virtual machine is cloned. + format: int32 + type: integer + failureDomain: + description: FailureDomain is the failure domain unique identifier + this Machine should be attached to, as defined in Cluster + API. For this infrastructure provider, the name is equivalent + to the name of the VSphereDeploymentZone. + type: string + folder: + description: Folder is the name or inventory path of the folder + in which the virtual machine is created/located. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's + memory, in MiB. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this + machine's VM. + properties: + devices: + description: Devices is the list of network devices used + by the virtual machine. TODO(akutz) Make sure at least + one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + deviceName: + description: DeviceName may be used to explicitly + assign a name to the network device as it exists + in the guest operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether + or not to use DHCP for IPv4 on this device. If + true then IPAddrs should not contain any IPv4 + addresses. + type: boolean + dhcp6: + description: DHCP6 is a flag that indicates whether + or not to use DHCP for IPv6 on this device. If + true then IPAddrs should not contain any IPv6 + addresses. + type: boolean + gateway4: + description: Gateway4 is the IPv4 gateway used by + this device. Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by + this device. Required when DHCP6 is false. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 + and/or IPv6 addresses to assign to this device. + IP addresses must also specify the segment length + in CIDR notation. Required when DHCP4 and DHCP6 + are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by + this device. It is generally a good idea to omit + this field and allow a MAC address to be generated. + Please note that this value must use the VMware + OUI to work with the in-tree vSphere cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission + Unit size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or + IPv6 addresses used as DNS nameservers. Please + note that Linux allows only three nameservers + (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere + network to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static + routes applied to the device. + items: + description: NetworkRouteSpec defines a static + network route. + properties: + metric: + description: Metric is the weight/priority + of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains + used when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR + for the Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes + applied to the virtual machine. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in + a virtual machine. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to + distribute CPUs in this virtual machine. Defaults to the + eponymous property value in the template from which the + virtual machine is cloned. + format: int32 + type: integer + providerID: + description: ProviderID is the virtual machine's BIOS UUID + formated as vsphere://12345678-1234-1234-1234-123456789abc + type: string + resourcePool: + description: ResourcePool is the name or inventory path of + the resource pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere + server on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which + to create a linked clone. This field is ignored if LinkedClone + is not enabled. Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use + with this Virtual Machine + type: string + template: + description: Template is the name or inventory path of the + template used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum + of the given vCenter server's host certificate When this + is set to empty, this VirtualMachine would be created without + TLS certificate validation of the communication between + Cluster API Provider vSphere and the VMware vCenter server. + type: string + required: + - network + - template + type: object + required: + - spec + type: object + required: + - template + type: object + type: object + served: true + storage: false + - name: v1alpha4 + schema: + openAPIV3Schema: + description: "VSphereMachineTemplate is the Schema for the vspheremachinetemplates + API \n Deprecated: This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate + properties: + template: + description: VSphereMachineTemplateResource describes the data needed + to create a VSphereMachine from a template + properties: + metadata: + description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map + stored with a resource that may be set by external tools + to store and retrieve arbitrary metadata. They are not queryable + and should be preserved when modifying objects. More info: + http://kubernetes.io/docs/user-guide/annotations' + type: object + labels: + additionalProperties: + type: string + description: 'Map of string keys and values that can be used + to organize and categorize (scope and select) objects. May + match selectors of replication controllers and services. + More info: http://kubernetes.io/docs/user-guide/labels' + type: object + type: object + spec: + description: Spec is the specification of the desired behavior + of the machine. + properties: + cloneMode: + description: CloneMode specifies the type of clone operation. + The LinkedClone mode is only support for templates that + have at least one snapshot. If the template has no snapshots, + then CloneMode defaults to FullClone. When LinkedClone mode + is enabled the DiskGiB field is ignored as it is not possible + to expand disks of linked clones. Defaults to LinkedClone, + but fails gracefully to FullClone if the source of the clone + operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX + options that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the + datacenter in which the virtual machine is created/located. + type: string + datastore: + description: Datastore is the name or inventory path of the + datastore in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, + in GiB. Defaults to the eponymous property value in the + template from which the virtual machine is cloned. + format: int32 + type: integer + failureDomain: + description: FailureDomain is the failure domain unique identifier + this Machine should be attached to, as defined in Cluster + API. For this infrastructure provider, the name is equivalent + to the name of the VSphereDeploymentZone. + type: string + folder: + description: Folder is the name or inventory path of the folder + in which the virtual machine is created/located. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's + memory, in MiB. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this + machine's VM. + properties: + devices: + description: Devices is the list of network devices used + by the virtual machine. TODO(akutz) Make sure at least + one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + deviceName: + description: DeviceName may be used to explicitly + assign a name to the network device as it exists + in the guest operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether + or not to use DHCP for IPv4 on this device. If + true then IPAddrs should not contain any IPv4 + addresses. + type: boolean + dhcp6: + description: DHCP6 is a flag that indicates whether + or not to use DHCP for IPv6 on this device. If + true then IPAddrs should not contain any IPv6 + addresses. + type: boolean + gateway4: + description: Gateway4 is the IPv4 gateway used by + this device. Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by + this device. Required when DHCP6 is false. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 + and/or IPv6 addresses to assign to this device. + IP addresses must also specify the segment length + in CIDR notation. Required when DHCP4 and DHCP6 + are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by + this device. It is generally a good idea to omit + this field and allow a MAC address to be generated. + Please note that this value must use the VMware + OUI to work with the in-tree vSphere cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission + Unit size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or + IPv6 addresses used as DNS nameservers. Please + note that Linux allows only three nameservers + (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere + network to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static + routes applied to the device. + items: + description: NetworkRouteSpec defines a static + network route. + properties: + metric: + description: Metric is the weight/priority + of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains + used when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR + for the Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes + applied to the virtual machine. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in + a virtual machine. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to + distribute CPUs in this virtual machine. Defaults to the + eponymous property value in the template from which the + virtual machine is cloned. + format: int32 + type: integer + providerID: + description: ProviderID is the virtual machine's BIOS UUID + formated as vsphere://12345678-1234-1234-1234-123456789abc + type: string + resourcePool: + description: ResourcePool is the name or inventory path of + the resource pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere + server on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which + to create a linked clone. This field is ignored if LinkedClone + is not enabled. Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use + with this Virtual Machine + type: string + template: + description: Template is the name or inventory path of the + template used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum + of the given vCenter server's host certificate When this + is set to empty, this VirtualMachine would be created without + TLS certificate validation of the communication between + Cluster API Provider vSphere and the VMware vCenter server. + type: string + required: + - network + - template + type: object + required: + - spec + type: object + required: + - template + type: object + type: object + served: true + storage: false + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereMachineTemplate is the Schema for the vspheremachinetemplates + API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate + properties: + template: + description: VSphereMachineTemplateResource describes the data needed + to create a VSphereMachine from a template + properties: + metadata: + description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + properties: + annotations: + additionalProperties: + type: string + description: 'Annotations is an unstructured key value map + stored with a resource that may be set by external tools + to store and retrieve arbitrary metadata. They are not queryable + and should be preserved when modifying objects. More info: + http://kubernetes.io/docs/user-guide/annotations' + type: object + labels: + additionalProperties: + type: string + description: 'Map of string keys and values that can be used + to organize and categorize (scope and select) objects. May + match selectors of replication controllers and services. + More info: http://kubernetes.io/docs/user-guide/labels' + type: object + type: object + spec: + description: Spec is the specification of the desired behavior + of the machine. + properties: + additionalDisksGiB: + description: AdditionalDisksGiB holds the sizes of additional + disks of the virtual machine, in GiB Defaults to the eponymous + property value in the template from which the virtual machine + is cloned. + items: + format: int32 + type: integer + type: array + cloneMode: + description: CloneMode specifies the type of clone operation. + The LinkedClone mode is only support for templates that + have at least one snapshot. If the template has no snapshots, + then CloneMode defaults to FullClone. When LinkedClone mode + is enabled the DiskGiB field is ignored as it is not possible + to expand disks of linked clones. Defaults to LinkedClone, + but fails gracefully to FullClone if the source of the clone + operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX + options that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the + datacenter in which the virtual machine is created/located. + Defaults to * which selects the default datacenter. + type: string + datastore: + description: Datastore is the name or inventory path of the + datastore in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, + in GiB. Defaults to the eponymous property value in the + template from which the virtual machine is cloned. + format: int32 + type: integer + failureDomain: + description: FailureDomain is the failure domain unique identifier + this Machine should be attached to, as defined in Cluster + API. For this infrastructure provider, the name is equivalent + to the name of the VSphereDeploymentZone. + type: string + folder: + description: Folder is the name or inventory path of the folder + in which the virtual machine is created/located. + type: string + guestSoftPowerOffTimeout: + description: "GuestSoftPowerOffTimeout sets the wait timeout + for shutdown in the VM guest. The VM will be powered off + forcibly after the timeout if the VM is still up and running + when the PowerOffMode is set to trySoft. \n This parameter + only applies when the PowerOffMode is set to trySoft. \n + If omitted, the timeout defaults to 5 minutes." + type: string + hardwareVersion: + description: HardwareVersion is the hardware version of the + virtual machine. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + Check the compatibility with the ESXi version before setting + the value. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's + memory, in MiB. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this + machine's VM. + properties: + devices: + description: Devices is the list of network devices used + by the virtual machine. TODO(akutz) Make sure at least + one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + addressesFromPools: + description: AddressesFromPools is a list of IPAddressPools + that should be assigned to IPAddressClaims. The + machine's cloud-init metadata will be populated + with IPAddresses fulfilled by an IPAM provider. + items: + description: TypedLocalObjectReference contains + enough information to let you locate the typed + referenced object inside the same namespace. + properties: + apiGroup: + description: APIGroup is the group for the + resource being referenced. If APIGroup is + not specified, the specified Kind must be + in the core API group. For any other third-party + types, APIGroup is required. + type: string + kind: + description: Kind is the type of resource + being referenced + type: string + name: + description: Name is the name of resource + being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + deviceName: + description: DeviceName may be used to explicitly + assign a name to the network device as it exists + in the guest operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether + or not to use DHCP for IPv4 on this device. If + true then IPAddrs should not contain any IPv4 + addresses. + type: boolean + dhcp4Overrides: + description: DHCP4Overrides allows for the control + over several DHCP behaviors. Overrides will only + be applied when the corresponding DHCP flag is + set. Only configured values will be sent, omitted + values will default to distribution defaults. + Dependent on support in the network stack for + your distribution. For more information see the + netplan reference (https://netplan.io/reference#dhcp-overrides) + properties: + hostname: + description: Hostname is the name which will + be sent to the DHCP server instead of the + machine's hostname. + type: string + routeMetric: + description: RouteMetric is used to prioritize + routes for devices. A lower metric for an + interface will have a higher priority. + type: integer + sendHostname: + description: SendHostname when `true`, the hostname + of the machine will be sent to the DHCP server. + type: boolean + useDNS: + description: UseDNS when `true`, the DNS servers + in the DHCP server will be used and take precedence. + type: boolean + useDomains: + description: UseDomains can take the values + `true`, `false`, or `route`. When `true`, + the domain name from the DHCP server will + be used as the DNS search domain for this + device. When `route`, the domain name from + the DHCP response will be used for routing + DNS only, not for searching. + type: string + useHostname: + description: UseHostname when `true`, the hostname + from the DHCP server will be set as the transient + hostname of the machine. + type: boolean + useMTU: + description: UseMTU when `true`, the MTU from + the DHCP server will be set as the MTU of + the device. + type: boolean + useNTP: + description: UseNTP when `true`, the NTP servers + from the DHCP server will be used by systemd-timesyncd + and take precedence. + type: boolean + useRoutes: + description: UseRoutes when `true`, the routes + from the DHCP server will be installed in + the routing table. + type: string + type: object + dhcp6: + description: DHCP6 is a flag that indicates whether + or not to use DHCP for IPv6 on this device. If + true then IPAddrs should not contain any IPv6 + addresses. + type: boolean + dhcp6Overrides: + description: DHCP6Overrides allows for the control + over several DHCP behaviors. Overrides will only + be applied when the corresponding DHCP flag is + set. Only configured values will be sent, omitted + values will default to distribution defaults. + Dependent on support in the network stack for + your distribution. For more information see the + netplan reference (https://netplan.io/reference#dhcp-overrides) + properties: + hostname: + description: Hostname is the name which will + be sent to the DHCP server instead of the + machine's hostname. + type: string + routeMetric: + description: RouteMetric is used to prioritize + routes for devices. A lower metric for an + interface will have a higher priority. + type: integer + sendHostname: + description: SendHostname when `true`, the hostname + of the machine will be sent to the DHCP server. + type: boolean + useDNS: + description: UseDNS when `true`, the DNS servers + in the DHCP server will be used and take precedence. + type: boolean + useDomains: + description: UseDomains can take the values + `true`, `false`, or `route`. When `true`, + the domain name from the DHCP server will + be used as the DNS search domain for this + device. When `route`, the domain name from + the DHCP response will be used for routing + DNS only, not for searching. + type: string + useHostname: + description: UseHostname when `true`, the hostname + from the DHCP server will be set as the transient + hostname of the machine. + type: boolean + useMTU: + description: UseMTU when `true`, the MTU from + the DHCP server will be set as the MTU of + the device. + type: boolean + useNTP: + description: UseNTP when `true`, the NTP servers + from the DHCP server will be used by systemd-timesyncd + and take precedence. + type: boolean + useRoutes: + description: UseRoutes when `true`, the routes + from the DHCP server will be installed in + the routing table. + type: string + type: object + gateway4: + description: Gateway4 is the IPv4 gateway used by + this device. Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by + this device. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 + and/or IPv6 addresses to assign to this device. IP + addresses must also specify the segment length + in CIDR notation. Required when DHCP4 and DHCP6 + are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by + this device. It is generally a good idea to omit + this field and allow a MAC address to be generated. + Please note that this value must use the VMware + OUI to work with the in-tree vSphere cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission + Unit size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or + IPv6 addresses used as DNS nameservers. Please + note that Linux allows only three nameservers + (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere + network to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static + routes applied to the device. + items: + description: NetworkRouteSpec defines a static + network route. + properties: + metric: + description: Metric is the weight/priority + of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains + used when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR + for the Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes + applied to the virtual machine. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in + a virtual machine. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to + distribute CPUs in this virtual machine. Defaults to the + eponymous property value in the template from which the + virtual machine is cloned. + format: int32 + type: integer + os: + description: OS is the Operating System of the virtual machine + Defaults to Linux + type: string + pciDevices: + description: PciDevices is the list of pci devices used by + the virtual machine. + items: + description: PCIDeviceSpec defines virtual machine's PCI + configuration + properties: + deviceId: + description: DeviceID is the device ID of a virtual + machine's PCI, in integer. Defaults to the eponymous + property value in the template from which the virtual + machine is cloned. + format: int32 + type: integer + vendorId: + description: VendorId is the vendor ID of a virtual + machine's PCI, in integer. Defaults to the eponymous + property value in the template from which the virtual + machine is cloned. + format: int32 + type: integer + type: object + type: array + powerOffMode: + default: hard + description: "PowerOffMode describes the desired behavior + when powering off a VM. \n There are three, supported power + off modes: hard, soft, and trySoft. The first mode, hard, + is the equivalent of a physical system's power cord being + ripped from the wall. The soft mode requires the VM's guest + to have VM Tools installed and attempts to gracefully shut + down the VM. Its variant, trySoft, first attempts a graceful + shutdown, and if that fails or the VM is not in a powered + off state after reaching the GuestSoftPowerOffTimeout, the + VM is halted. \n If omitted, the mode defaults to hard." + enum: + - hard + - soft + - trySoft + type: string + providerID: + description: ProviderID is the virtual machine's BIOS UUID + formated as vsphere://12345678-1234-1234-1234-123456789abc + type: string + resourcePool: + description: ResourcePool is the name or inventory path of + the resource pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere + server on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which + to create a linked clone. This field is ignored if LinkedClone + is not enabled. Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use + with this Virtual Machine + type: string + tagIDs: + description: TagIDs is an optional set of tags to add to an + instance. Specified tagIDs must use URN-notation instead + of display names. + items: + type: string + type: array + template: + description: Template is the name or inventory path of the + template used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum + of the given vCenter server's host certificate When this + is set to empty, this VirtualMachine would be created without + TLS certificate validation of the communication between + Cluster API Provider vSphere and the VMware vCenter server. + type: string + required: + - network + - template + type: object + required: + - spec + type: object + required: + - template + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vspherevms.infrastructure.cluster.x-k8s.io +spec: + group: infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereVM + listKind: VSphereVMList + plural: vspherevms + singular: vspherevm + scope: Namespaced + versions: + - name: v1alpha3 + schema: + openAPIV3Schema: + description: "VSphereVM is the Schema for the vspherevms API \n Deprecated: + This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereVMSpec defines the desired state of VSphereVM. + properties: + biosUUID: + description: BiosUUID is the the VM's BIOS UUID that is assigned at + runtime after the VM has been created. This field is required at + runtime for other controllers that read this CRD as unstructured + data. + type: string + bootstrapRef: + description: BootstrapRef is a reference to a bootstrap provider-specific + resource that holds configuration details. This field is optional + in case no bootstrap data is required to create a VM. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of + an entire object, this string should contain a valid JSON/Go + field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within + a pod, this would take on a value like: "spec.containers{name}" + (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" + (container with index 2 in this pod). This syntax is chosen + only to have some well-defined way of referencing a part of + an object. TODO: this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + x-kubernetes-map-type: atomic + cloneMode: + description: CloneMode specifies the type of clone operation. The + LinkedClone mode is only support for templates that have at least + one snapshot. If the template has no snapshots, then CloneMode defaults + to FullClone. When LinkedClone mode is enabled the DiskGiB field + is ignored as it is not possible to expand disks of linked clones. + Defaults to LinkedClone, but fails gracefully to FullClone if the + source of the clone operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX options + that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the datacenter + in which the virtual machine is created/located. + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, in GiB. + Defaults to the eponymous property value in the template from which + the virtual machine is cloned. + format: int32 + type: integer + folder: + description: Folder is the name or inventory path of the folder in + which the virtual machine is created/located. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's memory, + in MiB. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this machine's + VM. + properties: + devices: + description: Devices is the list of network devices used by the + virtual machine. TODO(akutz) Make sure at least one network + matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + deviceName: + description: DeviceName may be used to explicitly assign + a name to the network device as it exists in the guest + operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether or not + to use DHCP for IPv4 on this device. If true then IPAddrs + should not contain any IPv4 addresses. + type: boolean + dhcp6: + description: DHCP6 is a flag that indicates whether or not + to use DHCP for IPv6 on this device. If true then IPAddrs + should not contain any IPv6 addresses. + type: boolean + gateway4: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP6 is false. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 and/or + IPv6 addresses to assign to this device. IP addresses + must also specify the segment length in CIDR notation. + Required when DHCP4 and DHCP6 are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by this device. + It is generally a good idea to omit this field and allow + a MAC address to be generated. Please note that this value + must use the VMware OUI to work with the in-tree vSphere + cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission Unit + size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or IPv6 addresses + used as DNS nameservers. Please note that Linux allows + only three nameservers (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere network + to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static routes + applied to the device. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains used + when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR for the + Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes applied + to the virtual machine. + items: + description: NetworkRouteSpec defines a static network route. + properties: + metric: + description: Metric is the weight/priority of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in a virtual + machine. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to distribute + CPUs in this virtual machine. Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + format: int32 + type: integer + resourcePool: + description: ResourcePool is the name or inventory path of the resource + pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere server + on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which to create + a linked clone. This field is ignored if LinkedClone is not enabled. + Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use with this + Virtual Machine + type: string + template: + description: Template is the name or inventory path of the template + used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate When this is set to empty, + this VirtualMachine would be created without TLS certificate validation + of the communication between Cluster API Provider vSphere and the + VMware vCenter server. + type: string + required: + - network + - template + type: object + status: + description: VSphereVMStatus defines the observed state of VSphereVM + properties: + addresses: + description: Addresses is a list of the VM's IP addresses. This field + is required at runtime for other controllers that read this CRD + as unstructured data. + items: + type: string + type: array + cloneMode: + description: CloneMode is the type of clone operation used to clone + this VM. Since LinkedMode is the default but fails gracefully if + the source of the clone has no snapshots, this field may be used + to determine the actual type of clone operation used to create this + VM. + type: string + conditions: + description: Conditions defines current service state of the VSphereVM. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + failureMessage: + description: "FailureMessage will be set in the event that there is + a terminal problem reconciling the vspherevm and will contain a + more verbose string suitable for logging and human consumption. + \n This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over time (like + service outages), but instead indicate that something is fundamentally + wrong with the vm. \n Any transient errors that occur during the + reconciliation of vspherevms can be added as events to the vspherevm + object and/or logged in the controller's output." + type: string + failureReason: + description: "FailureReason will be set in the event that there is + a terminal problem reconciling the vspherevm and will contain a + succinct value suitable for vm interpretation. \n This field should + not be set for transitive errors that a controller faces that are + expected to be fixed automatically over time (like service outages), + but instead indicate that something is fundamentally wrong with + the vm. \n Any transient errors that occur during the reconciliation + of vspherevms can be added as events to the vspherevm object and/or + logged in the controller's output." + type: string + network: + description: Network returns the network status for each of the machine's + configured network interfaces. + items: + description: NetworkStatus provides information about one of a VM's + networks. + properties: + connected: + description: Connected is a flag that indicates whether this + network is currently connected to the VM. + type: boolean + ipAddrs: + description: IPAddrs is one or more IP addresses reported by + vm-tools. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address of the network device. + type: string + networkName: + description: NetworkName is the name of the network. + type: string + required: + - macAddr + type: object + type: array + ready: + description: Ready is true when the provider resource is ready. This + field is required at runtime for other controllers that read this + CRD as unstructured data. + type: boolean + retryAfter: + description: RetryAfter tracks the time we can retry queueing a task + format: date-time + type: string + snapshot: + description: Snapshot is the name of the snapshot from which the VM + was cloned if LinkedMode is enabled. + type: string + taskRef: + description: TaskRef is a managed object reference to a Task related + to the machine. This value is set automatically at runtime and should + not be set or modified by users. + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1alpha4 + schema: + openAPIV3Schema: + description: "VSphereVM is the Schema for the vspherevms API \n Deprecated: + This type will be removed in one of the next releases." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereVMSpec defines the desired state of VSphereVM. + properties: + biosUUID: + description: BiosUUID is the the VM's BIOS UUID that is assigned at + runtime after the VM has been created. This field is required at + runtime for other controllers that read this CRD as unstructured + data. + type: string + bootstrapRef: + description: BootstrapRef is a reference to a bootstrap provider-specific + resource that holds configuration details. This field is optional + in case no bootstrap data is required to create a VM. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of + an entire object, this string should contain a valid JSON/Go + field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within + a pod, this would take on a value like: "spec.containers{name}" + (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" + (container with index 2 in this pod). This syntax is chosen + only to have some well-defined way of referencing a part of + an object. TODO: this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + x-kubernetes-map-type: atomic + cloneMode: + description: CloneMode specifies the type of clone operation. The + LinkedClone mode is only support for templates that have at least + one snapshot. If the template has no snapshots, then CloneMode defaults + to FullClone. When LinkedClone mode is enabled the DiskGiB field + is ignored as it is not possible to expand disks of linked clones. + Defaults to LinkedClone, but fails gracefully to FullClone if the + source of the clone operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX options + that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the datacenter + in which the virtual machine is created/located. + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, in GiB. + Defaults to the eponymous property value in the template from which + the virtual machine is cloned. + format: int32 + type: integer + folder: + description: Folder is the name or inventory path of the folder in + which the virtual machine is created/located. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's memory, + in MiB. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this machine's + VM. + properties: + devices: + description: Devices is the list of network devices used by the + virtual machine. TODO(akutz) Make sure at least one network + matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + deviceName: + description: DeviceName may be used to explicitly assign + a name to the network device as it exists in the guest + operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether or not + to use DHCP for IPv4 on this device. If true then IPAddrs + should not contain any IPv4 addresses. + type: boolean + dhcp6: + description: DHCP6 is a flag that indicates whether or not + to use DHCP for IPv6 on this device. If true then IPAddrs + should not contain any IPv6 addresses. + type: boolean + gateway4: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP6 is false. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 and/or + IPv6 addresses to assign to this device. IP addresses + must also specify the segment length in CIDR notation. + Required when DHCP4 and DHCP6 are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by this device. + It is generally a good idea to omit this field and allow + a MAC address to be generated. Please note that this value + must use the VMware OUI to work with the in-tree vSphere + cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission Unit + size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or IPv6 addresses + used as DNS nameservers. Please note that Linux allows + only three nameservers (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere network + to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static routes + applied to the device. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains used + when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR for the + Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes applied + to the virtual machine. + items: + description: NetworkRouteSpec defines a static network route. + properties: + metric: + description: Metric is the weight/priority of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in a virtual + machine. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to distribute + CPUs in this virtual machine. Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + format: int32 + type: integer + resourcePool: + description: ResourcePool is the name or inventory path of the resource + pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere server + on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which to create + a linked clone. This field is ignored if LinkedClone is not enabled. + Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use with this + Virtual Machine + type: string + template: + description: Template is the name or inventory path of the template + used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate When this is set to empty, + this VirtualMachine would be created without TLS certificate validation + of the communication between Cluster API Provider vSphere and the + VMware vCenter server. + type: string + required: + - network + - template + type: object + status: + description: VSphereVMStatus defines the observed state of VSphereVM + properties: + addresses: + description: Addresses is a list of the VM's IP addresses. This field + is required at runtime for other controllers that read this CRD + as unstructured data. + items: + type: string + type: array + cloneMode: + description: CloneMode is the type of clone operation used to clone + this VM. Since LinkedMode is the default but fails gracefully if + the source of the clone has no snapshots, this field may be used + to determine the actual type of clone operation used to create this + VM. + type: string + conditions: + description: Conditions defines current service state of the VSphereVM. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - status + - type + type: object + type: array + failureMessage: + description: "FailureMessage will be set in the event that there is + a terminal problem reconciling the vspherevm and will contain a + more verbose string suitable for logging and human consumption. + \n This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over time (like + service outages), but instead indicate that something is fundamentally + wrong with the vm. \n Any transient errors that occur during the + reconciliation of vspherevms can be added as events to the vspherevm + object and/or logged in the controller's output." + type: string + failureReason: + description: "FailureReason will be set in the event that there is + a terminal problem reconciling the vspherevm and will contain a + succinct value suitable for vm interpretation. \n This field should + not be set for transitive errors that a controller faces that are + expected to be fixed automatically over time (like service outages), + but instead indicate that something is fundamentally wrong with + the vm. \n Any transient errors that occur during the reconciliation + of vspherevms can be added as events to the vspherevm object and/or + logged in the controller's output." + type: string + network: + description: Network returns the network status for each of the machine's + configured network interfaces. + items: + description: NetworkStatus provides information about one of a VM's + networks. + properties: + connected: + description: Connected is a flag that indicates whether this + network is currently connected to the VM. + type: boolean + ipAddrs: + description: IPAddrs is one or more IP addresses reported by + vm-tools. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address of the network device. + type: string + networkName: + description: NetworkName is the name of the network. + type: string + required: + - macAddr + type: object + type: array + ready: + description: Ready is true when the provider resource is ready. This + field is required at runtime for other controllers that read this + CRD as unstructured data. + type: boolean + retryAfter: + description: RetryAfter tracks the time we can retry queueing a task + format: date-time + type: string + snapshot: + description: Snapshot is the name of the snapshot from which the VM + was cloned if LinkedMode is enabled. + type: string + taskRef: + description: TaskRef is a managed object reference to a Task related + to the machine. This value is set automatically at runtime and should + not be set or modified by users. + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereVM is the Schema for the vspherevms API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereVMSpec defines the desired state of VSphereVM. + properties: + additionalDisksGiB: + description: AdditionalDisksGiB holds the sizes of additional disks + of the virtual machine, in GiB Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + items: + format: int32 + type: integer + type: array + biosUUID: + description: BiosUUID is the the VM's BIOS UUID that is assigned at + runtime after the VM has been created. This field is required at + runtime for other controllers that read this CRD as unstructured + data. + type: string + bootstrapRef: + description: BootstrapRef is a reference to a bootstrap provider-specific + resource that holds configuration details. This field is optional + in case no bootstrap data is required to create a VM. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of + an entire object, this string should contain a valid JSON/Go + field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within + a pod, this would take on a value like: "spec.containers{name}" + (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" + (container with index 2 in this pod). This syntax is chosen + only to have some well-defined way of referencing a part of + an object. TODO: this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + x-kubernetes-map-type: atomic + cloneMode: + description: CloneMode specifies the type of clone operation. The + LinkedClone mode is only support for templates that have at least + one snapshot. If the template has no snapshots, then CloneMode defaults + to FullClone. When LinkedClone mode is enabled the DiskGiB field + is ignored as it is not possible to expand disks of linked clones. + Defaults to LinkedClone, but fails gracefully to FullClone if the + source of the clone operation has no snapshots. + type: string + customVMXKeys: + additionalProperties: + type: string + description: CustomVMXKeys is a dictionary of advanced VMX options + that can be set on VM Defaults to empty map + type: object + datacenter: + description: Datacenter is the name or inventory path of the datacenter + in which the virtual machine is created/located. Defaults to * which + selects the default datacenter. + type: string + datastore: + description: Datastore is the name or inventory path of the datastore + in which the virtual machine is created/located. + type: string + diskGiB: + description: DiskGiB is the size of a virtual machine's disk, in GiB. + Defaults to the eponymous property value in the template from which + the virtual machine is cloned. + format: int32 + type: integer + folder: + description: Folder is the name or inventory path of the folder in + which the virtual machine is created/located. + type: string + guestSoftPowerOffTimeout: + description: "GuestSoftPowerOffTimeout sets the wait timeout for shutdown + in the VM guest. The VM will be powered off forcibly after the timeout + if the VM is still up and running when the PowerOffMode is set to + trySoft. \n This parameter only applies when the PowerOffMode is + set to trySoft. \n If omitted, the timeout defaults to 5 minutes." + type: string + hardwareVersion: + description: HardwareVersion is the hardware version of the virtual + machine. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. Check the compatibility + with the ESXi version before setting the value. + type: string + memoryMiB: + description: MemoryMiB is the size of a virtual machine's memory, + in MiB. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int64 + type: integer + network: + description: Network is the network configuration for this machine's + VM. + properties: + devices: + description: Devices is the list of network devices used by the + virtual machine. TODO(akutz) Make sure at least one network + matches the ClusterSpec.CloudProviderConfiguration.Network.Name + items: + description: NetworkDeviceSpec defines the network configuration + for a virtual machine's network device. + properties: + addressesFromPools: + description: AddressesFromPools is a list of IPAddressPools + that should be assigned to IPAddressClaims. The machine's + cloud-init metadata will be populated with IPAddresses + fulfilled by an IPAM provider. + items: + description: TypedLocalObjectReference contains enough + information to let you locate the typed referenced object + inside the same namespace. + properties: + apiGroup: + description: APIGroup is the group for the resource + being referenced. If APIGroup is not specified, + the specified Kind must be in the core API group. + For any other third-party types, APIGroup is required. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + type: array + deviceName: + description: DeviceName may be used to explicitly assign + a name to the network device as it exists in the guest + operating system. + type: string + dhcp4: + description: DHCP4 is a flag that indicates whether or not + to use DHCP for IPv4 on this device. If true then IPAddrs + should not contain any IPv4 addresses. + type: boolean + dhcp4Overrides: + description: DHCP4Overrides allows for the control over + several DHCP behaviors. Overrides will only be applied + when the corresponding DHCP flag is set. Only configured + values will be sent, omitted values will default to distribution + defaults. Dependent on support in the network stack for + your distribution. For more information see the netplan + reference (https://netplan.io/reference#dhcp-overrides) + properties: + hostname: + description: Hostname is the name which will be sent + to the DHCP server instead of the machine's hostname. + type: string + routeMetric: + description: RouteMetric is used to prioritize routes + for devices. A lower metric for an interface will + have a higher priority. + type: integer + sendHostname: + description: SendHostname when `true`, the hostname + of the machine will be sent to the DHCP server. + type: boolean + useDNS: + description: UseDNS when `true`, the DNS servers in + the DHCP server will be used and take precedence. + type: boolean + useDomains: + description: UseDomains can take the values `true`, + `false`, or `route`. When `true`, the domain name + from the DHCP server will be used as the DNS search + domain for this device. When `route`, the domain name + from the DHCP response will be used for routing DNS + only, not for searching. + type: string + useHostname: + description: UseHostname when `true`, the hostname from + the DHCP server will be set as the transient hostname + of the machine. + type: boolean + useMTU: + description: UseMTU when `true`, the MTU from the DHCP + server will be set as the MTU of the device. + type: boolean + useNTP: + description: UseNTP when `true`, the NTP servers from + the DHCP server will be used by systemd-timesyncd + and take precedence. + type: boolean + useRoutes: + description: UseRoutes when `true`, the routes from + the DHCP server will be installed in the routing table. + type: string + type: object + dhcp6: + description: DHCP6 is a flag that indicates whether or not + to use DHCP for IPv6 on this device. If true then IPAddrs + should not contain any IPv6 addresses. + type: boolean + dhcp6Overrides: + description: DHCP6Overrides allows for the control over + several DHCP behaviors. Overrides will only be applied + when the corresponding DHCP flag is set. Only configured + values will be sent, omitted values will default to distribution + defaults. Dependent on support in the network stack for + your distribution. For more information see the netplan + reference (https://netplan.io/reference#dhcp-overrides) + properties: + hostname: + description: Hostname is the name which will be sent + to the DHCP server instead of the machine's hostname. + type: string + routeMetric: + description: RouteMetric is used to prioritize routes + for devices. A lower metric for an interface will + have a higher priority. + type: integer + sendHostname: + description: SendHostname when `true`, the hostname + of the machine will be sent to the DHCP server. + type: boolean + useDNS: + description: UseDNS when `true`, the DNS servers in + the DHCP server will be used and take precedence. + type: boolean + useDomains: + description: UseDomains can take the values `true`, + `false`, or `route`. When `true`, the domain name + from the DHCP server will be used as the DNS search + domain for this device. When `route`, the domain name + from the DHCP response will be used for routing DNS + only, not for searching. + type: string + useHostname: + description: UseHostname when `true`, the hostname from + the DHCP server will be set as the transient hostname + of the machine. + type: boolean + useMTU: + description: UseMTU when `true`, the MTU from the DHCP + server will be set as the MTU of the device. + type: boolean + useNTP: + description: UseNTP when `true`, the NTP servers from + the DHCP server will be used by systemd-timesyncd + and take precedence. + type: boolean + useRoutes: + description: UseRoutes when `true`, the routes from + the DHCP server will be installed in the routing table. + type: string + type: object + gateway4: + description: Gateway4 is the IPv4 gateway used by this device. + Required when DHCP4 is false. + type: string + gateway6: + description: Gateway4 is the IPv4 gateway used by this device. + type: string + ipAddrs: + description: IPAddrs is a list of one or more IPv4 and/or + IPv6 addresses to assign to this device. IP addresses + must also specify the segment length in CIDR notation. + Required when DHCP4 and DHCP6 are both false. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address used by this device. + It is generally a good idea to omit this field and allow + a MAC address to be generated. Please note that this value + must use the VMware OUI to work with the in-tree vSphere + cloud provider. + type: string + mtu: + description: MTU is the device’s Maximum Transmission Unit + size in bytes. + format: int64 + type: integer + nameservers: + description: Nameservers is a list of IPv4 and/or IPv6 addresses + used as DNS nameservers. Please note that Linux allows + only three nameservers (https://linux.die.net/man/5/resolv.conf). + items: + type: string + type: array + networkName: + description: NetworkName is the name of the vSphere network + to which the device will be connected. + type: string + routes: + description: Routes is a list of optional, static routes + applied to the device. + items: + description: NetworkRouteSpec defines a static network + route. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: SearchDomains is a list of search domains used + when resolving IP addresses with DNS. + items: + type: string + type: array + required: + - networkName + type: object + type: array + preferredAPIServerCidr: + description: PreferredAPIServeCIDR is the preferred CIDR for the + Kubernetes API server endpoint on this machine + type: string + routes: + description: Routes is a list of optional, static routes applied + to the virtual machine. + items: + description: NetworkRouteSpec defines a static network route. + properties: + metric: + description: Metric is the weight/priority of the route. + format: int32 + type: integer + to: + description: To is an IPv4 or IPv6 address. + type: string + via: + description: Via is an IPv4 or IPv6 address. + type: string + required: + - metric + - to + - via + type: object + type: array + required: + - devices + type: object + numCPUs: + description: NumCPUs is the number of virtual processors in a virtual + machine. Defaults to the eponymous property value in the template + from which the virtual machine is cloned. + format: int32 + type: integer + numCoresPerSocket: + description: NumCPUs is the number of cores among which to distribute + CPUs in this virtual machine. Defaults to the eponymous property + value in the template from which the virtual machine is cloned. + format: int32 + type: integer + os: + description: OS is the Operating System of the virtual machine Defaults + to Linux + type: string + pciDevices: + description: PciDevices is the list of pci devices used by the virtual + machine. + items: + description: PCIDeviceSpec defines virtual machine's PCI configuration + properties: + deviceId: + description: DeviceID is the device ID of a virtual machine's + PCI, in integer. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int32 + type: integer + vendorId: + description: VendorId is the vendor ID of a virtual machine's + PCI, in integer. Defaults to the eponymous property value + in the template from which the virtual machine is cloned. + format: int32 + type: integer + type: object + type: array + powerOffMode: + default: hard + description: "PowerOffMode describes the desired behavior when powering + off a VM. \n There are three, supported power off modes: hard, soft, + and trySoft. The first mode, hard, is the equivalent of a physical + system's power cord being ripped from the wall. The soft mode requires + the VM's guest to have VM Tools installed and attempts to gracefully + shut down the VM. Its variant, trySoft, first attempts a graceful + shutdown, and if that fails or the VM is not in a powered off state + after reaching the GuestSoftPowerOffTimeout, the VM is halted. \n + If omitted, the mode defaults to hard." + enum: + - hard + - soft + - trySoft + type: string + resourcePool: + description: ResourcePool is the name or inventory path of the resource + pool in which the virtual machine is created/located. + type: string + server: + description: Server is the IP address or FQDN of the vSphere server + on which the virtual machine is created/located. + type: string + snapshot: + description: Snapshot is the name of the snapshot from which to create + a linked clone. This field is ignored if LinkedClone is not enabled. + Defaults to the source's current snapshot. + type: string + storagePolicyName: + description: StoragePolicyName of the storage policy to use with this + Virtual Machine + type: string + tagIDs: + description: TagIDs is an optional set of tags to add to an instance. + Specified tagIDs must use URN-notation instead of display names. + items: + type: string + type: array + template: + description: Template is the name or inventory path of the template + used to clone the virtual machine. + minLength: 1 + type: string + thumbprint: + description: Thumbprint is the colon-separated SHA-1 checksum of the + given vCenter server's host certificate When this is set to empty, + this VirtualMachine would be created without TLS certificate validation + of the communication between Cluster API Provider vSphere and the + VMware vCenter server. + type: string + required: + - network + - template + type: object + status: + description: VSphereVMStatus defines the observed state of VSphereVM + properties: + addresses: + description: Addresses is a list of the VM's IP addresses. This field + is required at runtime for other controllers that read this CRD + as unstructured data. + items: + type: string + type: array + cloneMode: + description: CloneMode is the type of clone operation used to clone + this VM. Since LinkedMode is the default but fails gracefully if + the source of the clone has no snapshots, this field may be used + to determine the actual type of clone operation used to create this + VM. + type: string + conditions: + description: Conditions defines current service state of the VSphereVM. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + failureMessage: + description: "FailureMessage will be set in the event that there is + a terminal problem reconciling the vspherevm and will contain a + more verbose string suitable for logging and human consumption. + \n This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over time (like + service outages), but instead indicate that something is fundamentally + wrong with the vm. \n Any transient errors that occur during the + reconciliation of vspherevms can be added as events to the vspherevm + object and/or logged in the controller's output." + type: string + failureReason: + description: "FailureReason will be set in the event that there is + a terminal problem reconciling the vspherevm and will contain a + succinct value suitable for vm interpretation. \n This field should + not be set for transitive errors that a controller faces that are + expected to be fixed automatically over time (like service outages), + but instead indicate that something is fundamentally wrong with + the vm. \n Any transient errors that occur during the reconciliation + of vspherevms can be added as events to the vspherevm object and/or + logged in the controller's output." + type: string + host: + description: Host describes the hostname or IP address of the infrastructure + host that the VSphereVM is residing on. + type: string + moduleUUID: + description: ModuleUUID is the unique identifier for the vCenter cluster + module construct which is used to configure anti-affinity. Objects + with the same ModuleUUID will be anti-affined, meaning that the + vCenter DRS will best effort schedule the VMs on separate hosts. + type: string + network: + description: Network returns the network status for each of the machine's + configured network interfaces. + items: + description: NetworkStatus provides information about one of a VM's + networks. + properties: + connected: + description: Connected is a flag that indicates whether this + network is currently connected to the VM. + type: boolean + ipAddrs: + description: IPAddrs is one or more IP addresses reported by + vm-tools. + items: + type: string + type: array + macAddr: + description: MACAddr is the MAC address of the network device. + type: string + networkName: + description: NetworkName is the name of the network. + type: string + required: + - macAddr + type: object + type: array + ready: + description: Ready is true when the provider resource is ready. This + field is required at runtime for other controllers that read this + CRD as unstructured data. + type: boolean + retryAfter: + description: RetryAfter tracks the time we can retry queueing a task + format: date-time + type: string + snapshot: + description: Snapshot is the name of the snapshot from which the VM + was cloned if LinkedMode is enabled. + type: string + taskRef: + description: TaskRef is a managed object reference to a Task related + to the machine. This value is set automatically at runtime and should + not be set or modified by users. + type: string + vmRef: + description: VMRef is the the VM's Managed Object Reference on vSphere. + It can be used by consumers to programatically get this VM representation + on vSphere in case of the need to retrieve informations. This field + is set once the machine is created and should not be changed + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: clustervirtualmachineimages.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: ClusterVirtualMachineImage + listKind: ClusterVirtualMachineImageList + plural: clustervirtualmachineimages + shortNames: + - cvmi + - cvmimage + - clustervmi + - clustervmimage + singular: clustervirtualmachineimage + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .spec.providerRef.name + name: Provider-Name + type: string + - jsonPath: .status.contentLibraryRef.name + name: Content-Library-Name + type: string + - jsonPath: .status.imageName + name: Image-Name + type: string + - jsonPath: .spec.productInfo.version + name: Version + type: string + - jsonPath: .spec.osInfo.type + name: Os-Type + type: string + - jsonPath: .spec.type + name: Format + type: string + - jsonPath: .status.imageSupported + name: Image-Supported + priority: 1 + type: boolean + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: ClusterVirtualMachineImage is the schema for the clustervirtualmachineimage + API A ClusterVirtualMachineImage represents the desired specification and + the observed status of a ClusterVirtualMachineImage instance. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineImageSpec defines the desired state of VirtualMachineImage. + properties: + hwVersion: + description: HardwareVersion describes the virtual hardware version + of the image + format: int32 + type: integer + imageID: + description: ImageID is a unique identifier exposed by the provider + of this VirtualMachineImage. + type: string + imageSourceType: + description: ImageSourceType describes the type of content source + of the VirtualMachineImage. The only Content Source supported currently + is the vSphere Content Library. + type: string + osInfo: + description: OSInfo describes the attributes of the VirtualMachineImage + relating to the Operating System contained in the image. + properties: + type: + description: Type typically describes the type of the guest operating + system. + type: string + version: + description: Version typically describes the version of the guest + operating system. + type: string + type: object + ovfEnv: + additionalProperties: + description: OvfProperty describes information related to a user + configurable property element that is supported by VirtualMachineImage + and can be customized during VirtualMachine creation. + properties: + default: + description: Default describes the default value of the ovf + key. + type: string + description: + description: Description contains the value of the OVF property's + optional "Description" element. + type: string + key: + description: Key describes the key of the ovf property. + type: string + label: + description: Label contains the value of the OVF property's + optional "Label" element. + type: string + type: + description: Type describes the type of the ovf property. + type: string + required: + - key + - type + type: object + description: OVFEnv describes the user configurable customization + parameters of the VirtualMachineImage. + type: object + productInfo: + description: ProductInfo describes the attributes of the VirtualMachineImage + relating to the product contained in the image. + properties: + fullVersion: + description: FullVersion typically describes a long-form version + of the image. + type: string + product: + description: Product typically describes the type of product contained + in the image. + type: string + vendor: + description: Vendor typically describes the name of the vendor + that is producing the image. + type: string + version: + description: Version typically describes a short-form version + of the image. + type: string + type: object + providerRef: + description: ProviderRef is a reference to a content provider object + that describes a provider. + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: Kind is the type of resource being referenced. + type: string + name: + description: Name is the name of resource being referenced. + type: string + namespace: + description: Namespace of the resource being referenced. If empty, + cluster scoped resource is assumed. + type: string + required: + - kind + - name + type: object + type: + description: Type describes the type of the VirtualMachineImage. Currently, + the only supported image is "OVF" + type: string + required: + - imageID + - providerRef + - type + type: object + status: + description: VirtualMachineImageStatus defines the observed state of VirtualMachineImage. + properties: + conditions: + description: Conditions describes the current condition information + of the VirtualMachineImage object. e.g. if the OS type is supported + or image is supported by VMService + items: + description: Condition defines an observation of a VM Operator API + resource operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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 disambiguate + is important. + type: string + required: + - status + - type + type: object + type: array + contentLibraryRef: + description: ContentLibraryRef is a reference to the source ContentLibrary/ClusterContentLibrary + resource. + properties: + apiGroup: + description: APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in + the core API group. For any other third-party types, APIGroup + is required. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + contentVersion: + description: ContentVersion describes the observed content version + of this VirtualMachineImage that was last successfully synced with + the vSphere content library item. + type: string + firmware: + description: 'Firmware describe the firmware type used by this VirtualMachineImage. + eg: bios, efi.' + type: string + imageName: + description: ImageName describes the display name of this VirtualMachineImage. + type: string + imageSupported: + description: 'ImageSupported indicates whether the VirtualMachineImage + is supported by VMService. A VirtualMachineImage is supported by + VMService if the following conditions are true: - VirtualMachineImageV1Alpha1CompatibleCondition' + type: boolean + internalId: + description: Deprecated + type: string + powerState: + description: Deprecated + type: string + uuid: + description: Deprecated + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.name + name: Image Name + type: string + - jsonPath: .status.productInfo.version + name: Image Version + type: string + - jsonPath: .status.osInfo.type + name: OS Name + type: string + - jsonPath: .status.osInfo.version + name: OS Version + type: string + - jsonPath: .status.hardwareVersion + name: Hardware Version + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: ClusterVirtualMachineImage is the schema for the clustervirtualmachineimages + API. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineImageSpec defines the desired state of VirtualMachineImage. + properties: + providerRef: + description: ProviderRef is a reference to the resource that contains + the source of this image's information. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this + representation of an object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: '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' + type: string + name: + description: 'Name refers to a unique resource in the current + namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + type: string + required: + - apiVersion + - kind + - name + type: object + type: object + status: + description: VirtualMachineImageStatus defines the observed state of VirtualMachineImage. + properties: + capabilities: + description: "Capabilities describes the image's observed capabilities. + \n The capabilities are discerned when VM Operator reconciles an + image. If the source of an image is an OVF in Content Library, then + the capabilities are parsed from the OVF property capabilities.image.vmoperator.vmware.com + as a comma-separated list of values. Well-known capabilities include: + \n * cloud-init * nvidia-gpu * sriov-net \n Every capability is + also added to the resource's labels as VirtualMachineImageCapabilityLabel + + Value. For example, if the capability is \"cloud-init\" then the + following label will be added to the resource: capability.image.vmoperator.vmware.com/cloud-init." + items: + type: string + type: array + x-kubernetes-list-type: set + conditions: + description: Conditions describes the observed conditions for this + image. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + firmware: + description: Firmware describe the firmware type used by this image, + ex. BIOS, EFI. + type: string + hardwareVersion: + description: HardwareVersion describes the observed hardware version + of this image. + format: int32 + type: integer + name: + description: Name describes the observed, "friendly" name for this + image. + type: string + osInfo: + description: "OSInfo describes the observed operating system information + for this image. \n The OS information is also added to the image + resource's labels. Please refer to VirtualMachineImageOSInfo for + more information." + properties: + id: + description: "ID describes the operating system ID. \n This value + is also added to the image resource's labels as VirtualMachineImageOSIDLabel." + type: string + type: + description: "Type describes the operating system type. \n This + value is also added to the image resource's labels as VirtualMachineImageOSTypeLabel." + type: string + version: + description: "Version describes the operating system version. + \n This value is also added to the image resource's labels as + VirtualMachineImageOSVersionLabel." + type: string + type: object + ovfProperties: + description: OVFProperties describes the observed OVF properties defined + for this image. + items: + description: OVFProperty describes an OVF property associated with + an image. OVF properties may be used in conjunction with the vAppConfig + bootstrap provider to customize a VM during its creation. + properties: + default: + description: Default describes the OVF property's default value. + type: string + key: + description: Key describes the OVF property's key. + type: string + type: + description: Type describes the OVF property's type. + type: string + required: + - key + - type + type: object + type: array + productInfo: + description: ProductInfo describes the observed product information + for this image. + properties: + fullVersion: + description: FullVersion describes the long-form version of the + image. + type: string + product: + description: Product is a general descriptor for the image. + type: string + vendor: + description: Vendor describes the organization/user that produced + the image. + type: string + version: + description: Version describes the short-form version of the image. + type: string + type: object + providerContentVersion: + description: ProviderContentVersion describes the content version + from the provider item that this image corresponds to. If the provider + of this image is a Content Library, this will be the version of + the corresponding Content Library item. + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: contentlibraryproviders.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: ContentLibraryProvider + listKind: ContentLibraryProviderList + plural: contentlibraryproviders + singular: contentlibraryprovider + scope: Cluster + versions: + - additionalPrinterColumns: + - description: UUID of the vSphere content library + jsonPath: .spec.uuid + name: Content-Library-UUID + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: ContentLibraryProvider is the Schema for the contentlibraryproviders + API. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: ContentLibraryProviderSpec defines the desired state of ContentLibraryProvider. + properties: + uuid: + description: UUID describes the UUID of a vSphere content library. + It is the unique identifier for a vSphere content library. + type: string + type: object + status: + description: ContentLibraryProviderStatus defines the observed state of + ContentLibraryProvider Can include fields indicating when was the last + time VM images were updated from a library. + type: object + type: object + served: true + storage: true + subresources: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: contentsources.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: ContentSource + listKind: ContentSourceList + plural: contentsources + singular: contentsource + scope: Cluster + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ContentSource is the Schema for the contentsources API. A ContentSource + represents the desired specification and the observed status of a ContentSource + instance. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: ContentSourceSpec defines the desired state of ContentSource. + properties: + providerRef: + description: ProviderRef is a reference to a content provider object + that describes a provider. + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: Kind is the type of resource being referenced. + type: string + name: + description: Name is the name of resource being referenced. + type: string + namespace: + description: Namespace of the resource being referenced. If empty, + cluster scoped resource is assumed. + type: string + required: + - kind + - name + type: object + type: object + status: + description: ContentSourceStatus defines the observed state of ContentSource. + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: contentsourcebindings.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: ContentSourceBinding + listKind: ContentSourceBindingList + plural: contentsourcebindings + singular: contentsourcebinding + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ContentSourceBinding is an object that represents a ContentSource + to Namespace mapping. + properties: + apiVersion: + description: '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' + type: string + contentSourceRef: + description: ContentSourceRef is a reference to a ContentSource object. + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: Kind is the type of resource being referenced. + type: string + name: + description: Name is the name of resource being referenced. + type: string + required: + - name + type: object + kind: + description: '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' + type: string + metadata: + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: virtualmachines.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: VirtualMachine + listKind: VirtualMachineList + plural: virtualmachines + shortNames: + - vm + singular: virtualmachine + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.powerState + name: Power-State + type: string + - jsonPath: .spec.className + name: Class + priority: 1 + type: string + - jsonPath: .spec.imageName + name: Image + priority: 1 + type: string + - jsonPath: .status.vmIp + name: Primary-IP + priority: 1 + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: VirtualMachine is the Schema for the virtualmachines API. A VirtualMachine + represents the desired specification and the observed status of a VirtualMachine + instance. A VirtualMachine is realized by the VirtualMachine controller + on a backing Virtual Infrastructure provider such as vSphere. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineSpec defines the desired state of a VirtualMachine. + properties: + advancedOptions: + description: AdvancedOptions describes a set of optional, advanced + options for configuring a VirtualMachine + properties: + changeBlockTracking: + description: ChangeBlockTracking specifies the enablement of incremental + backup support for this VirtualMachine, which can be utilized + by external backup systems such as VMware Data Recovery. + type: boolean + defaultVolumeProvisioningOptions: + description: DefaultProvisioningOptions specifies the provisioning + type to be used by default for VirtualMachine volumes exclusively + owned by this VirtualMachine. This does not apply to PersistentVolumeClaim + volumes that are created and managed externally. + properties: + eagerZeroed: + description: EagerZeroed specifies whether to use eager zero + provisioning for the VirtualMachineVolume. An eager zeroed + thick disk has all space allocated and wiped clean of any + previous contents on the physical media at creation time. + Such disks may take longer time during creation compared + to other disk formats. EagerZeroed is only applicable if + ThinProvisioned is false. This is validated by the webhook. + type: boolean + thinProvisioned: + description: ThinProvisioned specifies whether to use thin + provisioning for the VirtualMachineVolume. This means a + sparse (allocate on demand) format with additional space + optimizations. + type: boolean + type: object + type: object + className: + description: ClassName describes the name of a VirtualMachineClass + that is to be used as the overlaid resource configuration of VirtualMachine. A + VirtualMachineClass is used to further customize the attributes + of the VirtualMachine instance. See VirtualMachineClass for more + description. + type: string + imageName: + description: ImageName describes the name of a VirtualMachineImage + that is to be used as the base Operating System image of the desired + VirtualMachine instances. The VirtualMachineImage resources can + be introspected to discover identifying attributes that may help + users to identify the desired image to use. + type: string + networkInterfaces: + description: NetworkInterfaces describes a list of VirtualMachineNetworkInterfaces + to be configured on the VirtualMachine instance. Each of these VirtualMachineNetworkInterfaces + describes external network integration configurations that are to + be used by the VirtualMachine controller when integrating the VirtualMachine + into one or more external networks. + items: + description: VirtualMachineNetworkInterface defines the properties + of a network interface to attach to a VirtualMachine instance. A + VirtualMachineNetworkInterface describes network interface configuration + that is used by the VirtualMachine controller when integrating + the VirtualMachine into a VirtualNetwork. Currently, only NSX-T + and vSphere Distributed Switch (VDS) type network integrations + are supported using this VirtualMachineNetworkInterface structure. + properties: + ethernetCardType: + description: EthernetCardType describes an optional ethernet + card that should be used by the VirtualNetworkInterface (vNIC) + associated with this network integration. The default is + "vmxnet3". + type: string + networkName: + description: NetworkName describes the name of an existing virtual + network that this interface should be added to. For "nsx-t" + NetworkType, this is the name of a pre-existing NSX-T VirtualNetwork. + If unspecified, the default network for the namespace will + be used. For "vsphere-distributed" NetworkType, the NetworkName + must be specified. + type: string + networkType: + description: NetworkType describes the type of VirtualNetwork + that is referenced by the NetworkName. Currently, the only + supported NetworkTypes are "nsx-t" and "vsphere-distributed". + type: string + providerRef: + description: ProviderRef is reference to a network interface + provider object that specifies the network interface configuration. + If unset, default configuration is assumed. + properties: + apiGroup: + description: APIGroup is the group for the resource being + referenced. + type: string + apiVersion: + description: API version of the referent. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + required: + - apiGroup + - kind + - name + type: object + type: object + type: array + nextRestartTime: + description: "NextRestartTime may be used to restart the VM, in accordance + with RestartMode, by setting the value of this field to \"now\" + (case-insensitive). \n A mutating webhook changes this value to + the current time (UTC), which the VM controller then uses to determine + the VM should be restarted by comparing the value to the timestamp + of the last time the VM was restarted. \n Please note it is not + possible to schedule future restarts using this field. The only + value that users may set is the string \"now\" (case-insensitive)." + type: string + ports: + description: Ports is currently unused and can be considered deprecated. + items: + description: VirtualMachinePort is unused and can be considered + deprecated. + properties: + ip: + type: string + name: + type: string + port: + type: integer + protocol: + default: TCP + type: string + required: + - ip + - name + - port + - protocol + type: object + type: array + powerOffMode: + default: hard + description: "PowerOffMode describes the desired behavior when powering + off a VM. \n There are three, supported power off modes: hard, soft, + and trySoft. The first mode, hard, is the equivalent of a physical + system's power cord being ripped from the wall. The soft mode requires + the VM's guest to have VM Tools installed and attempts to gracefully + shutdown the VM. Its variant, trySoft, first attempts a graceful + shutdown, and if that fails or the VM is not in a powered off state + after five minutes, the VM is halted. \n If omitted, the mode defaults + to hard." + enum: + - hard + - soft + - trySoft + type: string + powerState: + description: "PowerState describes the desired power state of a VirtualMachine. + \n Please note this field may be omitted when creating a new VM + and will default to \"poweredOn.\" However, once the field is set + to a non-empty value, it may no longer be set to an empty value. + \n Additionally, setting this value to \"suspended\" is not supported + when creating a new VM. The valid values when creating a new VM + are \"poweredOn\" and \"poweredOff.\" An empty value is also allowed + on create since this value defaults to \"poweredOn\" for new VMs." + enum: + - poweredOn + - poweredOff + - suspended + type: string + readinessProbe: + description: ReadinessProbe describes a network probe that can be + used to determine if the VirtualMachine is available and responding + to the probe. + properties: + guestHeartbeat: + description: GuestHeartbeat specifies an action involving the + guest heartbeat status. + properties: + thresholdStatus: + default: green + description: ThresholdStatus is the value that the guest heartbeat + status must be at or above to be considered successful. + enum: + - yellow + - green + type: string + type: object + periodSeconds: + description: PeriodSeconds specifics how often (in seconds) to + perform the probe. Defaults to 10 seconds. Minimum value is + 1. + format: int32 + minimum: 1 + type: integer + tcpSocket: + description: TCPSocket specifies an action involving a TCP port. + properties: + host: + description: Host is an optional host name to connect to. Host + defaults to the VirtualMachine IP. + type: string + port: + anyOf: + - type: integer + - type: string + description: Port specifies a number or name of the port to + access on the VirtualMachine. If the format of port is a + number, it must be in the range 1 to 65535. If the format + of name is a string, it must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + timeoutSeconds: + description: TimeoutSeconds specifies a number of seconds after + which the probe times out. Defaults to 10 seconds. Minimum value + is 1. + format: int32 + maximum: 60 + minimum: 1 + type: integer + type: object + resourcePolicyName: + description: ResourcePolicyName describes the name of a VirtualMachineSetResourcePolicy + to be used when creating the VirtualMachine instance. + type: string + restartMode: + default: hard + description: "RestartMode describes the desired behavior for restarting + a VM when spec.nextRestartTime is set to \"now\" (case-insensitive). + \n There are three, supported suspend modes: hard, soft, and trySoft. + The first mode, hard, is where vSphere resets the VM without any + interaction inside of the guest. The soft mode requires the VM's + guest to have VM Tools installed and asks the guest to restart the + VM. Its variant, trySoft, first attempts a soft restart, and if + that fails or does not complete within five minutes, the VM is hard + reset. \n If omitted, the mode defaults to hard." + enum: + - hard + - soft + - trySoft + type: string + storageClass: + description: StorageClass describes the name of a StorageClass that + should be used to configure storage-related attributes of the VirtualMachine + instance. + type: string + suspendMode: + default: hard + description: "SuspendMode describes the desired behavior when suspending + a VM. \n There are three, supported suspend modes: hard, soft, and + trySoft. The first mode, hard, is where vSphere suspends the VM + to disk without any interaction inside of the guest. The soft mode + requires the VM's guest to have VM Tools installed and attempts + to gracefully suspend the VM. Its variant, trySoft, first attempts + a graceful suspend, and if that fails or the VM is not in a put + into standby by the guest after five minutes, the VM is suspended. + \n If omitted, the mode defaults to hard." + enum: + - hard + - soft + - trySoft + type: string + vmMetadata: + description: VmMetadata describes any optional metadata that should + be passed to the Guest OS. + properties: + configMapName: + description: ConfigMapName describes the name of the ConfigMap, + in the same Namespace as the VirtualMachine, that should be + used for VirtualMachine metadata. The contents of the Data + field of the ConfigMap is used as the VM Metadata. The format + of the contents of the VM Metadata are not parsed or interpreted + by the VirtualMachine controller. Please note, this field and + SecretName are mutually exclusive. + type: string + secretName: + description: SecretName describes the name of the Secret, in the + same Namespace as the VirtualMachine, that should be used for + VirtualMachine metadata. The contents of the Data field of the + Secret is used as the VM Metadata. The format of the contents + of the VM Metadata are not parsed or interpreted by the VirtualMachine + controller. Please note, this field and ConfigMapName are mutually + exclusive. + type: string + transport: + description: Transport describes the name of a supported VirtualMachineMetadata + transport protocol. Currently, the only supported transport + protocols are "ExtraConfig", "OvfEnv" and "CloudInit". + enum: + - ExtraConfig + - OvfEnv + - vAppConfig + - CloudInit + - Sysprep + type: string + type: object + volumes: + description: Volumes describes the list of VirtualMachineVolumes that + are desired to be attached to the VirtualMachine. Each of these + volumes specifies a volume identity that the VirtualMachine controller + will attempt to satisfy, potentially with an external Volume Management + service. + items: + description: VirtualMachineVolume describes a Volume that should + be attached to a specific VirtualMachine. Only one of PersistentVolumeClaim, + VsphereVolume should be specified. + properties: + name: + description: Name specifies the name of the VirtualMachineVolume. Each + volume within the scope of a VirtualMachine must have a unique + name. + type: string + persistentVolumeClaim: + description: "PersistentVolumeClaim represents a reference to + a PersistentVolumeClaim in the same namespace. The PersistentVolumeClaim + must match one of the following: \n * A volume provisioned + (either statically or dynamically) by the cluster's CSI provider. + \n * An instance volume with a lifecycle coupled to the VM." + properties: + claimName: + description: 'claimName is the name of a PersistentVolumeClaim + in the same namespace as the pod using this volume. More + info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' + type: string + instanceVolumeClaim: + description: InstanceVolumeClaim is set if the PVC is backed + by instance storage. + properties: + size: + anyOf: + - type: integer + - type: string + description: Size is the size of the requested instance + storage volume. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + storageClass: + description: StorageClass is the name of the Kubernetes + StorageClass that provides the backing storage for + this instance storage volume. + type: string + required: + - size + - storageClass + type: object + readOnly: + description: readOnly Will force the ReadOnly setting in + VolumeMounts. Default false. + type: boolean + required: + - claimName + type: object + vSphereVolume: + description: VsphereVolume represents a reference to a VsphereVolumeSource + in the same namespace. Only one of PersistentVolumeClaim or + VsphereVolume can be specified. This is enforced via a webhook + properties: + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: A description of the virtual volume's resources + and capacity + type: object + deviceKey: + description: Device key of vSphere disk. + type: integer + type: object + required: + - name + type: object + type: array + required: + - className + - imageName + type: object + status: + description: VirtualMachineStatus defines the observed state of a VirtualMachine + instance. + properties: + biosUUID: + description: BiosUUID describes a unique identifier provided by the + underlying infrastructure provider that is exposed to the Guest + OS BIOS as a unique hardware identifier. + type: string + changeBlockTracking: + description: ChangeBlockTracking describes the CBT enablement status + on the VirtualMachine. + type: boolean + conditions: + description: Conditions describes the current condition information + of the VirtualMachine. + items: + description: Condition defines an observation of a VM Operator API + resource operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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 disambiguate + is important. + type: string + required: + - status + - type + type: object + type: array + host: + description: Host describes the hostname or IP address of the infrastructure + host that the VirtualMachine is executing on. + type: string + instanceUUID: + description: InstanceUUID describes the unique instance UUID provided + by the underlying infrastructure provider, such as vSphere. + type: string + lastRestartTime: + description: LastRestartTime describes the last time the VM was restarted. + format: date-time + type: string + networkInterfaces: + description: NetworkInterfaces describes a list of current status + information for each network interface that is desired to be attached + to the VirtualMachine. + items: + description: NetworkInterfaceStatus defines the observed state of + network interfaces attached to the VirtualMachine as seen by the + Guest OS and VMware tools. + properties: + connected: + description: Connected represents whether the network interface + is connected or not. + type: boolean + ipAddresses: + description: IpAddresses represents zero, one or more IP addresses + assigned to the network interface in CIDR notation. For eg, + "192.0.2.1/16". + items: + type: string + type: array + macAddress: + description: MAC address of the network adapter + type: string + required: + - connected + type: object + type: array + phase: + description: Phase describes the current phase information of the + VirtualMachine. + type: string + powerState: + description: PowerState describes the current power state of the VirtualMachine. + enum: + - poweredOn + - poweredOff + - suspended + type: string + uniqueID: + description: UniqueID describes a unique identifier that is provided + by the underlying infrastructure provider, such as vSphere. + type: string + vmIp: + description: VmIp describes the Primary IP address assigned to the + guest operating system, if known. Multiple IPs can be available + for the VirtualMachine. Refer to networkInterfaces in the VirtualMachine + status for additional IPs + type: string + volumes: + description: Volumes describes a list of current status information + for each Volume that is desired to be attached to the VirtualMachine. + items: + description: VirtualMachineVolumeStatus defines the observed state + of a VirtualMachineVolume instance. + properties: + attached: + description: Attached represents whether a volume has been successfully + attached to the VirtualMachine or not. + type: boolean + diskUUID: + description: DiskUuid represents the underlying virtual disk + UUID and is present when attachment succeeds. + type: string + error: + description: Error represents the last error seen when attaching + or detaching a volume. Error will be empty if attachment + succeeds. + type: string + name: + description: Name is the name of the volume in a VirtualMachine. + type: string + required: + - attached + - diskUUID + - error + - name + type: object + type: array + zone: + description: Zone describes the availability zone where the VirtualMachine + has been scheduled. Please note this field may be empty when the + cluster is not zone-aware. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.class.name + name: Class + priority: 1 + type: string + - jsonPath: .status.image.name + name: Image + priority: 1 + type: string + - jsonPath: .status.powerState + name: PowerState + type: string + - jsonPath: .status.network.primaryIP4 + name: Primary-IP4 + priority: 1 + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: VirtualMachine is the schema for the virtualmachines API and + represents the desired state and observed status of a virtualmachines resource. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineSpec defines the desired state of a VirtualMachine. + properties: + advanced: + description: Advanced describes a set of optional, advanced VM configuration + options. + properties: + bootDiskCapacity: + anyOf: + - type: integer + - type: string + description: "BootDiskCapacity is the capacity of the VM's boot + disk -- the first disk from the VirtualMachineImage from which + the VM was deployed. \n Please note it is not advised to change + this value while the VM is running. Also, resizing the VM's + boot disk may require actions inside of the guest to take advantage + of the additional capacity. Finally, changing the size of the + VM's boot disk, even increasing it, could adversely affect the + VM." + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + changeBlockTracking: + description: ChangeBlockTracking is a flag that enables incremental + backup support for this VM, a feature utilized by external backup + systems such as VMware Data Recovery. + type: boolean + defaultVolumeProvisioningMode: + description: DefaultVolumeProvisioningMode specifies the default + provisioning mode for persistent volumes managed by this VM. + enum: + - Thin + - Thick + - ThickEagerZero + type: string + type: object + bootstrap: + description: "Bootstrap describes the desired state of the guest's + bootstrap configuration. \n If omitted, then the bootstrap method + is determined based on the guest identifier from the VirtualMachineImage. + If the image's guest OS type is Windows, then the Sysprep bootstrap + method is used; if Linux, the LinuxPrep method is used. \n Please + note that defaulting to Sysprep for Windows images only works if + the image uses a volume license key, otherwise the image's product + ID is required." + properties: + cloudInit: + description: "CloudInit may be used to bootstrap Linux guests + with Cloud-Init or Windows guests that support Cloudbase-Init. + \n The guest's networking stack is configured by Cloud-Init + on Linux guests and Cloudbase-Init on Windows guests. \n Please + note this bootstrap provider may not be used in conjunction + with the other bootstrap providers." + properties: + cloudConfig: + description: "CloudConfig describes a subset of a Cloud-Init + CloudConfig, used to bootstrap the VM. \n Please note this + field and RawCloudConfig are mutually exclusive." + properties: + timezone: + description: Timezone describes the timezone represented + in /usr/share/zoneinfo. + type: string + user: + description: User enables overriding the "default_user" + configuration from "/etc/cloud/cloud.cfg". + properties: + create_groups: + description: "CreateGroups is a flag that may be set + to false to disable creation of specified user groups. + \n Defaults to true when Name is not \"default\"." + type: boolean + expiredate: + description: ExpireData is the date on which the user's + account will be disabled. + type: string + gecos: + description: Gecos is an optional comment about the + user, usually a comma-separated string of the user's + real name and contact information. + type: string + groups: + description: Groups is an optional list of groups + to add to the user. + items: + type: string + type: array + hashed_passwd: + description: HashedPasswd is a hash of the user's + password that will be applied even if the specified + user already exists. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + homedir: + description: "Homedir is the optional home directory + for the user. \n Defaults to \"/home/\" + when Name is not \"default\"." + type: string + inactive: + description: Inactive optionally represents the number + of days until the user is disabled. + format: int32 + type: integer + lock_passwd: + description: "LockPasswd disables password login. + \n Defaults to true when Name is not \"default\"." + type: boolean + name: + description: "Name is the user's login name. \n Please + note this field may be set to the special value + of \"default\" when this User is the first element + in the Users list from the CloudConfig. When set + to \"default\", all other fields from this User + must be nil." + type: string + no_create_home: + description: "NoCreateHome prevents the creation of + the home directory. \n Defaults to false when Name + is not \"default\"." + type: boolean + no_log_init: + description: "NoLogInit prevents the initialization + of lastlog and faillog for the user. \n Defaults + to false when Name is not \"default\"." + type: boolean + no_user_group: + description: "NoUserGroup prevents the creation of + the group named after the user. \n Defaults to false + when Name is not \"default\"." + type: boolean + passwd: + description: Passwd is a hash of the user's password + that will be applied only to a newly created user. + To apply a new, hashed password to an existing user + please use HashedPasswd instead. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + primary_group: + description: "PrimaryGroup is the primary group for + the user. \n Defaults to the value of the Name field + when it is not \"default\"." + type: string + selinux_user: + description: SELinuxUser is the SELinux user for the + user's login. + type: string + shell: + description: "Shell is the path to the user's login + shell. \n Please note the default is to set no shell, + which results in a system-specific default being + used." + type: string + snapuser: + description: "SnapUser specifies an e-mail address + to create the user as a Snappy user through \"snap + create-user\". \n If an Ubuntu SSO account is associated + with the address, the username and SSH keys will + be requested from there." + type: string + ssh_authorized_keys: + description: "SSHAuthorizedKeys is a list of SSH keys + to add to the user's authorized keys file. \n Please + note this field may not be combined with SSHRedirectUser." + items: + type: string + type: array + ssh_import_id: + description: "SSHImportID is a list of SSH IDs to + import for the user. \n Please note this field may + not be combined with SSHRedirectUser." + items: + type: string + type: array + ssh_redirect_user: + description: "SSHRedirectUser may be set to true to + disable SSH logins for this user. \n Please note + that when specified, all SSH keys from cloud meta-data + will be configured in a disabled state for this + user. Any SSH login as this user will timeout with + a message to login instead as the default user. + \n This field may not be combined with SSHAuthorizedKeys + or SSHImportID. \n Defaults to false when Name is + not \"default\"." + type: boolean + sudo: + description: "Sudo is a sudo rule to apply to the + user. \n When omitted, no sudo rules will be applied + to the user." + type: string + system: + description: "System is an optional flag that indicates + the user should be created as a system user with + no home directory. \n Defaults to false when Name + is not \"default\"." + type: boolean + uid: + description: "UID is the user's ID. \n When omitted + the guest will default to the next available number." + format: int64 + type: integer + required: + - name + type: object + users: + description: "Users allows adding/configuring one or more + users on the guest. \n Please note if the first element + in this list has a Name field set to \"default\", then + that element will be serialized as \"- default\" when + marshaling this list as part of generating a YAML CloudConfig." + items: + description: User is a CloudConfig user data structure. + properties: + create_groups: + description: "CreateGroups is a flag that may be + set to false to disable creation of specified + user groups. \n Defaults to true when Name is + not \"default\"." + type: boolean + expiredate: + description: ExpireData is the date on which the + user's account will be disabled. + type: string + gecos: + description: Gecos is an optional comment about + the user, usually a comma-separated string of + the user's real name and contact information. + type: string + groups: + description: Groups is an optional list of groups + to add to the user. + items: + type: string + type: array + hashed_passwd: + description: HashedPasswd is a hash of the user's + password that will be applied even if the specified + user already exists. + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + homedir: + description: "Homedir is the optional home directory + for the user. \n Defaults to \"/home/\" + when Name is not \"default\"." + type: string + inactive: + description: Inactive optionally represents the + number of days until the user is disabled. + format: int32 + type: integer + lock_passwd: + description: "LockPasswd disables password login. + \n Defaults to true when Name is not \"default\"." + type: boolean + name: + description: "Name is the user's login name. \n + Please note this field may be set to the special + value of \"default\" when this User is the first + element in the Users list from the CloudConfig. + When set to \"default\", all other fields from + this User must be nil." + type: string + no_create_home: + description: "NoCreateHome prevents the creation + of the home directory. \n Defaults to false when + Name is not \"default\"." + type: boolean + no_log_init: + description: "NoLogInit prevents the initialization + of lastlog and faillog for the user. \n Defaults + to false when Name is not \"default\"." + type: boolean + no_user_group: + description: "NoUserGroup prevents the creation + of the group named after the user. \n Defaults + to false when Name is not \"default\"." + type: boolean + passwd: + description: Passwd is a hash of the user's password + that will be applied only to a newly created user. + To apply a new, hashed password to an existing + user please use HashedPasswd instead. + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + primary_group: + description: "PrimaryGroup is the primary group + for the user. \n Defaults to the value of the + Name field when it is not \"default\"." + type: string + selinux_user: + description: SELinuxUser is the SELinux user for + the user's login. + type: string + shell: + description: "Shell is the path to the user's login + shell. \n Please note the default is to set no + shell, which results in a system-specific default + being used." + type: string + snapuser: + description: "SnapUser specifies an e-mail address + to create the user as a Snappy user through \"snap + create-user\". \n If an Ubuntu SSO account is + associated with the address, the username and + SSH keys will be requested from there." + type: string + ssh_authorized_keys: + description: "SSHAuthorizedKeys is a list of SSH + keys to add to the user's authorized keys file. + \n Please note this field may not be combined + with SSHRedirectUser." + items: + type: string + type: array + ssh_import_id: + description: "SSHImportID is a list of SSH IDs to + import for the user. \n Please note this field + may not be combined with SSHRedirectUser." + items: + type: string + type: array + ssh_redirect_user: + description: "SSHRedirectUser may be set to true + to disable SSH logins for this user. \n Please + note that when specified, all SSH keys from cloud + meta-data will be configured in a disabled state + for this user. Any SSH login as this user will + timeout with a message to login instead as the + default user. \n This field may not be combined + with SSHAuthorizedKeys or SSHImportID. \n Defaults + to false when Name is not \"default\"." + type: boolean + sudo: + description: "Sudo is a sudo rule to apply to the + user. \n When omitted, no sudo rules will be applied + to the user." + type: string + system: + description: "System is an optional flag that indicates + the user should be created as a system user with + no home directory. \n Defaults to false when Name + is not \"default\"." + type: boolean + uid: + description: "UID is the user's ID. \n When omitted + the guest will default to the next available number." + format: int64 + type: integer + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + write_files: + description: WriteFiles + items: + description: WriteFile is a CloudConfig write_file data + structure. + properties: + append: + description: Append specifies whether or not to + append the content to an existing file if the + file specified by Path already exists. + type: boolean + content: + description: "Content is the optional content to + write to the provided Path. \n When omitted an + empty file will be created or existing file will + be modified." + properties: + from: + description: "From is specified to reference + a value from a Secret resource. \n Please + note this field is mutually exclusive with + the Value field." + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret + or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + value: + description: "Value is used to directly specify + a value. \n Please note this field is mutually + exclusive with the From field." + type: string + type: object + defer: + description: Defer indicates to defer writing the + file until Cloud-Init's "final" stage, after users + are created and packages are installed. + type: boolean + encoding: + default: text/plain + description: Encoding is an optional encoding type + of the content. + enum: + - b64 + - base64 + - gz + - gzip + - gz+b64 + - gz+base64 + - gzip+b64 + - gzip+base64 + - text/plain + type: string + owner: + default: root:root + description: Owner is an optional "owner:group" + to chown the file. + type: string + path: + description: Path is the path of the file to which + the content is decoded and written. + type: string + permissions: + default: "0644" + description: "Permissions an optional set of file + permissions to set. \n Please note the permissions + should be specified as an octal string, ex. \"0###\". + \n When omitted the guest will default this value + to \"0644\"." + type: string + required: + - path + type: object + type: array + x-kubernetes-list-map-keys: + - path + x-kubernetes-list-type: map + type: object + rawCloudConfig: + description: "RawCloudConfig describes a key in a Secret resource + that contains the CloudConfig data used to bootstrap the + VM. \n The CloudConfig data specified by the key may be + plain-text, base64-encoded, or gzipped and base64-encoded. + \n Please note this field and CloudConfig are mutually exclusive." + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + sshAuthorizedKeys: + description: SSHAuthorizedKeys is a list of public keys that + CloudInit will apply to the guest's default user. + items: + type: string + type: array + type: object + linuxPrep: + description: "LinuxPrep may be used to bootstrap Linux guests. + \n The guest's networking stack is configured by Guest OS Customization + (GOSC). \n Please note this bootstrap provider may be used in + conjunction with the VAppConfig bootstrap provider when wanting + to configure the guest's network with GOSC but also send vApp/OVF + properties into the guest. \n This bootstrap provider may not + be used in conjunction with the CloudInit or Sysprep bootstrap + providers." + properties: + hardwareClockIsUTC: + description: HardwareClockIsUTC specifies whether the hardware + clock is in UTC or local time. + type: boolean + timeZone: + description: "TimeZone is a case-sensitive timezone, such + as Europe/Sofia. \n Valid values are based on the tz (timezone) + database used by Linux and other Unix systems. The values + are strings in the form of \"Area/Location,\" in which Area + is a continent or ocean name, and Location is the city, + island, or other regional designation. \n Please see https://kb.vmware.com/s/article/2145518 + for a list of valid time zones for Linux systems." + type: string + type: object + sysprep: + description: "Sysprep may be used to bootstrap Windows guests. + \n The guest's networking stack is configured by Guest OS Customization + (GOSC). \n Please note this bootstrap provider may be used in + conjunction with the VAppConfig bootstrap provider when wanting + to configure the guest's network with GOSC but also send vApp/OVF + properties into the guest. \n This bootstrap provider may not + be used in conjunction with the CloudInit or LinuxPrep bootstrap + providers." + properties: + rawSysprep: + description: "RawSysprep describes a key in a Secret resource + that contains an XML string of the Sysprep text used to + bootstrap the VM. \n The data specified by the Secret key + may be plain-text, base64-encoded, or gzipped and base64-encoded. + \n Please note this field and Sysprep are mutually exclusive." + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + sysprep: + description: "Sysprep is an object representation of a Windows + sysprep.xml answer file. \n This field encloses all the + individual keys listed in a sysprep.xml file. \n For more + detailed information please see https://technet.microsoft.com/en-us/library/cc771830(v=ws.10).aspx. + \n Please note this field and RawSysprep are mutually exclusive." + properties: + guiRunOnce: + description: GUIRunOnce is a representation of the Sysprep + GuiRunOnce key. + properties: + commmands: + description: Commands is a list of commands to run + at first user logon, after guest customization. + items: + type: string + type: array + type: object + guiUnattended: + description: GUIUnattended is a representation of the + Sysprep GUIUnattended key. + properties: + autoLogon: + description: "AutoLogon determine whether or not the + machine automatically logs on as Administrator. + \n Please note if AutoLogin is true, then Password + must be set or guest customization will fail." + type: boolean + autoLogonCount: + description: "AutoLogonCount specifies the number + of times the machine should automatically log on + as Administrator. \n Generally it should be 1, but + if your setup requires a number of reboots, you + may want to increase it. This number may be determined + by the list of commands executed by the GuiRunOnce + command. \n Please note this field only matters + if AutoLogin is true." + format: int32 + type: integer + password: + description: "Password is the new administrator password + for the machine. \n To specify that the password + should be set to blank (that is, no password), set + the password value to NULL. Because of encryption, + \"\" is NOT a valid value. \n Please note if the + password is set to blank and AutoLogon is true, + the guest customization will fail. \n If the XML + file is generated by the VirtualCenter Customization + Wizard, then the password is encrypted. Otherwise, + the client should set the plainText attribute to + true, so that the customization process does not + attempt to decrypt the string." + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + timeZone: + description: "TimeZone is the time zone index for + the virtual machine. \n Please note that numbers + correspond to time zones listed at https://bit.ly/3Rzv8oL." + format: int32 + type: integer + type: object + identification: + description: Identification is a representation of the + Sysprep Identification key. + properties: + domainAdmin: + description: DomainAdmin is the domain user account + used for authentication if the virtual machine is + joining a domain. The user does not need to be a + domain administrator, but the account must have + the privileges required to add computers to the + domain. + type: string + domainAdminPassword: + description: DomainAdminPassword is the password for + the domain user account used for authentication + if the virtual machine is joining a domain. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + joinDomain: + description: JoinDomain is the domain that the virtual + machine should join. If this value is supplied, + then DomainAdmin and DomainAdminPassword must also + be supplied, and the JoinWorkgroup name must be + empty. + type: string + joinWorkgroup: + description: JoinWorkgroup is the workgroup that the + virtual machine should join. If this value is supplied, + then the JoinDomain and the authentication fields + (DomainAdmin and DomainAdminPassword) must be empty. + type: string + type: object + licenseFilePrintData: + description: "LicenseFilePrintData is a representation + of the Sysprep LicenseFilePrintData key. \n Please note + this is required only for Windows 2000 Server and Windows + Server 2003." + properties: + autoMode: + description: AutoMode specifies the server licensing + mode. + enum: + - perSeat + - perServer + type: string + autoUsers: + description: "AutoUsers indicates the number of client + licenses purchased for the VirtualCenter server + being installed. \n Please note this value is ignored + unless AutoMode is PerServer." + format: int32 + type: integer + required: + - autoMode + type: object + userData: + description: UserData is a representation of the Sysprep + UserData key. + properties: + fullName: + description: FullName is the user's full name. + type: string + orgName: + description: OrgName is the name of the user's organization. + type: string + productID: + description: "ProductID is a valid serial number. + \n Please note unless the VirtualMachineImage was + installed with a volume license key, ProductID must + be set or guest customization will fail." + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - guiUnattended + - identification + - userData + type: object + type: object + vAppConfig: + description: "VAppConfig may be used to bootstrap guests that + rely on vApp properties (how VMware surfaces OVF properties + on guests) to transport data into the guest. \n The guest's + networking stack may be configured using either vApp properties + or GOSC. \n Many OVFs define one or more properties that are + used by the guest to bootstrap its networking stack. If the + VirtualMachineImage defines one or more properties like this, + then they can be configured to use the network data provided + for this VM at runtime by setting these properties to Go template + strings. \n It is also possible to use GOSC to bootstrap this + VM's network stack by configuring either the LinuxPrep or Sysprep + bootstrap providers. \n Please note the VAppConfig bootstrap + provider in conjunction with the LinuxPrep bootstrap provider + is the equivalent of setting the v1alpha1 VM metadata transport + to \"OvfEnv\". \n This bootstrap provider may not be used in + conjunction with the CloudInit bootstrap provider." + properties: + properties: + description: "Properties is a list of vApp/OVF property key/value + pairs. \n Please note this field and RawProperties are mutually + exclusive." + items: + description: KeyValueOrSecretKeySelectorPair is useful when + wanting to realize a map as a list of key/value pairs + where each value could also referenced data stored in + a Secret resource. + properties: + key: + description: Key is the key part of the key/value pair. + type: string + value: + description: Value is the optional value part of the + key/value pair. + properties: + from: + description: "From is specified to reference a value + from a Secret resource. \n Please note this field + is mutually exclusive with the Value field." + properties: + key: + description: The key of the secret to select + from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, + kind, uid?' + type: string + optional: + description: Specify whether the Secret or its + key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + value: + description: "Value is used to directly specify + a value. \n Please note this field is mutually + exclusive with the From field." + type: string + type: object + required: + - key + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + rawProperties: + description: "RawProperties is the name of a Secret resource + in the same Namespace as this VM where each key/value pair + from the Secret is used as a vApp key/value pair. \n Please + note this field and Properties are mutually exclusive." + type: string + type: object + type: object + className: + description: "Class describes the name of the VirtualMachineClass + resource used to deploy this VM. \n This field is optional in the + cases where there exists a sensible default value, such as when + there is a single VirtualMachineClass resource available in the + same Namespace as the VM being deployed." + type: string + imageName: + description: "ImageName describes the name of the image resource used + to deploy this VM. \n This field may be used to specify the name + of a VirtualMachineImage or ClusterVirtualMachineImage resource. + The resolver first checks to see if there is a ClusterVirtualMachineImage + with the specified name. If no such resource exists, the resolver + then checks to see if there is a VirtualMachineImage resource with + the specified name in the same Namespace as the VM being deployed. + \n This field is optional in the cases where there exists a sensible + default value, such as when there is a single VirtualMachineImage + resource available in the same Namespace as the VM being deployed." + type: string + network: + description: "Network describes the desired network configuration + for the VM. \n Please note this value may be omitted entirely and + the VM will be assigned a single, virtual network interface that + is connected to the Namespace's default network." + properties: + addresses: + description: "Addresses is an optional list of IP4 or IP6 addresses + to assign to the VM. \n Please note this field is only supported + if the connected network supports manual IP allocation. \n Please + note IP4 and IP6 addresses must include the network prefix length, + ex. 192.168.0.10/24 or 2001:db8:101::a/64. \n Please note this + field may not contain IP4 addresses if DHCP4 is set to true + or IP6 addresses if DHCP6 is set to true. \n Please note if + the Interfaces field is non-empty then this field is ignored + and should be specified on the elements in the Interfaces list." + items: + type: string + type: array + deviceName: + description: "DeviceName describes the unique name of this network + interface, used to distinguish it from other network interfaces + attached to this VM. \n This value is also used to rename the + device inside the guest when the bootstrap provider is CloudInit. + Please note it is up to the user to ensure the provided device + name does not conflict with any other devices inside the guest, + ex. dvd, cdrom, sda, etc. \n Please note if the Interfaces field + is non-empty then this field is ignored and should be specified + on the elements in the Interfaces list. \n If the Interfaces + field is empty and this field is not specified, then the default + interface's name will be eth0." + pattern: ^\w\w+$ + type: string + dhcp4: + description: "DHCP4 indicates whether or not to use DHCP for IP4 + networking. \n Please note this field is only supported if the + network connection supports DHCP. \n Please note this field + is mutually exclusive with IP4 addresses in the Addresses field + and the Gateway4 field. \n Please note if the Interfaces field + is non-empty then this field is ignored and should be specified + on the elements in the Interfaces list." + type: boolean + dhcp6: + description: "DHCP6 indicates whether or not to use DHCP for IP6 + networking. \n Please note this field is only supported if the + network connection supports DHCP. \n Please note this field + is mutually exclusive with IP4 addresses in the Addresses field + and the Gateway6 field. \n Please note if the Interfaces field + is non-empty then this field is ignored and should be specified + on the elements in the Interfaces list." + type: boolean + disabled: + description: "Disabled is a flag that indicates whether or not + to disable networking for this VM. \n When set to true, the + VM is not configured with a default interface nor any specified + from the Interfaces field." + type: boolean + gateway4: + description: "Gateway4 is the default, IP4 gateway for this VM. + \n Please note this field is only supported if the network connection + supports manual IP allocation. \n If the network connection + supports manual IP allocation and the Addresses field includes + at least one IP4 address, then this field is required. \n Please + note the IP address must include the network prefix length, + ex. 192.168.0.1/24. \n Please note this field is mutually exclusive + with DHCP4. \n Please note if the Interfaces field is non-empty + then this field is ignored and should be specified on the elements + in the Interfaces list." + type: string + gateway6: + description: "Gateway6 is the primary IP6 gateway for this VM. + \n Please note this field is only supported if the network connection + supports manual IP allocation. \n If the network connection + supports manual IP allocation and the Addresses field includes + at least one IP4 address, then this field is required. \n Please + note the IP address must include the network prefix length, + ex. 2001:db8:101::1/64. \n Please note this field is mutually + exclusive with DHCP6. \n Please note if the Interfaces field + is non-empty then this field is ignored and should be specified + on the elements in the Interfaces list." + type: string + hostName: + description: "HostName is the value the guest uses as its host + name. If omitted then the name of the VM will be used. \n Please + note this feature is available only with the following bootstrap + providers: CloudInit, LinuxPrep, and Sysprep (except for RawSysprep)." + type: string + interfaces: + description: "Interfaces is the list of network interfaces used + by this VM. \n Please note this field is mutually exclusive + with the following fields: DeviceName, Network, Addresses, DHCP4, + DHCP6, Gateway4, Gateway6, MTU, Nameservers, Routes, and SearchDomains." + items: + description: VirtualMachineNetworkInterfaceSpec describes the + desired state of a VM's network interface. + properties: + addresses: + description: "Addresses is an optional list of IP4 or IP6 + addresses to assign to this interface. \n Please note + this field is only supported if the connected network + supports manual IP allocation. \n Please note IP4 and + IP6 addresses must include the network prefix length, + ex. 192.168.0.10/24 or 2001:db8:101::a/64. \n Please note + this field may not contain IP4 addresses if DHCP4 is set + to true or IP6 addresses if DHCP6 is set to true. \n Please + note if the Interfaces field is non-empty then this field + is ignored and should be specified on the elements in + the Interfaces list." + items: + type: string + type: array + dhcp4: + description: "DHCP4 indicates whether or not this interface + uses DHCP for IP4 networking. \n Please note this field + is only supported if the network connection supports DHCP. + \n Please note this field is mutually exclusive with IP4 + addresses in the Addresses field and the Gateway4 field." + type: boolean + dhcp6: + description: "DHCP6 indicates whether or not this interface + uses DHCP for IP6 networking. \n Please note this field + is only supported if the network connection supports DHCP. + \n Please note this field is mutually exclusive with IP4 + addresses in the Addresses field and the Gateway6 field." + type: boolean + gateway4: + description: "Gateway4 is the default, IP4 gateway for this + interface. \n Please note this field is only supported + if the network connection supports manual IP allocation. + \n If the network connection supports manual IP allocation + and the Addresses field includes at least one IP4 address, + then this field is required. \n Please note the IP address + must include the network prefix length, ex. 192.168.0.1/24. + \n Please note this field is mutually exclusive with DHCP4." + type: string + gateway6: + description: "Gateway6 is the primary IP6 gateway for this + interface. \n Please note this field is only supported + if the network connection supports manual IP allocation. + \n If the network connection supports manual IP allocation + and the Addresses field includes at least one IP4 address, + then this field is required. \n Please note the IP address + must include the network prefix length, ex. 2001:db8:101::1/64. + \n Please note this field is mutually exclusive with DHCP6." + type: string + mtu: + description: "MTU is the Maximum Transmission Unit size + in bytes. \n Please note this feature is available only + with the following bootstrap providers: CloudInit." + format: int64 + type: integer + name: + description: "Name describes the unique name of this network + interface, used to distinguish it from other network interfaces + attached to this VM. \n This value is also used to rename + the device inside the guest when the bootstrap provider + is CloudInit. Please note it is up to the user to ensure + the provided device name does not conflict with any other + devices inside the guest, ex. dvd, cdrom, sda, etc." + pattern: ^\w\w+$ + type: string + nameservers: + description: "Nameservers is a list of IP4 and/or IP6 addresses + used as DNS nameservers. \n Please note this feature is + available only with the following bootstrap providers: + CloudInit, LinuxPrep, and Sysprep (except for RawSysprep). + \n Please note that Linux allows only three nameservers + (https://linux.die.net/man/5/resolv.conf)." + items: + type: string + type: array + network: + description: "Network is the name of the network resource + to which this interface is connected. \n If no network + is provided, then this interface will be connected to + the Namespace's default network." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + name: + description: 'Name refers to a unique resource in the + current namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + type: string + required: + - name + type: object + routes: + description: "Routes is a list of optional, static routes. + \n Please note this feature is available only with the + following bootstrap providers: CloudInit." + items: + description: VirtualMachineNetworkRouteSpec defines a + static route for a guest. + properties: + metric: + description: Metric is the weight/priority of the + route. + format: int32 + type: integer + to: + description: To is an IP4 address. + type: string + via: + description: Via is an IP4 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: "SearchDomains is a list of search domains + used when resolving IP addresses with DNS. \n Please note + this feature is available only with the following bootstrap + providers: CloudInit, LinuxPrep, and Sysprep (except for + RawSysprep)." + items: + type: string + type: array + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + mtu: + description: "MTU is the Maximum Transmission Unit size in bytes. + \n Please note this feature is available only with the following + bootstrap providers: CloudInit. \n Please note if the Interfaces + field is non-empty then this field is ignored and should be + specified on the elements in the Interfaces list." + format: int64 + type: integer + nameservers: + description: "Nameservers is a list of IP4 and/or IP6 addresses + used as DNS nameservers. \n Please note this feature is available + only with the following bootstrap providers: CloudInit, LinuxPrep, + and Sysprep (except for RawSysprep). \n Please note that Linux + allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + \n Please note if the Interfaces field is non-empty then this + field is ignored and should be specified on the elements in + the Interfaces list." + items: + type: string + type: array + network: + description: "Network is the optional name of the network resource + to which this VM is connected. \n Please note if the Interfaces + field is non-empty then this field is ignored. \n If networking + is not disabled, no interfaces are defined, and this value is + omitted, then the VM will be provided a single virtual network + interface and connected to the Namespace's default network." + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + name: + description: 'Name refers to a unique resource in the current + namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + type: string + required: + - name + type: object + routes: + description: "Routes is a list of optional, static routes. \n + Please note this feature is available only with the following + bootstrap providers: CloudInit. \n Please note if the Interfaces + field is non-empty then this field is ignored and should be + specified on the elements in the Interfaces list." + items: + description: VirtualMachineNetworkRouteSpec defines a static + route for a guest. + properties: + metric: + description: Metric is the weight/priority of the route. + format: int32 + type: integer + to: + description: To is an IP4 address. + type: string + via: + description: Via is an IP4 address. + type: string + required: + - metric + - to + - via + type: object + type: array + searchDomains: + description: "SearchDomains is a list of search domains used when + resolving IP addresses with DNS. \n Please note this feature + is available only with the following bootstrap providers: CloudInit, + LinuxPrep, and Sysprep (except for RawSysprep). \n Please note + if the Interfaces field is non-empty then this field is ignored + and should be specified on the elements in the Interfaces list." + items: + type: string + type: array + type: object + nextRestartTime: + description: "NextRestartTime may be used to restart the VM, in accordance + with RestartMode, by setting the value of this field to \"now\" + (case-insensitive). \n A mutating webhook changes this value to + the current time (UTC), which the VM controller then uses to determine + the VM should be restarted by comparing the value to the timestamp + of the last time the VM was restarted. \n Please note it is not + possible to schedule future restarts using this field. The only + value that users may set is the string \"now\" (case-insensitive)." + type: string + powerOffMode: + default: TrySoft + description: "PowerOffMode describes the desired behavior when powering + off a VM. \n There are three, supported power off modes: Hard, Soft, + and TrySoft. The first mode, Hard, is the equivalent of a physical + system's power cord being ripped from the wall. The Soft mode requires + the VM's guest to have VM Tools installed and attempts to gracefully + shutdown the VM. Its variant, TrySoft, first attempts a graceful + shutdown, and if that fails or the VM is not in a powered off state + after five minutes, the VM is halted. \n If omitted, the mode defaults + to TrySoft." + enum: + - Hard + - Soft + - TrySoft + type: string + powerState: + description: "PowerState describes the desired power state of a VirtualMachine. + \n Please note this field may be omitted when creating a new VM + and will default to \"PoweredOn.\" However, once the field is set + to a non-empty value, it may no longer be set to an empty value. + \n Additionally, setting this value to \"Suspended\" is not supported + when creating a new VM. The valid values when creating a new VM + are \"PoweredOn\" and \"PoweredOff.\" An empty value is also allowed + on create since this value defaults to \"PoweredOn\" for new VMs." + enum: + - PoweredOff + - PoweredOn + - Suspended + type: string + readinessGates: + description: "ReadinessGates, if specified, will be evaluated to determine + the VM's readiness. \n A VM is ready when its readiness probe, if + specified, is true AND all of the conditions specified by the readiness + gates have a status equal to \"True\"." + items: + description: VirtualMachineReadinessGate contains the reference + to a VM condition. + properties: + conditionType: + description: ConditionType refers to a condition in the VM's + condition list with matching type. + type: string + required: + - conditionType + type: object + type: array + x-kubernetes-list-map-keys: + - conditionType + x-kubernetes-list-type: map + readinessProbe: + description: ReadinessProbe describes a probe used to determine the + VM's ready state. + properties: + guestHeartbeat: + description: GuestHeartbeat specifies an action involving the + guest heartbeat status. + properties: + thresholdStatus: + default: green + description: ThresholdStatus is the value that the guest heartbeat + status must be at or above to be considered successful. + enum: + - yellow + - green + type: string + type: object + guestInfo: + description: "GuestInfo specifies an action involving key/value + pairs from GuestInfo. \n The elements are evaluated with the + logical AND operator, meaning all expressions must evaluate + as true for the probe to succeed. \n For example, a VM resource's + probe definition could be specified as the following: \n guestInfo: + - key: ready value: true \n With the above configuration in + place, the VM would not be considered ready until the GuestInfo + key \"ready\" was set to the value \"true\". \n From within + the guest operating system it is possible to set GuestInfo key/value + pairs using the program \"vmware-rpctool,\" which is included + with VM Tools. For example, the following command will set the + key \"guestinfo.ready\" to the value \"true\": \n vmware-rpctool + \"info-set guestinfo.ready true\" \n Once executed, the VM's + readiness probe will be signaled and the VM resource will be + marked as ready." + items: + description: GuestInfoAction describes a key from GuestInfo + that must match the associated value expression. + properties: + key: + description: "Key is the name of the GuestInfo key. \n Values + are automatically prefixed with \"guestinfo.\" before + being evaluated. Thus if the key \"guestinfo.mykey\" is + provided, it will be evaluated as \"guestinfo.guestinfo.mykey\"." + type: string + value: + description: "Value is a regular expression that is matched + against the value of the specified key. \n An empty value + is the equivalent of \"match any\" or \".*\". \n All values + must adhere to the RE2 regular expression syntax as documented + at https://golang.org/s/re2syntax. Invalid values may + be rejected or ignored depending on the implementation + of this API. Either way, invalid values will not be considered + when evaluating the ready state of a VM." + type: string + required: + - key + type: object + type: array + periodSeconds: + description: PeriodSeconds specifics how often (in seconds) to + perform the probe. Defaults to 10 seconds. Minimum value is + 1. + format: int32 + minimum: 1 + type: integer + tcpSocket: + description: TCPSocket specifies an action involving a TCP port. + properties: + host: + description: Host is an optional host name to connect to. + Host defaults to the VM IP. + type: string + port: + anyOf: + - type: integer + - type: string + description: Port specifies a number or name of the port to + access on the VM. If the format of port is a number, it + must be in the range 1 to 65535. If the format of name is + a string, it must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + timeoutSeconds: + description: TimeoutSeconds specifies a number of seconds after + which the probe times out. Defaults to 10 seconds. Minimum value + is 1. + format: int32 + maximum: 60 + minimum: 1 + type: integer + type: object + reserved: + description: "Reserved describes a set of VM configuration options + reserved for system use. \n Please note attempts to modify the value + of this field by a DevOps user will result in a validation error." + properties: + resourcePolicyName: + description: ResourcePolicyName describes the name of a VirtualMachineSetResourcePolicy + resource used to configure the VM's resource policy. + type: string + type: object + restartMode: + default: TrySoft + description: "RestartMode describes the desired behavior for restarting + a VM when spec.nextRestartTime is set to \"now\" (case-insensitive). + \n There are three, supported suspend modes: Hard, Soft, and TrySoft. + The first mode, Hard, is where vSphere resets the VM without any + interaction inside of the guest. The Soft mode requires the VM's + guest to have VM Tools installed and asks the guest to restart the + VM. Its variant, TrySoft, first attempts a soft restart, and if + that fails or does not complete within five minutes, the VM is hard + reset. \n If omitted, the mode defaults to TrySoft." + enum: + - Hard + - Soft + - TrySoft + type: string + storageClass: + description: "StorageClass describes the name of a Kubernetes StorageClass + resource used to configure this VM's storage-related attributes. + \n Please see https://kubernetes.io/docs/concepts/storage/storage-classes/ + for more information on Kubernetes storage classes. \n This field + is optional in the cases where there exists a sensible default value, + such as when there is a single StorageClass resource available in + the same Namespace as the VM being deployed." + type: string + suspendMode: + default: TrySoft + description: "SuspendMode describes the desired behavior when suspending + a VM. \n There are three, supported suspend modes: Hard, Soft, and + TrySoft. The first mode, Hard, is where vSphere suspends the VM + to disk without any interaction inside of the guest. The Soft mode + requires the VM's guest to have VM Tools installed and attempts + to gracefully suspend the VM. Its variant, TrySoft, first attempts + a graceful suspend, and if that fails or the VM is not in a put + into standby by the guest after five minutes, the VM is suspended. + \n If omitted, the mode defaults to TrySoft." + enum: + - Hard + - Soft + - TrySoft + type: string + volumes: + description: Volumes describes a list of volumes that can be mounted + to the VM. + items: + description: VirtualMachineVolume represents a named volume in a + VM. + properties: + name: + description: Name represents the volume's name. Must be a DNS_LABEL + and unique within the VM. + type: string + persistentVolumeClaim: + description: "PersistentVolumeClaim represents a reference to + a PersistentVolumeClaim in the same namespace. \n More information + is available at https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims." + properties: + claimName: + description: 'claimName is the name of a PersistentVolumeClaim + in the same namespace as the pod using this volume. More + info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' + type: string + instanceVolumeClaim: + description: InstanceVolumeClaim is set if the PVC is backed + by instance storage. + properties: + size: + anyOf: + - type: integer + - type: string + description: Size is the size of the requested instance + storage volume. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + storageClass: + description: StorageClass is the name of the Kubernetes + StorageClass that provides the backing storage for + this instance storage volume. + type: string + required: + - size + - storageClass + type: object + readOnly: + description: readOnly Will force the ReadOnly setting in + VolumeMounts. Default false. + type: boolean + required: + - claimName + type: object + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + type: object + status: + description: VirtualMachineStatus defines the observed state of a VirtualMachine + instance. + properties: + biosUUID: + description: BiosUUID describes a unique identifier provided by the + underlying infrastructure provider that is exposed to the Guest + OS BIOS as a unique hardware identifier. + type: string + changeBlockTracking: + description: ChangeBlockTracking describes the CBT enablement status + on the VM. + type: boolean + class: + description: Class is a reference to the VirtualMachineClass resource + used to deploy this VM. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this + representation of an object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: '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' + type: string + name: + description: 'Name refers to a unique resource in the current + namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + type: string + required: + - apiVersion + - kind + - name + type: object + conditions: + description: Conditions describes the observed conditions of the VirtualMachine. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + host: + description: Host describes the hostname or IP address of the infrastructure + host where the VM is executed. + type: string + image: + description: Image is a reference to the VirtualMachineImage resource + used to deploy this VM. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this + representation of an object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: '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' + type: string + name: + description: 'Name refers to a unique resource in the current + namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + type: string + required: + - apiVersion + - kind + - name + type: object + instanceUUID: + description: InstanceUUID describes the unique instance UUID provided + by the underlying infrastructure provider, such as vSphere. + type: string + lastRestartTime: + description: LastRestartTime describes the last time the VM was restarted. + format: date-time + type: string + network: + description: Network describes the observed state of the VM's network + configuration. Please note much of the network status information + is only available if the guest has VM Tools installed. + properties: + dhcp: + description: DHCP describes the VM's observed, client-side, system-wide + DHCP options. + properties: + ip4: + description: IP4 describes the observed state of the IP4 DHCP + client settings. + properties: + config: + description: "Config describes platform-dependent settings + for the DHCP client. \n The key part is a unique number + while the value part is the platform specific configuration + command. For example on Linux and BSD systems using + the file dhclient.conf output would be reported at system + scope: key='1', value='timeout 60;' key='2', value='reboot + 10;'. The output reported per interface would be: key='1', + value='prepend domain-name-servers 192.0.2.1;' key='2', + value='require subnet-mask, domain-name-servers;'." + items: + description: KeyValuePair is useful when wanting to + realize a map as a list of key/value pairs. + properties: + key: + description: Key is the key part of the key/value + pair. + type: string + value: + description: Value is the optional value part of + the key/value pair. + type: string + required: + - key + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + enabled: + description: Enabled reports the status of the DHCP client + services. + type: boolean + type: object + ip6: + description: IP6 describes the observed state of the IP6 DHCP + client settings. + properties: + config: + description: "Config describes platform-dependent settings + for the DHCP client. \n The key part is a unique number + while the value part is the platform specific configuration + command. For example on Linux and BSD systems using + the file dhclient.conf output would be reported at system + scope: key='1', value='timeout 60;' key='2', value='reboot + 10;'. The output reported per interface would be: key='1', + value='prepend domain-name-servers 192.0.2.1;' key='2', + value='require subnet-mask, domain-name-servers;'." + items: + description: KeyValuePair is useful when wanting to + realize a map as a list of key/value pairs. + properties: + key: + description: Key is the key part of the key/value + pair. + type: string + value: + description: Value is the optional value part of + the key/value pair. + type: string + required: + - key + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + enabled: + description: Enabled reports the status of the DHCP client + services. + type: boolean + type: object + type: object + dns: + description: DNS describes the VM's observed, client-side DNS + configuration. + properties: + dhcp: + description: DHCP indicates whether or not dynamic host control + protocol (DHCP) was used to configure DNS configuration. + type: boolean + domainName: + description: DomainName is the domain name portion of the + DNS name. For example, the "domain.local" part of "my-vm.domain.local". + type: string + hostName: + description: HostName is the host name portion of the DNS + name. For example, the "my-vm" part of "my-vm.domain.local". + type: string + nameservers: + description: "Nameservers is a list of the IP addresses for + the DNS servers to use. \n IP4 addresses are specified using + dotted decimal notation. For example, \"192.0.2.1\". \n + IP6 addresses are 128-bit addresses represented as eight + fields of up to four hexadecimal digits. A colon separates + each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. + The address can also consist of the symbol '::' to represent + multiple 16-bit groups of contiguous 0's only once in an + address as described in RFC 2373." + items: + type: string + type: array + searchDomains: + description: SearchDomains is a list of domains in which to + search for hosts, in the order of preference. + items: + type: string + type: array + type: object + interfaces: + description: Interfaces describes the status of the VM's network + interfaces. + items: + description: VirtualMachineNetworkInterfaceStatus describes + the observed state of a VM's network interface. + properties: + dns: + description: DNS describes the observed state of the interface's + DNS configuration. + properties: + dhcp: + description: DHCP indicates whether or not dynamic host + control protocol (DHCP) was used to configure DNS + configuration. + type: boolean + domainName: + description: DomainName is the domain name portion of + the DNS name. For example, the "domain.local" part + of "my-vm.domain.local". + type: string + hostName: + description: HostName is the host name portion of the + DNS name. For example, the "my-vm" part of "my-vm.domain.local". + type: string + nameservers: + description: "Nameservers is a list of the IP addresses + for the DNS servers to use. \n IP4 addresses are specified + using dotted decimal notation. For example, \"192.0.2.1\". + \n IP6 addresses are 128-bit addresses represented + as eight fields of up to four hexadecimal digits. + A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. + The address can also consist of the symbol '::' to + represent multiple 16-bit groups of contiguous 0's + only once in an address as described in RFC 2373." + items: + type: string + type: array + searchDomains: + description: SearchDomains is a list of domains in which + to search for hosts, in the order of preference. + items: + type: string + type: array + type: object + ip: + description: IP describes the observed state of the interface's + IP configuration. + properties: + addresses: + description: Addresses describes observed IP addresses + for this interface. + items: + description: VirtualMachineNetworkInterfaceIPAddrStatus + describes information about a specific IP address. + properties: + address: + description: "Address is an IP4 or IP6 address + and their network prefix length. \n An IP4 address + is specified using dotted decimal notation. + For example, \"192.0.2.1\". \n IP6 addresses + are 128-bit addresses represented as eight fields + of up to four hexadecimal digits. A colon separates + each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. + The address can also consist of the symbol '::' + to represent multiple 16-bit groups of contiguous + 0's only once in an address as described in + RFC 2373." + type: string + lifetime: + description: Lifetime describes when this address + will expire. + format: date-time + type: string + origin: + description: Origin describes how this address + was configured. + enum: + - dhcp + - linklayer + - manual + - other + - random + type: string + state: + description: State describes the state of this + IP address. + enum: + - deprecated + - duplicate + - inaccessible + - invalid + - preferred + - tentative + - unknown + type: string + required: + - address + type: object + type: array + autoConfigurationEnabled: + description: "AutoConfigurationEnabled describes whether + or not ICMPv6 router solicitation requests are enabled + or disabled from a given interface. \n These requests + acquire an IP6 address and default gateway route from + zero-to-many routers on the connected network. \n + If not set then ICMPv6 is not available on this VM." + type: boolean + dhcp: + description: DHCP describes the VM's observed, client-side, + interface-specific DHCP options. + properties: + ip4: + description: IP4 describes the observed state of + the IP4 DHCP client settings. + properties: + config: + description: "Config describes platform-dependent + settings for the DHCP client. \n The key part + is a unique number while the value part is + the platform specific configuration command. + For example on Linux and BSD systems using + the file dhclient.conf output would be reported + at system scope: key='1', value='timeout 60;' + key='2', value='reboot 10;'. The output reported + per interface would be: key='1', value='prepend + domain-name-servers 192.0.2.1;' key='2', value='require + subnet-mask, domain-name-servers;'." + items: + description: KeyValuePair is useful when wanting + to realize a map as a list of key/value + pairs. + properties: + key: + description: Key is the key part of the + key/value pair. + type: string + value: + description: Value is the optional value + part of the key/value pair. + type: string + required: + - key + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + enabled: + description: Enabled reports the status of the + DHCP client services. + type: boolean + type: object + ip6: + description: IP6 describes the observed state of + the IP6 DHCP client settings. + properties: + config: + description: "Config describes platform-dependent + settings for the DHCP client. \n The key part + is a unique number while the value part is + the platform specific configuration command. + For example on Linux and BSD systems using + the file dhclient.conf output would be reported + at system scope: key='1', value='timeout 60;' + key='2', value='reboot 10;'. The output reported + per interface would be: key='1', value='prepend + domain-name-servers 192.0.2.1;' key='2', value='require + subnet-mask, domain-name-servers;'." + items: + description: KeyValuePair is useful when wanting + to realize a map as a list of key/value + pairs. + properties: + key: + description: Key is the key part of the + key/value pair. + type: string + value: + description: Value is the optional value + part of the key/value pair. + type: string + required: + - key + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + enabled: + description: Enabled reports the status of the + DHCP client services. + type: boolean + type: object + type: object + macAddr: + description: MACAddr describes the observed MAC address + for this interface. + type: string + type: object + name: + description: "Name describes the unique name of this network + interface, used to distinguish it from other network interfaces + attached to this VM. \n Please note this name is not related + to the name of the device as it is surfaced inside of + the guest." + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + ipRoutes: + description: IPRoutes contain the VM's routing tables for all + address families. + items: + description: VirtualMachineNetworkIPRouteStatus describes the + observed state of a guest network's IP routes. + properties: + gateway: + description: Gateway describes where to send the packets + to next. + properties: + address: + description: Address is the IP4 or IP6 address of the + gateway. + type: string + device: + description: Device is the name of the device in the + guest for which this gateway applies. + type: string + type: object + networkAddress: + description: "NetworkAddress is the IP4 or IP6 address of + the destination network. \n Addresses include the network's + prefix length, ex. 192.168.0.0/24 or 2001:DB8:101::230:6eff:fe04:d9ff::/64. + \n IP6 addresses are 128-bit addresses represented as + eight fields of up to four hexadecimal digits. A colon + separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. + The address can also consist of symbol '::' to represent + multiple 16-bit groups of contiguous 0's only once in + an address as described in RFC 2373." + type: string + required: + - gateway + - networkAddress + type: object + type: array + kernelConfig: + description: "KernelConfig describes the observed state of the + VM's kernel IP configuration settings. \n The key part contains + a unique number while the value part contains the 'key=value' + as provided by the underlying provider. For example, on Linux + and/or BSD, the systcl -a output would be reported as: key='5', + value='net.ipv4.tcp_keepalive_time = 7200'." + items: + description: KeyValuePair is useful when wanting to realize + a map as a list of key/value pairs. + properties: + key: + description: Key is the key part of the key/value pair. + type: string + value: + description: Value is the optional value part of the key/value + pair. + type: string + required: + - key + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + primaryIP4: + description: "PrimaryIP4 describes the VM's primary IP4 address. + \n If the bootstrap provider is CloudInit then this value is + set to the value of the VM's \"guestinfo.local-ipv4\" property. + Please see https://bit.ly/3NJB534 for more information on how + this value is calculated. \n If the bootstrap provider is anything + else then this field is set to the value of the infrastructure + VM's \"guest.ipAddress\" field. Please see https://bit.ly/3Au0jM4 + for more information." + type: string + primaryIP6: + description: "PrimaryIP6 describes the VM's primary IP6 address. + \n If the bootstrap provider is CloudInit then this value is + set to the value of the VM's \"guestinfo.local-ipv6\" property. + Please see https://bit.ly/3NJB534 for more information on how + this value is calculated. \n If the bootstrap provider is anything + else then this field is set to the value of the infrastructure + VM's \"guest.ipAddress\" field. Please see https://bit.ly/3Au0jM4 + for more information." + type: string + type: object + powerState: + description: PowerState describes the observed power state of the + VirtualMachine. + enum: + - PoweredOff + - PoweredOn + - Suspended + type: string + uniqueID: + description: UniqueID describes a unique identifier that is provided + by the underlying infrastructure provider, such as vSphere. + type: string + volumes: + description: Volumes describes a list of current status information + for each Volume that is desired to be attached to the VM. + items: + description: VirtualMachineVolumeStatus defines the observed state + of a VirtualMachineVolume instance. + properties: + attached: + description: Attached represents whether a volume has been successfully + attached to the VirtualMachine or not. + type: boolean + diskUUID: + description: DiskUUID represents the underlying virtual disk + UUID and is present when attachment succeeds. + type: string + error: + description: Error represents the last error seen when attaching + or detaching a volume. Error will be empty if attachment + succeeds. + type: string + name: + description: Name is the name of the attached volume. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + zone: + description: "Zone describes the availability zone where the VirtualMachine + has been scheduled. \n Please note this field may be empty when + the cluster is not zone-aware." + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: virtualmachineclasses.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: VirtualMachineClass + listKind: VirtualMachineClassList + plural: virtualmachineclasses + shortNames: + - vmclass + singular: virtualmachineclass + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .spec.hardware.cpus + name: CPU + type: string + - jsonPath: .spec.hardware.memory + name: Memory + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - jsonPath: .spec.hardware.devices.vgpuDevices[*].profileName + name: VGPU-Devices-Profile-Names + priority: 1 + type: string + - jsonPath: .spec.hardware.devices.dynamicDirectPathIODevices[*].deviceID + name: Passthrough-DeviceIDs + priority: 1 + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: VirtualMachineClass is the Schema for the virtualmachineclasses + API. A VirtualMachineClass represents the desired specification and the + observed status of a VirtualMachineClass instance. A VirtualMachineClass + represents a policy and configuration resource which defines a set of attributes + to be used in the configuration of a VirtualMachine instance. A VirtualMachine + resource references a VirtualMachineClass as a required input. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineClassSpec defines the desired state of VirtualMachineClass. + properties: + configSpec: + description: ConfigSpec describes additional configuration information + for a VirtualMachine. The contents of this field are the VirtualMachineConfigSpec + data object (https://bit.ly/3HDtiRu) marshaled to JSON using the + discriminator field "_typeName" to preserve type information. + type: object + x-kubernetes-preserve-unknown-fields: true + controllerName: + description: "ControllerName describes the name of the controller + responsible for reconciling VirtualMachine resources that are realized + from this VirtualMachineClass. \n When omitted, controllers reconciling + VirtualMachine resources determine the default controller name from + the environment variable DEFAULT_VM_CLASS_CONTROLLER_NAME. If this + environment variable is not defined or empty, it defaults to vmoperator.vmware.com/vsphere. + \n Once a non-empty value is assigned to this field, attempts to + set this field to an empty value will be silently ignored." + type: string + description: + description: Description describes the configuration of the VirtualMachineClass + which is not related to virtual hardware or infrastructure policy. + This field is used to address remaining specs about this VirtualMachineClass. + type: string + hardware: + description: Hardware describes the configuration of the VirtualMachineClass + attributes related to virtual hardware. The configuration specified + in this field is used to customize the virtual hardware characteristics + of any VirtualMachine associated with this VirtualMachineClass. + properties: + cpus: + format: int64 + type: integer + devices: + description: VirtualDevices contains information about the virtual + devices associated with a VirtualMachineClass. + properties: + dynamicDirectPathIODevices: + items: + description: DynamicDirectPathIODevice contains the configuration + corresponding to a Dynamic DirectPath I/O device. + properties: + customLabel: + type: string + deviceID: + type: integer + vendorID: + type: integer + required: + - deviceID + - vendorID + type: object + type: array + vgpuDevices: + items: + description: VGPUDevice contains the configuration corresponding + to a vGPU device. + properties: + profileName: + type: string + required: + - profileName + type: object + type: array + type: object + instanceStorage: + description: InstanceStorage provides information used to configure + instance storage volumes for a VirtualMachine. + properties: + storageClass: + description: StorageClass refers to the name of a StorageClass + resource used to provide the storage for the configured + instance storage volumes. The value of this field has no + relationship to or bearing on the field virtualMachine.spec.storageClass. + Please note the referred StorageClass must be available + in the same namespace as the VirtualMachineClass that uses + it for configuring instance storage. + type: string + volumes: + description: Volumes describes instance storage volumes created + for a VirtualMachine instance that use this VirtualMachineClass. + items: + description: InstanceStorageVolume contains information + required to create an instance storage volume on a VirtualMachine. + properties: + size: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + required: + - size + type: object + type: array + type: object + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + policies: + description: Policies describes the configuration of the VirtualMachineClass + attributes related to virtual infrastructure policy. The configuration + specified in this field is used to customize various policies related + to infrastructure resource consumption. + properties: + resources: + description: VirtualMachineClassResources describes the virtual + hardware resource reservations and limits configuration to be + used by a VirtualMachineClass. + properties: + limits: + description: VirtualMachineResourceSpec describes a virtual + hardware policy specification. + properties: + cpu: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + description: VirtualMachineResourceSpec describes a virtual + hardware policy specification. + properties: + cpu: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + type: object + type: object + status: + description: VirtualMachineClassStatus defines the observed state of VirtualMachineClass. VirtualMachineClasses + are immutable, non-dynamic resources, so this status is currently unused. + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.hardware.cpus + name: CPU + type: string + - jsonPath: .spec.hardware.memory + name: Memory + type: string + - jsonPath: .status.capabilities + name: Capabilities + priority: 1 + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: VirtualMachineClass is the schema for the virtualmachineclasses + API and represents the desired state and observed status of a virtualmachineclasses + resource. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineClassSpec defines the desired state of VirtualMachineClass. + properties: + configSpec: + description: ConfigSpec describes additional configuration information + for a VirtualMachine. The contents of this field are the VirtualMachineConfigSpec + data object (https://bit.ly/3HDtiRu) marshaled to JSON using the + discriminator field "_typeName" to preserve type information. + type: object + x-kubernetes-preserve-unknown-fields: true + controllerName: + description: "ControllerName describes the name of the controller + responsible for reconciling VirtualMachine resources that are realized + from this VirtualMachineClass. \n When omitted, controllers reconciling + VirtualMachine resources determine the default controller name from + the environment variable DEFAULT_VM_CLASS_CONTROLLER_NAME. If this + environment variable is not defined or empty, it defaults to vmoperator.vmware.com/vsphere. + \n Once a non-empty value is assigned to this field, attempts to + set this field to an empty value will be silently ignored." + type: string + description: + description: Description describes the configuration of the VirtualMachineClass + which is not related to virtual hardware or infrastructure policy. + This field is used to address remaining specs about this VirtualMachineClass. + type: string + hardware: + description: Hardware describes the configuration of the VirtualMachineClass + attributes related to virtual hardware. The configuration specified + in this field is used to customize the virtual hardware characteristics + of any VirtualMachine associated with this VirtualMachineClass. + properties: + cpus: + format: int64 + type: integer + devices: + description: VirtualDevices contains information about the virtual + devices associated with a VirtualMachineClass. + properties: + dynamicDirectPathIODevices: + items: + description: DynamicDirectPathIODevice contains the configuration + corresponding to a Dynamic DirectPath I/O device. + properties: + customLabel: + type: string + deviceID: + format: int64 + type: integer + vendorID: + format: int64 + type: integer + required: + - deviceID + - vendorID + type: object + type: array + vgpuDevices: + items: + description: VGPUDevice contains the configuration corresponding + to a vGPU device. + properties: + profileName: + type: string + required: + - profileName + type: object + type: array + x-kubernetes-list-map-keys: + - profileName + x-kubernetes-list-type: map + type: object + instanceStorage: + description: InstanceStorage provides information used to configure + instance storage volumes for a VirtualMachine. + properties: + storageClass: + description: StorageClass refers to the name of a StorageClass + resource used to provide the storage for the configured + instance storage volumes. The value of this field has no + relationship to or bearing on the field virtualMachine.spec.storageClass. + Please note the referred StorageClass must be available + in the same namespace as the VirtualMachineClass that uses + it for configuring instance storage. + type: string + volumes: + description: Volumes describes instance storage volumes created + for a VirtualMachine instance that use this VirtualMachineClass. + items: + description: InstanceStorageVolume contains information + required to create an instance storage volume on a VirtualMachine. + properties: + size: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + required: + - size + type: object + type: array + type: object + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + policies: + description: Policies describes the configuration of the VirtualMachineClass + attributes related to virtual infrastructure policy. The configuration + specified in this field is used to customize various policies related + to infrastructure resource consumption. + properties: + resources: + description: VirtualMachineClassResources describes the virtual + hardware resource reservations and limits configuration to be + used by a VirtualMachineClass. + properties: + limits: + description: VirtualMachineResourceSpec describes a virtual + hardware policy specification. + properties: + cpu: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + description: VirtualMachineResourceSpec describes a virtual + hardware policy specification. + properties: + cpu: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + type: object + type: object + status: + description: VirtualMachineClassStatus defines the observed state of VirtualMachineClass. + properties: + capabilities: + description: "Capabilities describes the class's observed capabilities. + \n The capabilities are discerned when VM Operator reconciles a + class and inspects its specification. Well-known capabilities include: + \n * instance-storage * nvidia-gpu * sriov-net \n In addition to + \"nvidia-gpu\", a capability is added for every nVidia profile name + associated with the class. \n Every capability is also added to + the resource's labels as VirtualMachineClassCapabilityLabel + Value. + For example, if the capability is \"nvidia-gpu\" then the following + label will be added to the resource: capability.class.vmoperator.vmware.com/nvidia-gpu." + items: + type: string + type: array + x-kubernetes-list-type: set + conditions: + description: Conditions describes the observed conditions of the VirtualMachineClass. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + ready: + description: "Ready describes whether the class's hardware can be + realized in the cluster. \n This field is only set to true if all + of the class resource's conditions have Status=True." + type: boolean + type: object + type: object + served: true + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: virtualmachineclassbindings.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: VirtualMachineClassBinding + listKind: VirtualMachineClassBindingList + plural: virtualmachineclassbindings + shortNames: + - vmclassbinding + singular: virtualmachineclassbinding + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: VirtualMachineClassBinding is a binding object responsible for + defining a VirtualMachineClass and a Namespace associated with it. + properties: + apiVersion: + description: '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' + type: string + classRef: + description: ClassReference is a reference to a VirtualMachineClass object + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: Kind is the type of resource being referenced. + type: string + name: + description: Name is the name of resource being referenced. + type: string + required: + - name + type: object + kind: + description: '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' + type: string + metadata: + type: object + type: object + served: true + storage: true + subresources: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: virtualmachineimages.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: VirtualMachineImage + listKind: VirtualMachineImageList + plural: virtualmachineimages + shortNames: + - vmi + - vmimage + singular: virtualmachineimage + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .spec.providerRef.name + name: Provider-Name + type: string + - jsonPath: .status.contentLibraryRef.name + name: Content-Library-Name + type: string + - jsonPath: .status.imageName + name: Image-Name + type: string + - jsonPath: .spec.productInfo.version + name: Version + type: string + - jsonPath: .spec.osInfo.type + name: Os-Type + type: string + - jsonPath: .spec.type + name: Format + type: string + - jsonPath: .status.imageSupported + name: Image-Supported + priority: 1 + type: boolean + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: VirtualMachineImage is the Schema for the virtualmachineimages + API A VirtualMachineImage represents a VirtualMachine image (e.g. VM template) + that can be used as the base image for creating a VirtualMachine instance. The + VirtualMachineImage is a required field of the VirtualMachine spec. Currently, + VirtualMachineImages are immutable to end users. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineImageSpec defines the desired state of VirtualMachineImage. + properties: + hwVersion: + description: HardwareVersion describes the virtual hardware version + of the image + format: int32 + type: integer + imageID: + description: ImageID is a unique identifier exposed by the provider + of this VirtualMachineImage. + type: string + imageSourceType: + description: ImageSourceType describes the type of content source + of the VirtualMachineImage. The only Content Source supported currently + is the vSphere Content Library. + type: string + osInfo: + description: OSInfo describes the attributes of the VirtualMachineImage + relating to the Operating System contained in the image. + properties: + type: + description: Type typically describes the type of the guest operating + system. + type: string + version: + description: Version typically describes the version of the guest + operating system. + type: string + type: object + ovfEnv: + additionalProperties: + description: OvfProperty describes information related to a user + configurable property element that is supported by VirtualMachineImage + and can be customized during VirtualMachine creation. + properties: + default: + description: Default describes the default value of the ovf + key. + type: string + description: + description: Description contains the value of the OVF property's + optional "Description" element. + type: string + key: + description: Key describes the key of the ovf property. + type: string + label: + description: Label contains the value of the OVF property's + optional "Label" element. + type: string + type: + description: Type describes the type of the ovf property. + type: string + required: + - key + - type + type: object + description: OVFEnv describes the user configurable customization + parameters of the VirtualMachineImage. + type: object + productInfo: + description: ProductInfo describes the attributes of the VirtualMachineImage + relating to the product contained in the image. + properties: + fullVersion: + description: FullVersion typically describes a long-form version + of the image. + type: string + product: + description: Product typically describes the type of product contained + in the image. + type: string + vendor: + description: Vendor typically describes the name of the vendor + that is producing the image. + type: string + version: + description: Version typically describes a short-form version + of the image. + type: string + type: object + providerRef: + description: ProviderRef is a reference to a content provider object + that describes a provider. + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: Kind is the type of resource being referenced. + type: string + name: + description: Name is the name of resource being referenced. + type: string + namespace: + description: Namespace of the resource being referenced. If empty, + cluster scoped resource is assumed. + type: string + required: + - kind + - name + type: object + type: + description: Type describes the type of the VirtualMachineImage. Currently, + the only supported image is "OVF" + type: string + required: + - imageID + - providerRef + - type + type: object + status: + description: VirtualMachineImageStatus defines the observed state of VirtualMachineImage. + properties: + conditions: + description: Conditions describes the current condition information + of the VirtualMachineImage object. e.g. if the OS type is supported + or image is supported by VMService + items: + description: Condition defines an observation of a VM Operator API + resource operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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 disambiguate + is important. + type: string + required: + - status + - type + type: object + type: array + contentLibraryRef: + description: ContentLibraryRef is a reference to the source ContentLibrary/ClusterContentLibrary + resource. + properties: + apiGroup: + description: APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in + the core API group. For any other third-party types, APIGroup + is required. + type: string + kind: + description: Kind is the type of resource being referenced + type: string + name: + description: Name is the name of resource being referenced + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + contentVersion: + description: ContentVersion describes the observed content version + of this VirtualMachineImage that was last successfully synced with + the vSphere content library item. + type: string + firmware: + description: 'Firmware describe the firmware type used by this VirtualMachineImage. + eg: bios, efi.' + type: string + imageName: + description: ImageName describes the display name of this VirtualMachineImage. + type: string + imageSupported: + description: 'ImageSupported indicates whether the VirtualMachineImage + is supported by VMService. A VirtualMachineImage is supported by + VMService if the following conditions are true: - VirtualMachineImageV1Alpha1CompatibleCondition' + type: boolean + internalId: + description: Deprecated + type: string + powerState: + description: Deprecated + type: string + uuid: + description: Deprecated + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .status.name + name: Image Name + type: string + - jsonPath: .status.productInfo.version + name: Image Version + type: string + - jsonPath: .status.osInfo.type + name: OS Name + type: string + - jsonPath: .status.osInfo.version + name: OS Version + type: string + - jsonPath: .status.hardwareVersion + name: Hardware Version + type: string + - jsonPath: .status.capabilities + name: Capabilities + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: VirtualMachineImage is the schema for the virtualmachineimages + API. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineImageSpec defines the desired state of VirtualMachineImage. + properties: + providerRef: + description: ProviderRef is a reference to the resource that contains + the source of this image's information. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this + representation of an object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: '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' + type: string + name: + description: 'Name refers to a unique resource in the current + namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + type: string + required: + - apiVersion + - kind + - name + type: object + type: object + status: + description: VirtualMachineImageStatus defines the observed state of VirtualMachineImage. + properties: + capabilities: + description: "Capabilities describes the image's observed capabilities. + \n The capabilities are discerned when VM Operator reconciles an + image. If the source of an image is an OVF in Content Library, then + the capabilities are parsed from the OVF property capabilities.image.vmoperator.vmware.com + as a comma-separated list of values. Well-known capabilities include: + \n * cloud-init * nvidia-gpu * sriov-net \n Every capability is + also added to the resource's labels as VirtualMachineImageCapabilityLabel + + Value. For example, if the capability is \"cloud-init\" then the + following label will be added to the resource: capability.image.vmoperator.vmware.com/cloud-init." + items: + type: string + type: array + x-kubernetes-list-type: set + conditions: + description: Conditions describes the observed conditions for this + image. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + firmware: + description: Firmware describe the firmware type used by this image, + ex. BIOS, EFI. + type: string + hardwareVersion: + description: HardwareVersion describes the observed hardware version + of this image. + format: int32 + type: integer + name: + description: Name describes the observed, "friendly" name for this + image. + type: string + osInfo: + description: "OSInfo describes the observed operating system information + for this image. \n The OS information is also added to the image + resource's labels. Please refer to VirtualMachineImageOSInfo for + more information." + properties: + id: + description: "ID describes the operating system ID. \n This value + is also added to the image resource's labels as VirtualMachineImageOSIDLabel." + type: string + type: + description: "Type describes the operating system type. \n This + value is also added to the image resource's labels as VirtualMachineImageOSTypeLabel." + type: string + version: + description: "Version describes the operating system version. + \n This value is also added to the image resource's labels as + VirtualMachineImageOSVersionLabel." + type: string + type: object + ovfProperties: + description: OVFProperties describes the observed OVF properties defined + for this image. + items: + description: OVFProperty describes an OVF property associated with + an image. OVF properties may be used in conjunction with the vAppConfig + bootstrap provider to customize a VM during its creation. + properties: + default: + description: Default describes the OVF property's default value. + type: string + key: + description: Key describes the OVF property's key. + type: string + type: + description: Type describes the OVF property's type. + type: string + required: + - key + - type + type: object + type: array + productInfo: + description: ProductInfo describes the observed product information + for this image. + properties: + fullVersion: + description: FullVersion describes the long-form version of the + image. + type: string + product: + description: Product is a general descriptor for the image. + type: string + vendor: + description: Vendor describes the organization/user that produced + the image. + type: string + version: + description: Version describes the short-form version of the image. + type: string + type: object + providerContentVersion: + description: ProviderContentVersion describes the content version + from the provider item that this image corresponds to. If the provider + of this image is a Content Library, this will be the version of + the corresponding Content Library item. + type: string + type: object + type: object + served: true + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: virtualmachinepublishrequests.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: VirtualMachinePublishRequest + listKind: VirtualMachinePublishRequestList + plural: virtualmachinepublishrequests + shortNames: + - vmpub + singular: virtualmachinepublishrequest + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: VirtualMachinePublishRequest defines the information necessary + to publish a VirtualMachine as a VirtualMachineImage to an image registry. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: "VirtualMachinePublishRequestSpec defines the desired state + of a VirtualMachinePublishRequest. \n All the fields in this spec are + optional. This is especially useful when a DevOps persona wants to publish + a VM without doing anything more than applying a VirtualMachinePublishRequest + resource that has the same name as said VM in the same namespace as + said VM." + properties: + source: + description: "Source is the source of the publication request, ex. + a VirtualMachine resource. \n If this value is omitted then the + publication controller checks to see if there is a resource with + the same name as this VirtualMachinePublishRequest resource, an + API version equal to spec.source.apiVersion, and a kind equal to + spec.source.kind. If such a resource exists, then it is the source + of the publication." + properties: + apiVersion: + default: vmoperator.vmware.com/v1alpha1 + description: APIVersion is the API version of the referenced object. + type: string + kind: + default: VirtualMachine + description: Kind is the kind of referenced object. + type: string + name: + description: "Name is the name of the referenced object. \n If + omitted this value defaults to the name of the VirtualMachinePublishRequest + resource." + type: string + type: object + target: + description: "Target is the target of the publication request, ex. + item information and a ContentLibrary resource. \n If this value + is omitted, the controller uses spec.source.name + \"-image\" as + the name of the published item. Additionally, when omitted the controller + attempts to identify the target location by matching a resource + with an API version equal to spec.target.location.apiVersion, a + kind equal to spec.target.location.kind, w/ the label \"imageregistry.vmware.com/default\". + \n Please note that while optional, if a VirtualMachinePublishRequest + sans target information is applied to a namespace without a default + publication target, then the VirtualMachinePublishRequest resource + will be marked in error." + properties: + item: + description: "Item contains information about the name of the + object to which the VM is published. \n Please note this value + is optional and if omitted, the controller will use spec.source.name + + \"-image\" as the name of the published item." + properties: + description: + description: Description is the description to assign to the + published object. + type: string + name: + description: "Name is the name of the published object. \n + If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 + and the spec.target.location.kind equals ContentLibrary, + then this should be the name that will show up in vCenter + Content Library, not the custom resource name in the namespace. + \n If omitted then the controller will use spec.source.name + + \"-image\"." + type: string + type: object + location: + description: Location contains information about the location + to which to publish the VM. + properties: + apiVersion: + default: imageregistry.vmware.com/v1alpha1 + description: APIVersion is the API version of the referenced + object. + type: string + kind: + default: ContentLibrary + description: Kind is the kind of referenced object. + type: string + name: + description: "Name is the name of the referenced object. \n + Please note an error will be returned if this field is not + set in a namespace that lacks a default publication target. + \n A default publication target is a resource with an API + version equal to spec.target.location.apiVersion, a kind + equal to spec.target.location.kind, and has the label \"imageregistry.vmware.com/default\"." + type: string + type: object + type: object + ttlSecondsAfterFinished: + description: "TTLSecondsAfterFinished is the time-to-live duration + for how long this resource will be allowed to exist once the publication + operation completes. After the TTL expires, the resource will be + automatically deleted without the user having to take any direct + action. \n If this field is unset then the request resource will + not be automatically deleted. If this field is set to zero then + the request resource is eligible for deletion immediately after + it finishes." + format: int64 + minimum: 0 + type: integer + type: object + status: + description: VirtualMachinePublishRequestStatus defines the observed state + of a VirtualMachinePublishRequest. + properties: + attempts: + description: Attempts represents the number of times the request to + publish the VM has been attempted. + format: int64 + type: integer + completionTime: + description: "CompletionTime represents time when the request was + completed. It is not guaranteed to be set in happens-before order + across separate operations. It is represented in RFC3339 form and + is in UTC. \n The value of this field should be equal to the value + of the LastTransitionTime for the status condition Type=Complete." + format: date-time + type: string + conditions: + description: Conditions is a list of the latest, available observations + of the request's current state. + items: + description: Condition defines an observation of a VM Operator API + resource operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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 disambiguate + is important. + type: string + required: + - status + - type + type: object + type: array + imageName: + description: "ImageName is the name of the VirtualMachineImage resource + that is eventually realized in the same namespace as the VM and + publication request after the publication operation completes. \n + This field will not be set until the VirtualMachineImage resource + is realized." + type: string + lastAttemptTime: + description: LastAttemptTime represents the time when the latest request + was sent. + format: date-time + type: string + ready: + description: "Ready is set to true only when the VM has been published + successfully and the new VirtualMachineImage resource is ready. + \n Readiness is determined by waiting until there is status condition + Type=Complete and ensuring it and all other status conditions present + have a Status=True. The conditions present will be: \n * SourceValid + * TargetValid * Uploaded * ImageAvailable * Complete" + type: boolean + sourceRef: + description: SourceRef is the reference to the source of the publication + request, ex. a VirtualMachine resource. + properties: + apiVersion: + default: vmoperator.vmware.com/v1alpha1 + description: APIVersion is the API version of the referenced object. + type: string + kind: + default: VirtualMachine + description: Kind is the kind of referenced object. + type: string + name: + description: "Name is the name of the referenced object. \n If + omitted this value defaults to the name of the VirtualMachinePublishRequest + resource." + type: string + type: object + startTime: + description: StartTime represents time when the request was acknowledged + by the controller. It is not guaranteed to be set in happens-before + order across separate operations. It is represented in RFC3339 form + and is in UTC. + format: date-time + type: string + targetRef: + description: TargetRef is the reference to the target of the publication + request, ex. item information and a ContentLibrary resource. + properties: + item: + description: "Item contains information about the name of the + object to which the VM is published. \n Please note this value + is optional and if omitted, the controller will use spec.source.name + + \"-image\" as the name of the published item." + properties: + description: + description: Description is the description to assign to the + published object. + type: string + name: + description: "Name is the name of the published object. \n + If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 + and the spec.target.location.kind equals ContentLibrary, + then this should be the name that will show up in vCenter + Content Library, not the custom resource name in the namespace. + \n If omitted then the controller will use spec.source.name + + \"-image\"." + type: string + type: object + location: + description: Location contains information about the location + to which to publish the VM. + properties: + apiVersion: + default: imageregistry.vmware.com/v1alpha1 + description: APIVersion is the API version of the referenced + object. + type: string + kind: + default: ContentLibrary + description: Kind is the kind of referenced object. + type: string + name: + description: "Name is the name of the referenced object. \n + Please note an error will be returned if this field is not + set in a namespace that lacks a default publication target. + \n A default publication target is a resource with an API + version equal to spec.target.location.apiVersion, a kind + equal to spec.target.location.kind, and has the label \"imageregistry.vmware.com/default\"." + type: string + type: object + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} + - name: v1alpha2 + schema: + openAPIV3Schema: + description: VirtualMachinePublishRequest defines the information necessary + to publish a VirtualMachine as a VirtualMachineImage to an image registry. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: "VirtualMachinePublishRequestSpec defines the desired state + of a VirtualMachinePublishRequest. \n All the fields in this spec are + optional. This is especially useful when a DevOps persona wants to publish + a VM without doing anything more than applying a VirtualMachinePublishRequest + resource that has the same name as said VM in the same namespace as + said VM." + properties: + source: + description: "Source is the source of the publication request, ex. + a VirtualMachine resource. \n If this value is omitted then the + publication controller checks to see if there is a resource with + the same name as this VirtualMachinePublishRequest resource, an + API version equal to spec.source.apiVersion, and a kind equal to + spec.source.kind. If such a resource exists, then it is the source + of the publication." + properties: + apiVersion: + default: vmoperator.vmware.com/v1alpha1 + description: APIVersion is the API version of the referenced object. + type: string + kind: + default: VirtualMachine + description: Kind is the kind of referenced object. + type: string + name: + description: "Name is the name of the referenced object. \n If + omitted this value defaults to the name of the VirtualMachinePublishRequest + resource." + type: string + type: object + target: + description: "Target is the target of the publication request, ex. + item information and a ContentLibrary resource. \n If this value + is omitted, the controller uses spec.source.name + \"-image\" as + the name of the published item. Additionally, when omitted the controller + attempts to identify the target location by matching a resource + with an API version equal to spec.target.location.apiVersion, a + kind equal to spec.target.location.kind, w/ the label \"imageregistry.vmware.com/default\". + \n Please note that while optional, if a VirtualMachinePublishRequest + sans target information is applied to a namespace without a default + publication target, then the VirtualMachinePublishRequest resource + will be marked in error." + properties: + item: + description: "Item contains information about the name of the + object to which the VM is published. \n Please note this value + is optional and if omitted, the controller will use spec.source.name + + \"-image\" as the name of the published item." + properties: + description: + description: Description is the description to assign to the + published object. + type: string + name: + description: "Name is the name of the published object. \n + If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 + and the spec.target.location.kind equals ContentLibrary, + then this should be the name that will show up in vCenter + Content Library, not the custom resource name in the namespace. + \n If omitted then the controller will use spec.source.name + + \"-image\"." + type: string + type: object + location: + description: Location contains information about the location + to which to publish the VM. + properties: + apiVersion: + default: imageregistry.vmware.com/v1alpha1 + description: APIVersion is the API version of the referenced + object. + type: string + kind: + default: ContentLibrary + description: Kind is the kind of referenced object. + type: string + name: + description: "Name is the name of the referenced object. \n + Please note an error will be returned if this field is not + set in a namespace that lacks a default publication target. + \n A default publication target is a resource with an API + version equal to spec.target.location.apiVersion, a kind + equal to spec.target.location.kind, and has the label \"imageregistry.vmware.com/default\"." + type: string + type: object + type: object + ttlSecondsAfterFinished: + description: "TTLSecondsAfterFinished is the time-to-live duration + for how long this resource will be allowed to exist once the publication + operation completes. After the TTL expires, the resource will be + automatically deleted without the user having to take any direct + action. \n If this field is unset then the request resource will + not be automatically deleted. If this field is set to zero then + the request resource is eligible for deletion immediately after + it finishes." + format: int64 + minimum: 0 + type: integer + type: object + status: + description: VirtualMachinePublishRequestStatus defines the observed state + of a VirtualMachinePublishRequest. + properties: + attempts: + description: Attempts represents the number of times the request to + publish the VM has been attempted. + format: int64 + type: integer + completionTime: + description: "CompletionTime represents time when the request was + completed. It is not guaranteed to be set in happens-before order + across separate operations. It is represented in RFC3339 form and + is in UTC. \n The value of this field should be equal to the value + of the LastTransitionTime for the status condition Type=Complete." + format: date-time + type: string + conditions: + description: Conditions is a list of the latest, available observations + of the request's current state. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: message is a human readable message indicating + details about the transition. This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: observedGeneration represents the .metadata.generation + that the condition was set based upon. For instance, if .metadata.generation + is currently 12, but the .status.conditions[x].observedGeneration + is 9, the condition is out of date with respect to the current + state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: reason contains a programmatic identifier indicating + the reason for the condition's last transition. Producers + of specific condition types may define expected values and + meanings for this field, and whether the values are considered + a guaranteed API. The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + imageName: + description: "ImageName is the name of the VirtualMachineImage resource + that is eventually realized in the same namespace as the VM and + publication request after the publication operation completes. \n + This field will not be set until the VirtualMachineImage resource + is realized." + type: string + lastAttemptTime: + description: LastAttemptTime represents the time when the latest request + was sent. + format: date-time + type: string + ready: + description: "Ready is set to true only when the VM has been published + successfully and the new VirtualMachineImage resource is ready. + \n Readiness is determined by waiting until there is status condition + Type=Complete and ensuring it and all other status conditions present + have a Status=True. The conditions present will be: \n * SourceValid + * TargetValid * Uploaded * ImageAvailable * Complete" + type: boolean + sourceRef: + description: SourceRef is the reference to the source of the publication + request, ex. a VirtualMachine resource. + properties: + apiVersion: + default: vmoperator.vmware.com/v1alpha1 + description: APIVersion is the API version of the referenced object. + type: string + kind: + default: VirtualMachine + description: Kind is the kind of referenced object. + type: string + name: + description: "Name is the name of the referenced object. \n If + omitted this value defaults to the name of the VirtualMachinePublishRequest + resource." + type: string + type: object + startTime: + description: StartTime represents time when the request was acknowledged + by the controller. It is not guaranteed to be set in happens-before + order across separate operations. It is represented in RFC3339 form + and is in UTC. + format: date-time + type: string + targetRef: + description: TargetRef is the reference to the target of the publication + request, ex. item information and a ContentLibrary resource. + properties: + item: + description: "Item contains information about the name of the + object to which the VM is published. \n Please note this value + is optional and if omitted, the controller will use spec.source.name + + \"-image\" as the name of the published item." + properties: + description: + description: Description is the description to assign to the + published object. + type: string + name: + description: "Name is the name of the published object. \n + If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 + and the spec.target.location.kind equals ContentLibrary, + then this should be the name that will show up in vCenter + Content Library, not the custom resource name in the namespace. + \n If omitted then the controller will use spec.source.name + + \"-image\"." + type: string + type: object + location: + description: Location contains information about the location + to which to publish the VM. + properties: + apiVersion: + default: imageregistry.vmware.com/v1alpha1 + description: APIVersion is the API version of the referenced + object. + type: string + kind: + default: ContentLibrary + description: Kind is the kind of referenced object. + type: string + name: + description: "Name is the name of the referenced object. \n + Please note an error will be returned if this field is not + set in a namespace that lacks a default publication target. + \n A default publication target is a resource with an API + version equal to spec.target.location.apiVersion, a kind + equal to spec.target.location.kind, and has the label \"imageregistry.vmware.com/default\"." + type: string + type: object + type: object + type: object + type: object + served: true + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: virtualmachineservices.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: VirtualMachineService + listKind: VirtualMachineServiceList + plural: virtualmachineservices + shortNames: + - vmservice + singular: virtualmachineservice + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.type + name: Type + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: VirtualMachineService is the Schema for the virtualmachineservices + API. A VirtualMachineService represents the desired specification and the + observed status of a VirtualMachineService instance. A VirtualMachineService + represents a network service, provided by one or more VirtualMachines, that + is desired to be exposed to other workloads both internal and external to + the cluster. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineServiceSpec defines the desired state of VirtualMachineService. + Each VirtualMachineService exposes a set of TargetPorts on a set of + VirtualMachine instances as a network endpoint within or outside of + the Kubernetes cluster. The VirtualMachineService is loosely coupled + to the VirtualMachines that are backing it through the use of a Label + Selector. In Kubernetes, a Label Selector enables matching of a resource + using a set of key-value pairs, aka Labels. By using a Label Selector, + the VirtualMachineService can be generically defined to apply to any + VirtualMachine in the same namespace that has the appropriate set of + labels. + properties: + clusterIp: + description: 'clusterIP is the IP address of the service and is usually + assigned randomly by the master. If an address is specified manually + and is not in use by others, it will be allocated to the service; + otherwise, creation of the service will fail. This field can not + be changed through updates. Valid values are "None", empty string + (""), or a valid IP address. "None" can be specified for headless + services when proxying is not required. Only applies to types ClusterIP + and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies' + type: string + externalName: + description: externalName is the external reference that kubedns or + equivalent will return as a CNAME record for this service. No proxying + will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) + and requires Type to be ExternalName. + type: string + loadBalancerIP: + description: 'Only applies to VirtualMachineService Type: LoadBalancer + LoadBalancer will get created with the IP specified in this field. + This feature depends on whether the underlying load balancer provider + supports specifying the loadBalancerIP when a load balancer is created. + This field will be ignored if the provider does not support the + feature.' + type: string + loadBalancerSourceRanges: + description: 'LoadBalancerSourceRanges is an array of IP addresses + in the format of CIDRs, for example: 103.21.244.0/22 and 10.0.0.0/24. + If specified and supported by the load balancer provider, this will + restrict ingress traffic to the specified client IPs. This field + will be ignored if the provider does not support the feature.' + items: + type: string + type: array + ports: + description: Ports specifies a list of VirtualMachineServicePort to + expose with this VirtualMachineService. Each of these ports will + be an accessible network entry point to access this service by. + items: + description: VirtualMachineServicePort describes the specification + of a service port to be exposed by a VirtualMachineService. This + VirtualMachineServicePort specification includes attributes that + define the external and internal representation of the service + port. + properties: + name: + description: Name describes the name to be used to identify + this VirtualMachineServicePort + type: string + port: + description: Port describes the external port that will be exposed + by the service. + format: int32 + type: integer + protocol: + description: Protocol describes the Layer 4 transport protocol + for this port. Supports "TCP", "UDP", and "SCTP". + type: string + targetPort: + description: TargetPort describes the internal port open on + a VirtualMachine that should be mapped to the external Port. + format: int32 + type: integer + required: + - name + - port + - protocol + - targetPort + type: object + type: array + selector: + additionalProperties: + type: string + description: Selector specifies a map of key-value pairs, also known + as a Label Selector, that is used to match this VirtualMachineService + with the set of VirtualMachines that should back this VirtualMachineService. + type: object + type: + description: Type specifies a desired VirtualMachineServiceType for + this VirtualMachineService. Supported types are ClusterIP, LoadBalancer, + ExternalName. + type: string + required: + - type + type: object + status: + description: VirtualMachineServiceStatus defines the observed state of + VirtualMachineService. + properties: + loadBalancer: + description: LoadBalancer contains the current status of the load + balancer, if one is present. + properties: + ingress: + description: Ingress is a list containing ingress addresses for + the load balancer. Traffic intended for the service should be + sent to any of these ingress points. + items: + description: 'LoadBalancerIngress represents the status of a + load balancer ingress point: traffic intended for the service + should be sent to an ingress point. IP or Hostname may both + be set in this structure. It is up to the consumer to determine + which field should be used when accessing this LoadBalancer.' + properties: + hostname: + description: Hostname is set for load balancer ingress points + that are specified by a DNS address. + type: string + ip: + description: IP is set for load balancer ingress points + that are specified by an IP address. + type: string + type: object + type: array + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .spec.type + name: Type + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha2 + schema: + openAPIV3Schema: + description: VirtualMachineService is the Schema for the virtualmachineservices + API. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineServiceSpec defines the desired state of VirtualMachineService. + properties: + clusterIp: + description: 'clusterIP is the IP address of the service and is usually + assigned randomly by the master. If an address is specified manually + and is not in use by others, it will be allocated to the service; + otherwise, creation of the service will fail. This field can not + be changed through updates. Valid values are "None", empty string + (""), or a valid IP address. "None" can be specified for headless + services when proxying is not required. Only applies to types ClusterIP + and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies' + type: string + externalName: + description: externalName is the external reference that kubedns or + equivalent will return as a CNAME record for this service. No proxying + will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) + and requires Type to be ExternalName. + type: string + loadBalancerIP: + description: 'Only applies to VirtualMachineService Type: LoadBalancer + LoadBalancer will get created with the IP specified in this field. + This feature depends on whether the underlying load balancer provider + supports specifying the loadBalancerIP when a load balancer is created. + This field will be ignored if the provider does not support the + feature.' + type: string + loadBalancerSourceRanges: + description: 'LoadBalancerSourceRanges is an array of IP addresses + in the format of CIDRs, for example: 103.21.244.0/22 and 10.0.0.0/24. + If specified and supported by the load balancer provider, this will + restrict ingress traffic to the specified client IPs. This field + will be ignored if the provider does not support the feature.' + items: + type: string + type: array + ports: + description: Ports specifies a list of VirtualMachineServicePort to + expose with this VirtualMachineService. Each of these ports will + be an accessible network entry point to access this service by. + items: + description: VirtualMachineServicePort describes the specification + of a service port to be exposed by a VirtualMachineService. This + VirtualMachineServicePort specification includes attributes that + define the external and internal representation of the service + port. + properties: + name: + description: Name describes the name to be used to identify + this VirtualMachineServicePort. + type: string + port: + description: Port describes the external port that will be exposed + by the service. + format: int32 + type: integer + protocol: + description: Protocol describes the Layer 4 transport protocol + for this port. Supports "TCP", "UDP", and "SCTP". + type: string + targetPort: + description: TargetPort describes the internal port open on + a VirtualMachine that should be mapped to the external Port. + format: int32 + type: integer + required: + - name + - port + - protocol + - targetPort + type: object + type: array + selector: + additionalProperties: + type: string + description: Selector specifies a map of key-value pairs, also known + as a Label Selector, that is used to match this VirtualMachineService + with the set of VirtualMachines that should back this VirtualMachineService. + type: object + type: + description: Type specifies a desired VirtualMachineServiceType for + this VirtualMachineService. Supported types are ClusterIP, LoadBalancer, + ExternalName. + type: string + required: + - type + type: object + status: + description: VirtualMachineServiceStatus defines the observed state of + VirtualMachineService. + properties: + loadBalancer: + description: LoadBalancer contains the current status of the load + balancer, if one is present. + properties: + ingress: + description: Ingress is a list containing ingress addresses for + the load balancer. Traffic intended for the service should be + sent to any of these ingress points. + items: + description: 'LoadBalancerIngress represents the status of a + load balancer ingress point: traffic intended for the service + should be sent to an ingress point. IP or Hostname may both + be set in this structure. It is up to the consumer to determine + which field should be used when accessing this LoadBalancer.' + properties: + hostname: + description: Hostname is set for load balancer ingress points + that are specified by a DNS address. + type: string + ip: + description: IP is set for load balancer ingress points + that are specified by an IP address. + type: string + type: object + type: array + type: object + type: object + type: object + served: true + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: virtualmachinesetresourcepolicies.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: VirtualMachineSetResourcePolicy + listKind: VirtualMachineSetResourcePolicyList + plural: virtualmachinesetresourcepolicies + singular: virtualmachinesetresourcepolicy + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: VirtualMachineSetResourcePolicy is the Schema for the virtualmachinesetresourcepolicies + API. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineSetResourcePolicySpec defines the desired state + of VirtualMachineSetResourcePolicy. + properties: + clustermodules: + items: + description: ClusterModuleSpec defines a grouping of VirtualMachines + that are to be grouped together as a logical unit by the infrastructure + provider. Within vSphere, the ClusterModuleSpec maps directly + to a vSphere ClusterModule. + properties: + groupname: + description: GroupName describes the name of the ClusterModule + Group. + type: string + required: + - groupname + type: object + type: array + folder: + description: FolderSpec defines a Folder. + properties: + name: + description: Name describes the name of the Folder + type: string + type: object + resourcepool: + description: ResourcePoolSpec defines a Logical Grouping of workloads + that share resource policies. + properties: + limits: + description: Limits describes the limit to resources available + to the ResourcePool. + properties: + cpu: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + name: + description: Name describes the name of the ResourcePool grouping. + type: string + reservations: + description: Reservations describes the guaranteed resources reserved + for the ResourcePool. + properties: + cpu: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + type: object + status: + description: VirtualMachineSetResourcePolicyStatus defines the observed + state of VirtualMachineSetResourcePolicy. + properties: + clustermodules: + items: + properties: + clusterMoID: + type: string + groupname: + type: string + moduleUUID: + type: string + required: + - clusterMoID + - groupname + - moduleUUID + type: object + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} + - name: v1alpha2 + schema: + openAPIV3Schema: + description: VirtualMachineSetResourcePolicy is the Schema for the virtualmachinesetresourcepolicies + API. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineSetResourcePolicySpec defines the desired state + of VirtualMachineSetResourcePolicy. + properties: + clusterModuleGroups: + items: + type: string + type: array + folder: + type: string + resourcePool: + description: ResourcePoolSpec defines a Logical Grouping of workloads + that share resource policies. + properties: + limits: + description: Limits describes the limit to resources available + to the ResourcePool. + properties: + cpu: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + name: + description: Name describes the name of the ResourcePool grouping. + type: string + reservations: + description: Reservations describes the guaranteed resources reserved + for the ResourcePool. + properties: + cpu: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + memory: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + type: object + status: + description: VirtualMachineSetResourcePolicyStatus defines the observed + state of VirtualMachineSetResourcePolicy. + properties: + clustermodules: + items: + description: VSphereClusterModuleStatus describes the observed state + of a vSphere cluster module. + properties: + clusterMoID: + type: string + groupName: + type: string + moduleUUID: + type: string + required: + - clusterMoID + - groupName + - moduleUUID + type: object + type: array + type: object + type: object + served: true + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: webconsolerequests.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: WebConsoleRequest + listKind: WebConsoleRequestList + plural: webconsolerequests + singular: webconsolerequest + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: WebConsoleRequest allows the creation of a one-time web console + ticket that can be used to interact with the VM. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: WebConsoleRequestSpec describes the specification for used + to request a web console request. + properties: + publicKey: + description: PublicKey is used to encrypt the status.response. This + is expected to be a RSA OAEP public key in X.509 PEM format. + type: string + virtualMachineName: + description: VirtualMachineName is the VM in the same namespace, for + which the web console is requested. + type: string + required: + - publicKey + - virtualMachineName + type: object + status: + description: WebConsoleRequestStatus defines the observed state, which + includes the web console request itself. + properties: + expiryTime: + description: ExpiryTime is when the ticket referenced in Response + will expire. + format: date-time + type: string + proxyAddr: + description: "ProxyAddr describes the host address and optional port + used to access the VM's web console. The value could be a DNS entry, + IPv4, or IPv6 address, followed by an optional port. For example, + valid values include: \n DNS * host.com * host.com:6443 \n IPv4 + * 1.2.3.4 * 1.2.3.4:6443 \n IPv6 * 1234:1234:1234:1234:1234:1234:1234:1234 + * [1234:1234:1234:1234:1234:1234:1234:1234]:6443 * 1234:1234:1234:0000:0000:0000:1234:1234 + * 1234:1234:1234::::1234:1234 * [1234:1234:1234::::1234:1234]:6443 + \n In other words, the field may be set to any value that is parsable + by Go's https://pkg.go.dev/net#ResolveIPAddr and https://pkg.go.dev/net#ParseIP + functions." + type: string + response: + description: Response will be the authenticated ticket corresponding + to this web console request. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: virtualmachinewebconsolerequests.vmoperator.vmware.com +spec: + group: vmoperator.vmware.com + names: + kind: VirtualMachineWebConsoleRequest + listKind: VirtualMachineWebConsoleRequestList + plural: virtualmachinewebconsolerequests + singular: virtualmachinewebconsolerequest + scope: Namespaced + versions: + - name: v1alpha2 + schema: + openAPIV3Schema: + description: VirtualMachineWebConsoleRequest allows the creation of a one-time, + web console connection to a VM. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VirtualMachineWebConsoleRequestSpec describes the desired + state for a web console request to a VM. + properties: + name: + description: Name is the name of a VM in the same Namespace as this + web console request. + type: string + required: + - name + type: object + status: + description: VirtualMachineWebConsoleRequestStatus describes the observed + state of the request. + properties: + expiryTime: + description: ExpiryTime is the time at which access via this request + will expire. + format: date-time + type: string + proxyAddr: + description: "ProxyAddr describes the host address and optional port + used to access the VM's web console. \n The value could be a DNS + entry, IPv4, or IPv6 address, followed by an optional port. For + example, valid values include: \n DNS * host.com * host.com:6443 + \n IPv4 * 1.2.3.4 * 1.2.3.4:6443 \n IPv6 * 1234:1234:1234:1234:1234:1234:1234:1234 + * [1234:1234:1234:1234:1234:1234:1234:1234]:6443 * 1234:1234:1234:0000:0000:0000:1234:1234 + * 1234:1234:1234::::1234:1234 * [1234:1234:1234::::1234:1234]:6443 + \n In other words, the field may be set to any value that is parsable + by Go's https://pkg.go.dev/net#ResolveIPAddr and https://pkg.go.dev/net#ParseIP + functions." + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1alpha2 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: providerserviceaccounts.vmware.infrastructure.cluster.x-k8s.io +spec: + group: vmware.infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: ProviderServiceAccount + listKind: ProviderServiceAccountList + plural: providerserviceaccounts + singular: providerserviceaccount + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.ref.name + name: VSphereCluster + type: string + - jsonPath: .spec.targetNamespace + name: TargetNamespace + type: string + - jsonPath: .spec.targetSecretName + name: TargetSecretName + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: ProviderServiceAccount is the schema for the ProviderServiceAccount + API. + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: ProviderServiceAccountSpec defines the desired state of ProviderServiceAccount. + properties: + ref: + description: Ref specifies the reference to the VSphereCluster for + which the ProviderServiceAccount needs to be realized. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of + an entire object, this string should contain a valid JSON/Go + field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within + a pod, this would take on a value like: "spec.containers{name}" + (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" + (container with index 2 in this pod). This syntax is chosen + only to have some well-defined way of referencing a part of + an object. TODO: this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + x-kubernetes-map-type: atomic + rules: + description: Rules specifies the privileges that need to be granted + to the service account. + items: + description: PolicyRule holds information that describes a policy + rule, but does not contain information about who the rule applies + to or which namespace the rule applies to. + properties: + apiGroups: + description: APIGroups is the name of the APIGroup that contains + the resources. If multiple API groups are specified, any + action requested against one of the enumerated resources in + any API group will be allowed. "" represents the core API + group and "*" represents all API groups. + items: + type: string + type: array + nonResourceURLs: + description: NonResourceURLs is a set of partial urls that a + user should have access to. *s are allowed, but only as the + full, final step in the path Since non-resource URLs are not + namespaced, this field is only applicable for ClusterRoles + referenced from a ClusterRoleBinding. Rules can either apply + to API resources (such as "pods" or "secrets") or non-resource + URL paths (such as "/api"), but not both. + items: + type: string + type: array + resourceNames: + description: ResourceNames is an optional white list of names + that the rule applies to. An empty set means that everything + is allowed. + items: + type: string + type: array + resources: + description: Resources is a list of resources this rule applies + to. '*' represents all resources. + items: + type: string + type: array + verbs: + description: Verbs is a list of Verbs that apply to ALL the + ResourceKinds contained in this rule. '*' represents all verbs. + items: + type: string + type: array + required: + - verbs + type: object + type: array + targetNamespace: + description: TargetNamespace is the namespace in the target cluster + where the secret containing the generated service account token + needs to be created. + type: string + targetSecretName: + description: TargetSecretName is the name of the secret in the target + cluster that contains the generated service account token. + type: string + required: + - ref + - rules + - targetNamespace + - targetSecretName + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vsphereclusters.vmware.infrastructure.cluster.x-k8s.io +spec: + group: vmware.infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereCluster + listKind: VSphereClusterList + plural: vsphereclusters + singular: vspherecluster + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereCluster is the Schema for the VSphereClusters API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereClusterSpec defines the desired state of VSphereCluster + properties: + controlPlaneEndpoint: + description: APIEndpoint represents a reachable Kubernetes API endpoint. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + required: + - controlPlaneEndpoint + type: object + status: + description: VSphereClusterStatus defines the observed state of VSphereClusterSpec + properties: + conditions: + description: Conditions defines current service state of the VSphereCluster. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + failureDomains: + additionalProperties: + description: FailureDomainSpec is the Schema for Cluster API failure + domains. It allows controllers to understand how many failure + domains a cluster can optionally span across. + properties: + attributes: + additionalProperties: + type: string + description: Attributes is a free form map of attributes an + infrastructure provider might use or require. + type: object + controlPlane: + description: ControlPlane determines if this failure domain + is suitable for use by control plane machines. + type: boolean + type: object + description: FailureDomains is a list of failure domain objects synced + from the infrastructure provider. + type: object + ready: + description: Ready indicates the infrastructure required to deploy + this cluster is ready. + type: boolean + resourcePolicyName: + description: ResourcePolicyName is the name of the VirtualMachineSetResourcePolicy + for the cluster, if one exists + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vsphereclustertemplates.vmware.infrastructure.cluster.x-k8s.io +spec: + group: vmware.infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereClusterTemplate + listKind: VSphereClusterTemplateList + plural: vsphereclustertemplates + singular: vsphereclustertemplate + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereClusterTemplate is the Schema for the vsphereclustertemplates + API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereClusterTemplateSpec defines the desired state of VSphereClusterTemplate + properties: + template: + properties: + spec: + description: VSphereClusterSpec defines the desired state of VSphereCluster + properties: + controlPlaneEndpoint: + description: APIEndpoint represents a reachable Kubernetes + API endpoint. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + required: + - controlPlaneEndpoint + type: object + required: + - spec + type: object + required: + - template + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vspheremachines.vmware.infrastructure.cluster.x-k8s.io +spec: + group: vmware.infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereMachine + listKind: VSphereMachineList + plural: vspheremachines + singular: vspheremachine + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Zone + jsonPath: .spec.failureDomain + name: Zone + type: string + - description: Provider ID + jsonPath: .spec.providerID + name: ProviderID + type: string + - description: IP address + jsonPath: .status.vmIp + name: IPAddr + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereMachine is the Schema for the vspheremachines API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereMachineSpec defines the desired state of VSphereMachine + properties: + className: + description: ClassName is the name of the class used when specifying + the underlying virtual machine + type: string + failureDomain: + description: FailureDomain is the failure domain the machine will + be created in. Must match a key in the FailureDomains map stored + on the cluster object. + type: string + imageName: + description: ImageName is the name of the base image used when specifying + the underlying virtual machine + type: string + powerOffMode: + default: hard + description: "PowerOffMode describes the desired behavior when powering + off a VM. \n There are three, supported power off modes: hard, soft, + and trySoft. The first mode, hard, is the equivalent of a physical + system's power cord being ripped from the wall. The soft mode requires + the VM's guest to have VM Tools installed and attempts to gracefully + shut down the VM. Its variant, trySoft, first attempts a graceful + shutdown, and if that fails or the VM is not in a powered off state + after reaching 5 minutes timeout, the VM is halted. \n If omitted, + the mode defaults to hard." + enum: + - hard + - soft + - trySoft + type: string + providerID: + description: ProviderID is the virtual machine's BIOS UUID formated + as vsphere://12345678-1234-1234-1234-123456789abc. This is required + at runtime by CAPI. Do not remove this field. + type: string + storageClass: + description: StorageClass is the name of the storage class used when + specifying the underlying virtual machine. + type: string + volumes: + description: Volumes is the set of PVCs to be created and attached + to the VSphereMachine + items: + description: VSphereMachineVolume defines a PVC attachment + properties: + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Capacity is the PVC capacity + type: object + name: + description: 'Name is suffix used to name this PVC as: VSphereMachine.Name + + "-" + Name' + type: string + storageClass: + description: StorageClass defaults to VSphereMachineSpec.StorageClass + type: string + required: + - capacity + - name + type: object + type: array + required: + - className + - imageName + type: object + status: + description: VSphereMachineStatus defines the observed state of VSphereMachine + properties: + addresses: + description: Addresses contains the instance associated addresses. + items: + description: NodeAddress contains information for the node's address. + properties: + address: + description: The node address. + type: string + type: + description: Node address type, one of Hostname, ExternalIP + or InternalIP. + type: string + required: + - address + - type + type: object + type: array + conditions: + description: Conditions defines current service state of the VSphereMachine. + items: + description: Condition defines an observation of a Cluster API resource + operational state. + properties: + lastTransitionTime: + description: 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. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. This field may be empty. + type: string + reason: + description: 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 not be + empty. + type: string + severity: + description: 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. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: 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. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + failureMessage: + description: "FailureMessage will be set in the event that there is + a terminal problem reconciling the Machine and will contain a more + verbose string suitable for logging and human consumption. \n This + field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over time (like + service outages), but instead indicate that something is fundamentally + wrong with the Machine's spec or the configuration of the controller, + and that manual intervention is required. Examples of terminal errors + would be invalid combinations of settings in the spec, values that + are unsupported by the controller, or the responsible controller + itself being critically misconfigured. \n Any transient errors that + occur during the reconciliation of Machines can be added as events + to the Machine object and/or logged in the controller's output." + type: string + failureReason: + description: "FailureReason will be set in the event that there is + a terminal problem reconciling the Machine and will contain a succinct + value suitable for machine interpretation. \n This field should + not be set for transitive errors that a controller faces that are + expected to be fixed automatically over time (like service outages), + but instead indicate that something is fundamentally wrong with + the Machine's spec or the configuration of the controller, and that + manual intervention is required. Examples of terminal errors would + be invalid combinations of settings in the spec, values that are + unsupported by the controller, or the responsible controller itself + being critically misconfigured. \n Any transient errors that occur + during the reconciliation of Machines can be added as events to + the Machine object and/or logged in the controller's output." + type: string + ready: + description: Ready is true when the provider resource is ready. This + is required at runtime by CAPI. Do not remove this field. + type: boolean + vmID: + description: ID is used to identify the virtual machine. + type: string + vmIp: + description: IPAddr is the IP address used to access the virtual machine. + type: string + vmstatus: + description: VMStatus is used to identify the virtual machine status. + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: vspheremachinetemplates.vmware.infrastructure.cluster.x-k8s.io +spec: + group: vmware.infrastructure.cluster.x-k8s.io + names: + categories: + - cluster-api + kind: VSphereMachineTemplate + listKind: VSphereMachineTemplateList + plural: vspheremachinetemplates + singular: vspheremachinetemplate + scope: Namespaced + versions: + - name: v1beta1 + schema: + openAPIV3Schema: + description: VSphereMachineTemplate is the Schema for the vspheremachinetemplates + API + properties: + apiVersion: + description: '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' + type: string + kind: + description: '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' + type: string + metadata: + type: object + spec: + description: VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate + properties: + template: + description: VSphereMachineTemplateResource describes the data needed + to create a VSphereMachine from a template + properties: + spec: + description: Spec is the specification of the desired behavior + of the machine. + properties: + className: + description: ClassName is the name of the class used when + specifying the underlying virtual machine + type: string + failureDomain: + description: FailureDomain is the failure domain the machine + will be created in. Must match a key in the FailureDomains + map stored on the cluster object. + type: string + imageName: + description: ImageName is the name of the base image used + when specifying the underlying virtual machine + type: string + powerOffMode: + default: hard + description: "PowerOffMode describes the desired behavior + when powering off a VM. \n There are three, supported power + off modes: hard, soft, and trySoft. The first mode, hard, + is the equivalent of a physical system's power cord being + ripped from the wall. The soft mode requires the VM's guest + to have VM Tools installed and attempts to gracefully shut + down the VM. Its variant, trySoft, first attempts a graceful + shutdown, and if that fails or the VM is not in a powered + off state after reaching 5 minutes timeout, the VM is halted. + \n If omitted, the mode defaults to hard." + enum: + - hard + - soft + - trySoft + type: string + providerID: + description: ProviderID is the virtual machine's BIOS UUID + formated as vsphere://12345678-1234-1234-1234-123456789abc. + This is required at runtime by CAPI. Do not remove this + field. + type: string + storageClass: + description: StorageClass is the name of the storage class + used when specifying the underlying virtual machine. + type: string + volumes: + description: Volumes is the set of PVCs to be created and + attached to the VSphereMachine + items: + description: VSphereMachineVolume defines a PVC attachment + properties: + capacity: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Capacity is the PVC capacity + type: object + name: + description: 'Name is suffix used to name this PVC as: + VSphereMachine.Name + "-" + Name' + type: string + storageClass: + description: StorageClass defaults to VSphereMachineSpec.StorageClass + type: string + required: + - capacity + - name + type: object + type: array + required: + - className + - imageName + type: object + required: + - spec + type: object + required: + - template + type: object + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: + - v1beta1 + +--- diff --git a/cluster-api-provider-vsphere/kcl.mod b/cluster-api-provider-vsphere/kcl.mod new file mode 100644 index 00000000..d8d21dd4 --- /dev/null +++ b/cluster-api-provider-vsphere/kcl.mod @@ -0,0 +1,7 @@ +[package] +name = "cluster-api-provider-vsphere" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +k8s = "1.28" diff --git a/cluster-api-provider-vsphere/kcl.mod.lock b/cluster-api-provider-vsphere/kcl.mod.lock new file mode 100644 index 00000000..8c61a23b --- /dev/null +++ b/cluster-api-provider-vsphere/kcl.mod.lock @@ -0,0 +1,9 @@ +[dependencies] + [dependencies.k8s] + name = "k8s" + full_name = "k8s_1.28" + version = "1.28" + sum = "aTxPUVZyr9MdiB3YdiY/8pCh9sC55yURnZdGlJsKG6Q=" + reg = "ghcr.io" + repo = "kcl-lang/k8s" + oci_tag = "1.28" diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_b_g_p_configuration.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_b_g_p_configuration.k new file mode 100644 index 00000000..3dc2bca6 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_b_g_p_configuration.k @@ -0,0 +1,215 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema BGPConfiguration: + """ + BGPConfiguration contains the configuration for any BGP routing. + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "BGPConfiguration", 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 : CrdProjectcalicoOrgV1BGPConfigurationSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "BGPConfiguration" = "BGPConfiguration" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1BGPConfigurationSpec + + +schema CrdProjectcalicoOrgV1BGPConfigurationSpec: + """ + BGPConfigurationSpec contains the values of the BGP configuration. + + Attributes + ---------- + asNumber : int, default is Undefined, optional + ASNumber is the default AS number used by a node. [Default: 64512] + bindMode : str, default is Undefined, optional + BindMode indicates whether to listen for BGP connections on all addresses (None) or only on the node's canonical IP address Node.Spec.BGP.IPvXAddress (NodeIP). Default behaviour is to listen for BGP connections on all addresses. + communities : [CrdProjectcalicoOrgV1BGPConfigurationSpecCommunitiesItems0], default is Undefined, optional + Communities is a list of BGP community values and their arbitrary names for tagging routes. + listenPort : int, default is Undefined, optional + ListenPort is the port where BGP protocol should listen. Defaults to 179 + logSeverityScreen : str, default is Undefined, optional + LogSeverityScreen is the log severity above which logs are sent to the stdout. [Default: INFO] + nodeMeshMaxRestartTime : str, default is Undefined, optional + Time to allow for software restart for node-to-mesh peerings. When specified, this is configured as the graceful restart timeout. When not specified, the BIRD default of 120s is used. This field can only be set on the default BGPConfiguration instance and requires that NodeMesh is enabled + nodeMeshPassword : CrdProjectcalicoOrgV1BGPConfigurationSpecNodeMeshPassword, default is Undefined, optional + node mesh password + nodeToNodeMeshEnabled : bool, default is Undefined, optional + NodeToNodeMeshEnabled sets whether full node to node BGP mesh is enabled. [Default: true] + prefixAdvertisements : [CrdProjectcalicoOrgV1BGPConfigurationSpecPrefixAdvertisementsItems0], default is Undefined, optional + PrefixAdvertisements contains per-prefix advertisement configuration. + serviceClusterIPs : [CrdProjectcalicoOrgV1BGPConfigurationSpecServiceClusterIPsItems0], default is Undefined, optional + ServiceClusterIPs are the CIDR blocks from which service cluster IPs are allocated. If specified, Calico will advertise these blocks, as well as any cluster IPs within them. + serviceExternalIPs : [CrdProjectcalicoOrgV1BGPConfigurationSpecServiceExternalIPsItems0], default is Undefined, optional + ServiceExternalIPs are the CIDR blocks for Kubernetes Service External IPs. Kubernetes Service ExternalIPs will only be advertised if they are within one of these blocks. + serviceLoadBalancerIPs : [CrdProjectcalicoOrgV1BGPConfigurationSpecServiceLoadBalancerIPsItems0], default is Undefined, optional + ServiceLoadBalancerIPs are the CIDR blocks for Kubernetes Service LoadBalancer IPs. Kubernetes Service status.LoadBalancer.Ingress IPs will only be advertised if they are within one of these blocks. + """ + + + asNumber?: int + + bindMode?: str + + communities?: [CrdProjectcalicoOrgV1BGPConfigurationSpecCommunitiesItems0] + + listenPort?: int + + logSeverityScreen?: str + + nodeMeshMaxRestartTime?: str + + nodeMeshPassword?: CrdProjectcalicoOrgV1BGPConfigurationSpecNodeMeshPassword + + nodeToNodeMeshEnabled?: bool + + prefixAdvertisements?: [CrdProjectcalicoOrgV1BGPConfigurationSpecPrefixAdvertisementsItems0] + + serviceClusterIPs?: [CrdProjectcalicoOrgV1BGPConfigurationSpecServiceClusterIPsItems0] + + serviceExternalIPs?: [CrdProjectcalicoOrgV1BGPConfigurationSpecServiceExternalIPsItems0] + + serviceLoadBalancerIPs?: [CrdProjectcalicoOrgV1BGPConfigurationSpecServiceLoadBalancerIPsItems0] + + + check: + listenPort <= 65535 + listenPort >= 1 + + +schema CrdProjectcalicoOrgV1BGPConfigurationSpecCommunitiesItems0: + """ + Community contains standard or large community value and its name. + + Attributes + ---------- + name : str, default is Undefined, optional + Name given to community value. + value : str, default is Undefined, optional + Value must be of format `aa:nn` or `aa:nn:mm`. For standard community use `aa:nn` format, where `aa` and `nn` are 16 bit number. For large community use `aa:nn:mm` format, where `aa`, `nn` and `mm` are 32 bit number. Where, `aa` is an AS Number, `nn` and `mm` are per-AS identifier. + """ + + + name?: str + + value?: str + + + check: + regex.match(str(value), r"^(\d+):(\d+)$|^(\d+):(\d+):(\d+)$") if value + + +schema CrdProjectcalicoOrgV1BGPConfigurationSpecNodeMeshPassword: + """ + Optional BGP password for full node-to-mesh peerings. This field can only be set on the default BGPConfiguration instance and requires that NodeMesh is enabled + + Attributes + ---------- + secretKeyRef : CrdProjectcalicoOrgV1BGPConfigurationSpecNodeMeshPasswordSecretKeyRef, default is Undefined, optional + secret key ref + """ + + + secretKeyRef?: CrdProjectcalicoOrgV1BGPConfigurationSpecNodeMeshPasswordSecretKeyRef + + +schema CrdProjectcalicoOrgV1BGPConfigurationSpecNodeMeshPasswordSecretKeyRef: + """ + Selects a key of a secret in the node pod's namespace. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema CrdProjectcalicoOrgV1BGPConfigurationSpecPrefixAdvertisementsItems0: + """ + PrefixAdvertisement configures advertisement properties for the specified CIDR. + + Attributes + ---------- + cidr : str, default is Undefined, optional + CIDR for which properties should be advertised. + communities : [str], default is Undefined, optional + Communities can be list of either community names already defined in `Specs.Communities` or community value of format `aa:nn` or `aa:nn:mm`. For standard community use `aa:nn` format, where `aa` and `nn` are 16 bit number. For large community use `aa:nn:mm` format, where `aa`, `nn` and `mm` are 32 bit number. Where,`aa` is an AS Number, `nn` and `mm` are per-AS identifier. + """ + + + cidr?: str + + communities?: [str] + + +schema CrdProjectcalicoOrgV1BGPConfigurationSpecServiceClusterIPsItems0: + """ + ServiceClusterIPBlock represents a single allowed ClusterIP CIDR block. + + Attributes + ---------- + cidr : str, default is Undefined, optional + cidr + """ + + + cidr?: str + + +schema CrdProjectcalicoOrgV1BGPConfigurationSpecServiceExternalIPsItems0: + """ + ServiceExternalIPBlock represents a single allowed External IP CIDR block. + + Attributes + ---------- + cidr : str, default is Undefined, optional + cidr + """ + + + cidr?: str + + +schema CrdProjectcalicoOrgV1BGPConfigurationSpecServiceLoadBalancerIPsItems0: + """ + ServiceLoadBalancerIPBlock represents a single allowed LoadBalancer IP CIDR block. + + Attributes + ---------- + cidr : str, default is Undefined, optional + cidr + """ + + + cidr?: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_b_g_p_peer.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_b_g_p_peer.k new file mode 100644 index 00000000..2637e308 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_b_g_p_peer.k @@ -0,0 +1,119 @@ +""" +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 BGPPeer: + """ + crd projectcalico org v1 b g p peer + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "BGPPeer", 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 : CrdProjectcalicoOrgV1BGPPeerSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "BGPPeer" = "BGPPeer" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1BGPPeerSpec + + +schema CrdProjectcalicoOrgV1BGPPeerSpec: + """ + BGPPeerSpec contains the specification for a BGPPeer resource. + + Attributes + ---------- + asNumber : int, default is Undefined, optional + The AS Number of the peer. + keepOriginalNextHop : bool, default is Undefined, optional + Option to keep the original nexthop field when routes are sent to a BGP Peer. Setting "true" configures the selected BGP Peers node to use the "next hop keep;" instead of "next hop self;"(default) in the specific branch of the Node on "bird.cfg". + maxRestartTime : str, default is Undefined, optional + Time to allow for software restart. When specified, this is configured as the graceful restart timeout. When not specified, the BIRD default of 120s is used. + node : str, default is Undefined, optional + The node name identifying the Calico node instance that is targeted by this peer. If this is not set, and no nodeSelector is specified, then this BGP peer selects all nodes in the cluster. + nodeSelector : str, default is Undefined, optional + Selector for the nodes that should have this peering. When this is set, the Node field must be empty. + numAllowedLocalASNumbers : int, default is Undefined, optional + Maximum number of local AS numbers that are allowed in the AS path for received routes. This removes BGP loop prevention and should only be used if absolutely necesssary. + password : CrdProjectcalicoOrgV1BGPPeerSpecPassword, default is Undefined, optional + password + peerIP : str, default is Undefined, optional + The IP address of the peer followed by an optional port number to peer with. If port number is given, format should be `[]:port` or `:` for IPv4. If optional port number is not set, and this peer IP and ASNumber belongs to a calico/node with ListenPort set in BGPConfiguration, then we use that port to peer. + peerSelector : str, default is Undefined, optional + Selector for the remote nodes to peer with. When this is set, the PeerIP and ASNumber fields must be empty. For each peering between the local node and selected remote nodes, we configure an IPv4 peering if both ends have NodeBGPSpec.IPv4Address specified, and an IPv6 peering if both ends have NodeBGPSpec.IPv6Address specified. The remote AS number comes from the remote node's NodeBGPSpec.ASNumber, or the global default if that is not set. + sourceAddress : str, default is Undefined, optional + Specifies whether and how to configure a source address for the peerings generated by this BGPPeer resource. Default value "UseNodeIP" means to configure the node IP as the source address. "None" means not to configure a source address. + """ + + + asNumber?: int + + keepOriginalNextHop?: bool + + maxRestartTime?: str + + node?: str + + nodeSelector?: str + + numAllowedLocalASNumbers?: int + + password?: CrdProjectcalicoOrgV1BGPPeerSpecPassword + + peerIP?: str + + peerSelector?: str + + sourceAddress?: str + + +schema CrdProjectcalicoOrgV1BGPPeerSpecPassword: + """ + Optional BGP password for the peerings generated by this BGPPeer resource. + + Attributes + ---------- + secretKeyRef : CrdProjectcalicoOrgV1BGPPeerSpecPasswordSecretKeyRef, default is Undefined, optional + secret key ref + """ + + + secretKeyRef?: CrdProjectcalicoOrgV1BGPPeerSpecPasswordSecretKeyRef + + +schema CrdProjectcalicoOrgV1BGPPeerSpecPasswordSecretKeyRef: + """ + Selects a key of a secret in the node pod's namespace. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_block_affinity.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_block_affinity.k new file mode 100644 index 00000000..07799dea --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_block_affinity.k @@ -0,0 +1,59 @@ +""" +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 BlockAffinity: + """ + crd projectcalico org v1 block affinity + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "BlockAffinity", 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 : CrdProjectcalicoOrgV1BlockAffinitySpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "BlockAffinity" = "BlockAffinity" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1BlockAffinitySpec + + +schema CrdProjectcalicoOrgV1BlockAffinitySpec: + """ + BlockAffinitySpec contains the specification for a BlockAffinity resource. + + Attributes + ---------- + cidr : str, default is Undefined, required + cidr + deleted : str, default is Undefined, required + Deleted indicates that this block affinity is being deleted. This field is a string for compatibility with older releases that mistakenly treat this field as a string. + node : str, default is Undefined, required + node + state : str, default is Undefined, required + state + """ + + + cidr: str + + deleted: str + + node: str + + state: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_calico_node_status.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_calico_node_status.k new file mode 100644 index 00000000..d74c97ab --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_calico_node_status.k @@ -0,0 +1,363 @@ +""" +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 CalicoNodeStatus: + """ + crd projectcalico org v1 calico node status + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "CalicoNodeStatus", 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 : CrdProjectcalicoOrgV1CalicoNodeStatusSpec, default is Undefined, optional + spec + status : CrdProjectcalicoOrgV1CalicoNodeStatusStatus, default is Undefined, optional + status + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "CalicoNodeStatus" = "CalicoNodeStatus" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1CalicoNodeStatusSpec + + status?: CrdProjectcalicoOrgV1CalicoNodeStatusStatus + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusSpec: + """ + CalicoNodeStatusSpec contains the specification for a CalicoNodeStatus resource. + + Attributes + ---------- + classes : [str], default is Undefined, optional + Classes declares the types of information to monitor for this calico/node, and allows for selective status reporting about certain subsets of information. + node : str, default is Undefined, optional + The node name identifies the Calico node instance for node status. + updatePeriodSeconds : int, default is Undefined, optional + UpdatePeriodSeconds is the period at which CalicoNodeStatus should be updated. Set to 0 to disable CalicoNodeStatus refresh. Maximum update period is one day. + """ + + + classes?: [str] + + node?: str + + updatePeriodSeconds?: int + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatus: + """ + CalicoNodeStatusStatus defines the observed state of CalicoNodeStatus. No validation needed for status since it is updated by Calico. + + Attributes + ---------- + agent : CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgent, default is Undefined, optional + agent + bgp : CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgp, default is Undefined, optional + bgp + lastUpdated : str, default is Undefined, optional + LastUpdated is a timestamp representing the server time when CalicoNodeStatus object last updated. It is represented in RFC3339 form and is in UTC. + routes : CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutes, default is Undefined, optional + routes + """ + + + agent?: CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgent + + bgp?: CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgp + + lastUpdated?: str + + routes?: CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutes + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgent: + """ + Agent holds agent status on the node. + + Attributes + ---------- + birdV4 : CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgentBirdV4, default is Undefined, optional + bird v4 + birdV6 : CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgentBirdV6, default is Undefined, optional + bird v6 + """ + + + birdV4?: CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgentBirdV4 + + birdV6?: CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgentBirdV6 + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgentBirdV4: + """ + BIRDV4 represents the latest observed status of bird4. + + Attributes + ---------- + lastBootTime : str, default is Undefined, optional + LastBootTime holds the value of lastBootTime from bird.ctl output. + lastReconfigurationTime : str, default is Undefined, optional + LastReconfigurationTime holds the value of lastReconfigTime from bird.ctl output. + routerID : str, default is Undefined, optional + Router ID used by bird. + state : str, default is Undefined, optional + The state of the BGP Daemon. + version : str, default is Undefined, optional + Version of the BGP daemon + """ + + + lastBootTime?: str + + lastReconfigurationTime?: str + + routerID?: str + + state?: str + + version?: str + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusAgentBirdV6: + """ + BIRDV6 represents the latest observed status of bird6. + + Attributes + ---------- + lastBootTime : str, default is Undefined, optional + LastBootTime holds the value of lastBootTime from bird.ctl output. + lastReconfigurationTime : str, default is Undefined, optional + LastReconfigurationTime holds the value of lastReconfigTime from bird.ctl output. + routerID : str, default is Undefined, optional + Router ID used by bird. + state : str, default is Undefined, optional + The state of the BGP Daemon. + version : str, default is Undefined, optional + Version of the BGP daemon + """ + + + lastBootTime?: str + + lastReconfigurationTime?: str + + routerID?: str + + state?: str + + version?: str + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgp: + """ + BGP holds node BGP status. + + Attributes + ---------- + numberEstablishedV4 : int, default is Undefined, required + The total number of IPv4 established bgp sessions. + numberEstablishedV6 : int, default is Undefined, required + The total number of IPv6 established bgp sessions. + numberNotEstablishedV4 : int, default is Undefined, required + The total number of IPv4 non-established bgp sessions. + numberNotEstablishedV6 : int, default is Undefined, required + The total number of IPv6 non-established bgp sessions. + peersV4 : [CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgpPeersV4Items0], default is Undefined, optional + PeersV4 represents IPv4 BGP peers status on the node. + peersV6 : [CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgpPeersV6Items0], default is Undefined, optional + PeersV6 represents IPv6 BGP peers status on the node. + """ + + + numberEstablishedV4: int + + numberEstablishedV6: int + + numberNotEstablishedV4: int + + numberNotEstablishedV6: int + + peersV4?: [CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgpPeersV4Items0] + + peersV6?: [CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgpPeersV6Items0] + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgpPeersV4Items0: + """ + CalicoNodePeer contains the status of BGP peers on the node. + + Attributes + ---------- + peerIP : str, default is Undefined, optional + IP address of the peer whose condition we are reporting. + since : str, default is Undefined, optional + Since the state or reason last changed. + state : str, default is Undefined, optional + State is the BGP session state. + $type : str, default is Undefined, optional + Type indicates whether this peer is configured via the node-to-node mesh, or via en explicit global or per-node BGPPeer object. + """ + + + peerIP?: str + + since?: str + + state?: str + + $type?: str + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusBgpPeersV6Items0: + """ + CalicoNodePeer contains the status of BGP peers on the node. + + Attributes + ---------- + peerIP : str, default is Undefined, optional + IP address of the peer whose condition we are reporting. + since : str, default is Undefined, optional + Since the state or reason last changed. + state : str, default is Undefined, optional + State is the BGP session state. + $type : str, default is Undefined, optional + Type indicates whether this peer is configured via the node-to-node mesh, or via en explicit global or per-node BGPPeer object. + """ + + + peerIP?: str + + since?: str + + state?: str + + $type?: str + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutes: + """ + Routes reports routes known to the Calico BGP daemon on the node. + + Attributes + ---------- + routesV4 : [CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV4Items0], default is Undefined, optional + RoutesV4 represents IPv4 routes on the node. + routesV6 : [CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV6Items0], default is Undefined, optional + RoutesV6 represents IPv6 routes on the node. + """ + + + routesV4?: [CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV4Items0] + + routesV6?: [CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV6Items0] + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV4Items0: + """ + CalicoNodeRoute contains the status of BGP routes on the node. + + Attributes + ---------- + destination : str, default is Undefined, optional + Destination of the route. + gateway : str, default is Undefined, optional + Gateway for the destination. + interface : str, default is Undefined, optional + Interface for the destination + learnedFrom : CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV4Items0LearnedFrom, default is Undefined, optional + learned from + $type : str, default is Undefined, optional + Type indicates if the route is being used for forwarding or not. + """ + + + destination?: str + + gateway?: str + + interface?: str + + learnedFrom?: CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV4Items0LearnedFrom + + $type?: str + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV4Items0LearnedFrom: + """ + LearnedFrom contains information regarding where this route originated. + + Attributes + ---------- + peerIP : str, default is Undefined, optional + If sourceType is NodeMesh or BGPPeer, IP address of the router that sent us this route. + sourceType : str, default is Undefined, optional + Type of the source where a route is learned from. + """ + + + peerIP?: str + + sourceType?: str + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV6Items0: + """ + CalicoNodeRoute contains the status of BGP routes on the node. + + Attributes + ---------- + destination : str, default is Undefined, optional + Destination of the route. + gateway : str, default is Undefined, optional + Gateway for the destination. + interface : str, default is Undefined, optional + Interface for the destination + learnedFrom : CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV6Items0LearnedFrom, default is Undefined, optional + learned from + $type : str, default is Undefined, optional + Type indicates if the route is being used for forwarding or not. + """ + + + destination?: str + + gateway?: str + + interface?: str + + learnedFrom?: CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV6Items0LearnedFrom + + $type?: str + + +schema CrdProjectcalicoOrgV1CalicoNodeStatusStatusRoutesRoutesV6Items0LearnedFrom: + """ + LearnedFrom contains information regarding where this route originated. + + Attributes + ---------- + peerIP : str, default is Undefined, optional + If sourceType is NodeMesh or BGPPeer, IP address of the router that sent us this route. + sourceType : str, default is Undefined, optional + Type of the source where a route is learned from. + """ + + + peerIP?: str + + sourceType?: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_cluster_information.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_cluster_information.k new file mode 100644 index 00000000..a849bf1b --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_cluster_information.k @@ -0,0 +1,63 @@ +""" +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 ClusterInformation: + """ + ClusterInformation contains the cluster specific information. + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "ClusterInformation", 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 : CrdProjectcalicoOrgV1ClusterInformationSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "ClusterInformation" = "ClusterInformation" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1ClusterInformationSpec + + +schema CrdProjectcalicoOrgV1ClusterInformationSpec: + """ + ClusterInformationSpec contains the values of describing the cluster. + + Attributes + ---------- + calicoVersion : str, default is Undefined, optional + CalicoVersion is the version of Calico that the cluster is running + clusterGUID : str, default is Undefined, optional + ClusterGUID is the GUID of the cluster + clusterType : str, default is Undefined, optional + ClusterType describes the type of the cluster + datastoreReady : bool, default is Undefined, optional + DatastoreReady is used during significant datastore migrations to signal to components such as Felix that it should wait before accessing the datastore. + variant : str, default is Undefined, optional + Variant declares which variant of Calico should be active. + """ + + + calicoVersion?: str + + clusterGUID?: str + + clusterType?: str + + datastoreReady?: bool + + variant?: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_felix_configuration.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_felix_configuration.k new file mode 100644 index 00000000..293e9aa7 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_felix_configuration.k @@ -0,0 +1,601 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema FelixConfiguration: + """ + Felix Configuration contains the configuration for Felix. + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "FelixConfiguration", 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 : CrdProjectcalicoOrgV1FelixConfigurationSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "FelixConfiguration" = "FelixConfiguration" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1FelixConfigurationSpec + + +schema CrdProjectcalicoOrgV1FelixConfigurationSpec: + """ + FelixConfigurationSpec contains the values of the Felix configuration. + + Attributes + ---------- + allowIPIPPacketsFromWorkloads : bool, default is Undefined, optional + AllowIPIPPacketsFromWorkloads controls whether Felix will add a rule to drop IPIP encapsulated traffic from workloads [Default: false] + allowVXLANPacketsFromWorkloads : bool, default is Undefined, optional + AllowVXLANPacketsFromWorkloads controls whether Felix will add a rule to drop VXLAN encapsulated traffic from workloads [Default: false] + awsSrcDstCheck : str, default is Undefined, optional + Set source-destination-check on AWS EC2 instances. Accepted value must be one of "DoNothing", "Enable" or "Disable". [Default: DoNothing] + bpfConnectTimeLoadBalancingEnabled : bool, default is Undefined, optional + BPFConnectTimeLoadBalancingEnabled when in BPF mode, controls whether Felix installs the connection-time load balancer. The connect-time load balancer is required for the host to be able to reach Kubernetes services and it improves the performance of pod-to-service connections. The only reason to disable it is for debugging purposes. [Default: true] + bpfDataIfacePattern : str, default is Undefined, optional + BPFDataIfacePattern is a regular expression that controls which interfaces Felix should attach BPF programs to in order to catch traffic to/from the network. This needs to match the interfaces that Calico workload traffic flows over as well as any interfaces that handle incoming traffic to nodeports and services from outside the cluster. It should not match the workload interfaces (usually named cali...). + bpfDisableUnprivileged : bool, default is Undefined, optional + BPFDisableUnprivileged, if enabled, Felix sets the kernel.unprivileged_bpf_disabled sysctl to disable unprivileged use of BPF. This ensures that unprivileged users cannot access Calico's BPF maps and cannot insert their own BPF programs to interfere with Calico's. [Default: true] + bpfEnabled : bool, default is Undefined, optional + BPFEnabled, if enabled Felix will use the BPF dataplane. [Default: false] + bpfEnforceRPF : str, default is Undefined, optional + BPFEnforceRPF enforce strict RPF on all interfaces with BPF programs regardless of what is the per-interfaces or global setting. Possible values are Disabled or Strict. [Default: Strict] + bpfExtToServiceConnmark : int, default is Undefined, optional + BPFExtToServiceConnmark in BPF mode, control a 32bit mark that is set on connections from an external client to a local service. This mark allows us to control how packets of that connection are routed within the host and how is routing interpreted by RPF check. [Default: 0] + bpfExternalServiceMode : str, default is Undefined, optional + BPFExternalServiceMode in BPF mode, controls how connections from outside the cluster to services (node ports and cluster IPs) are forwarded to remote workloads. If set to "Tunnel" then both request and response traffic is tunneled to the remote node. If set to "DSR", the request traffic is tunneled but the response traffic is sent directly from the remote node. In "DSR" mode, the remote node appears to use the IP of the ingress node; this requires a permissive L2 network. [Default: Tunnel] + bpfKubeProxyEndpointSlicesEnabled : bool, default is Undefined, optional + BPFKubeProxyEndpointSlicesEnabled in BPF mode, controls whether Felix's embedded kube-proxy accepts EndpointSlices or not. + bpfKubeProxyIptablesCleanupEnabled : bool, default is Undefined, optional + BPFKubeProxyIptablesCleanupEnabled, if enabled in BPF mode, Felix will proactively clean up the upstream Kubernetes kube-proxy's iptables chains. Should only be enabled if kube-proxy is not running. [Default: true] + bpfKubeProxyMinSyncPeriod : str, default is Undefined, optional + BPFKubeProxyMinSyncPeriod, in BPF mode, controls the minimum time between updates to the dataplane for Felix's embedded kube-proxy. Lower values give reduced set-up latency. Higher values reduce Felix CPU usage by batching up more work. [Default: 1s] + bpfLogLevel : str, default is Undefined, optional + BPFLogLevel controls the log level of the BPF programs when in BPF dataplane mode. One of "Off", "Info", or "Debug". The logs are emitted to the BPF trace pipe, accessible with the command `tc exec bpf debug`. [Default: Off]. + bpfMapSizeConntrack : int, default is Undefined, optional + BPFMapSizeConntrack sets the size for the conntrack map. This map must be large enough to hold an entry for each active connection. Warning: changing the size of the conntrack map can cause disruption. + bpfMapSizeIPSets : int, default is Undefined, optional + BPFMapSizeIPSets sets the size for ipsets map. The IP sets map must be large enough to hold an entry for each endpoint matched by every selector in the source/destination matches in network policy. Selectors such as "all()" can result in large numbers of entries (one entry per endpoint in that case). + bpfMapSizeIfState : int, default is Undefined, optional + BPFMapSizeIfState sets the size for ifstate map. The ifstate map must be large enough to hold an entry for each device (host + workloads) on a host. + bpfMapSizeNATAffinity : int, default is Undefined, optional + bpf map size n a t affinity + bpfMapSizeNATBackend : int, default is Undefined, optional + BPFMapSizeNATBackend sets the size for nat back end map. This is the total number of endpoints. This is mostly more than the size of the number of services. + bpfMapSizeNATFrontend : int, default is Undefined, optional + BPFMapSizeNATFrontend sets the size for nat front end map. FrontendMap should be large enough to hold an entry for each nodeport, external IP and each port in each service. + bpfMapSizeRoute : int, default is Undefined, optional + BPFMapSizeRoute sets the size for the routes map. The routes map should be large enough to hold one entry per workload and a handful of entries per host (enough to cover its own IPs and tunnel IPs). + bpfPSNATPorts : int | str, default is Undefined, optional + BPFPSNATPorts sets the range from which we randomly pick a port if there is a source port collision. This should be within the ephemeral range as defined by RFC 6056 (1024–65535) and preferably outside the ephemeral ranges used by common operating systems. Linux uses 32768–60999, while others mostly use the IANA defined range 49152–65535. It is not necessarily a problem if this range overlaps with the operating systems. Both ends of the range are inclusive. [Default: 20000:29999] + bpfPolicyDebugEnabled : bool, default is Undefined, optional + BPFPolicyDebugEnabled when true, Felix records detailed information about the BPF policy programs, which can be examined with the calico-bpf command-line tool. + chainInsertMode : str, default is Undefined, optional + ChainInsertMode controls whether Felix hooks the kernel's top-level iptables chains by inserting a rule at the top of the chain or by appending a rule at the bottom. insert is the safe default since it prevents Calico's rules from being bypassed. If you switch to append mode, be sure that the other rules in the chains signal acceptance by falling through to the Calico rules, otherwise the Calico policy will be bypassed. [Default: insert] + dataplaneDriver : str, default is Undefined, optional + DataplaneDriver filename of the external dataplane driver to use. Only used if UseInternalDataplaneDriver is set to false. + dataplaneWatchdogTimeout : str, default is Undefined, optional + DataplaneWatchdogTimeout is the readiness/liveness timeout used for Felix's (internal) dataplane driver. Increase this value if you experience spurious non-ready or non-live events when Felix is under heavy load. Decrease the value to get felix to report non-live or non-ready more quickly. [Default: 90s] + debugDisableLogDropping : bool, default is Undefined, optional + debug disable log dropping + debugMemoryProfilePath : str, default is Undefined, optional + debug memory profile path + debugSimulateCalcGraphHangAfter : str, default is Undefined, optional + debug simulate calc graph hang after + debugSimulateDataplaneHangAfter : str, default is Undefined, optional + debug simulate dataplane hang after + defaultEndpointToHostAction : str, default is Undefined, optional + DefaultEndpointToHostAction controls what happens to traffic that goes from a workload endpoint to the host itself (after the traffic hits the endpoint egress policy). By default Calico blocks traffic from workload endpoints to the host itself with an iptables "DROP" action. If you want to allow some or all traffic from endpoint to host, set this parameter to RETURN or ACCEPT. Use RETURN if you have your own rules in the iptables "INPUT" chain; Calico will insert its rules at the top of that chain, then "RETURN" packets to the "INPUT" chain once it has completed processing workload endpoint egress policy. Use ACCEPT to unconditionally accept packets from workloads after processing workload endpoint egress policy. [Default: Drop] + deviceRouteProtocol : int, default is Undefined, optional + This defines the route protocol added to programmed device routes, by default this will be RTPROT_BOOT when left blank. + deviceRouteSourceAddress : str, default is Undefined, optional + This is the IPv4 source address to use on programmed device routes. By default the source address is left blank, leaving the kernel to choose the source address used. + deviceRouteSourceAddressIPv6 : str, default is Undefined, optional + This is the IPv6 source address to use on programmed device routes. By default the source address is left blank, leaving the kernel to choose the source address used. + disableConntrackInvalidCheck : bool, default is Undefined, optional + disable conntrack invalid check + endpointReportingDelay : str, default is Undefined, optional + endpoint reporting delay + endpointReportingEnabled : bool, default is Undefined, optional + endpoint reporting enabled + externalNodesList : [str], default is Undefined, optional + ExternalNodesCIDRList is a list of CIDR's of external-non-calico-nodes which may source tunnel traffic and have the tunneled traffic be accepted at calico nodes. + failsafeInboundHostPorts : [CrdProjectcalicoOrgV1FelixConfigurationSpecFailsafeInboundHostPortsItems0], default is Undefined, optional + FailsafeInboundHostPorts is a list of UDP/TCP ports and CIDRs that Felix will allow incoming traffic to host endpoints on irrespective of the security policy. This is useful to avoid accidentally cutting off a host with incorrect configuration. For back-compatibility, if the protocol is not specified, it defaults to "tcp". If a CIDR is not specified, it will allow traffic from all addresses. To disable all inbound host ports, use the value none. The default value allows ssh access and DHCP. [Default: tcp:22, udp:68, tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666, tcp:6667] + failsafeOutboundHostPorts : [CrdProjectcalicoOrgV1FelixConfigurationSpecFailsafeOutboundHostPortsItems0], default is Undefined, optional + FailsafeOutboundHostPorts is a list of UDP/TCP ports and CIDRs that Felix will allow outgoing traffic from host endpoints to irrespective of the security policy. This is useful to avoid accidentally cutting off a host with incorrect configuration. For back-compatibility, if the protocol is not specified, it defaults to "tcp". If a CIDR is not specified, it will allow traffic from all addresses. To disable all outbound host ports, use the value none. The default value opens etcd's standard ports to ensure that Felix does not get cut off from etcd as well as allowing DHCP and DNS. [Default: tcp:179, tcp:2379, tcp:2380, tcp:6443, tcp:6666, tcp:6667, udp:53, udp:67] + featureDetectOverride : str, default is Undefined, optional + FeatureDetectOverride is used to override the feature detection. Values are specified in a comma separated list with no spaces, example; "SNATFullyRandom=true,MASQFullyRandom=false,RestoreSupportsLock=". "true" or "false" will force the feature, empty or omitted values are auto-detected. + floatingIPs : str, default is Undefined, optional + FloatingIPs configures whether or not Felix will program floating IP addresses. + genericXDPEnabled : bool, default is Undefined, optional + GenericXDPEnabled enables Generic XDP so network cards that don't support XDP offload or driver modes can use XDP. This is not recommended since it doesn't provide better performance than iptables. [Default: false] + healthEnabled : bool, default is Undefined, optional + health enabled + healthHost : str, default is Undefined, optional + health host + healthPort : int, default is Undefined, optional + health port + interfaceExclude : str, default is Undefined, optional + InterfaceExclude is a comma-separated list of interfaces that Felix should exclude when monitoring for host endpoints. The default value ensures that Felix ignores Kubernetes' IPVS dummy interface, which is used internally by kube-proxy. If you want to exclude multiple interface names using a single value, the list supports regular expressions. For regular expressions you must wrap the value with '/'. For example having values '/^kube/,veth1' will exclude all interfaces that begin with 'kube' and also the interface 'veth1'. [Default: kube-ipvs0] + interfacePrefix : str, default is Undefined, optional + InterfacePrefix is the interface name prefix that identifies workload endpoints and so distinguishes them from host endpoint interfaces. Note: in environments other than bare metal, the orchestrators configure this appropriately. For example our Kubernetes and Docker integrations set the 'cali' value, and our OpenStack integration sets the 'tap' value. [Default: cali] + interfaceRefreshInterval : str, default is Undefined, optional + InterfaceRefreshInterval is the period at which Felix rescans local interfaces to verify their state. The rescan can be disabled by setting the interval to 0. + ipipEnabled : bool, default is Undefined, optional + IPIPEnabled overrides whether Felix should configure an IPIP interface on the host. Optional as Felix determines this based on the existing IP pools. [Default: nil (unset)] + ipipMTU : int, default is Undefined, optional + IPIPMTU is the MTU to set on the tunnel device. See Configuring MTU [Default: 1440] + ipsetsRefreshInterval : str, default is Undefined, optional + IpsetsRefreshInterval is the period at which Felix re-checks all iptables state to ensure that no other process has accidentally broken Calico's rules. Set to 0 to disable iptables refresh. [Default: 90s] + iptablesBackend : str, default is Undefined, optional + IptablesBackend specifies which backend of iptables will be used. The default is legacy. + iptablesFilterAllowAction : str, default is Undefined, optional + iptables filter allow action + iptablesLockFilePath : str, default is Undefined, optional + IptablesLockFilePath is the location of the iptables lock file. You may need to change this if the lock file is not in its standard location (for example if you have mapped it into Felix's container at a different path). [Default: /run/xtables.lock] + iptablesLockProbeInterval : str, default is Undefined, optional + IptablesLockProbeInterval is the time that Felix will wait between attempts to acquire the iptables lock if it is not available. Lower values make Felix more responsive when the lock is contended, but use more CPU. [Default: 50ms] + iptablesLockTimeout : str, default is Undefined, optional + IptablesLockTimeout is the time that Felix will wait for the iptables lock, or 0, to disable. To use this feature, Felix must share the iptables lock file with all other processes that also take the lock. When running Felix inside a container, this requires the /run directory of the host to be mounted into the calico/node or calico/felix container. [Default: 0s disabled] + iptablesMangleAllowAction : str, default is Undefined, optional + iptables mangle allow action + iptablesMarkMask : int, default is Undefined, optional + IptablesMarkMask is the mask that Felix selects its IPTables Mark bits from. Should be a 32 bit hexadecimal number with at least 8 bits set, none of which clash with any other mark bits in use on the system. [Default: 0xff000000] + iptablesNATOutgoingInterfaceFilter : str, default is Undefined, optional + iptables n a t outgoing interface filter + iptablesPostWriteCheckInterval : str, default is Undefined, optional + IptablesPostWriteCheckInterval is the period after Felix has done a write to the dataplane that it schedules an extra read back in order to check the write was not clobbered by another process. This should only occur if another application on the system doesn't respect the iptables lock. [Default: 1s] + iptablesRefreshInterval : str, default is Undefined, optional + IptablesRefreshInterval is the period at which Felix re-checks the IP sets in the dataplane to ensure that no other process has accidentally broken Calico's rules. Set to 0 to disable IP sets refresh. Note: the default for this value is lower than the other refresh intervals as a workaround for a Linux kernel bug that was fixed in kernel version 4.11. If you are using v4.11 or greater you may want to set this to, a higher value to reduce Felix CPU usage. [Default: 10s] + ipv6Support : bool, default is Undefined, optional + IPv6Support controls whether Felix enables support for IPv6 (if supported by the in-use dataplane). + kubeNodePortRanges : [int | str], default is Undefined, optional + KubeNodePortRanges holds list of port ranges used for service node ports. Only used if felix detects kube-proxy running in ipvs mode. Felix uses these ranges to separate host and workload traffic. [Default: 30000:32767]. + logDebugFilenameRegex : str, default is Undefined, optional + LogDebugFilenameRegex controls which source code files have their Debug log output included in the logs. Only logs from files with names that match the given regular expression are included. The filter only applies to Debug level logs. + logFilePath : str, default is Undefined, optional + LogFilePath is the full path to the Felix log. Set to none to disable file logging. [Default: /var/log/calico/felix.log] + logPrefix : str, default is Undefined, optional + LogPrefix is the log prefix that Felix uses when rendering LOG rules. [Default: calico-packet] + logSeverityFile : str, default is Undefined, optional + LogSeverityFile is the log severity above which logs are sent to the log file. [Default: Info] + logSeverityScreen : str, default is Undefined, optional + LogSeverityScreen is the log severity above which logs are sent to the stdout. [Default: Info] + logSeveritySys : str, default is Undefined, optional + LogSeveritySys is the log severity above which logs are sent to the syslog. Set to None for no logging to syslog. [Default: Info] + maxIpsetSize : int, default is Undefined, optional + max ipset size + metadataAddr : str, default is Undefined, optional + MetadataAddr is the IP address or domain name of the server that can answer VM queries for cloud-init metadata. In OpenStack, this corresponds to the machine running nova-api (or in Ubuntu, nova-api-metadata). A value of none (case insensitive) means that Felix should not set up any NAT rule for the metadata path. [Default: 127.0.0.1] + metadataPort : int, default is Undefined, optional + MetadataPort is the port of the metadata server. This, combined with global.MetadataAddr (if not 'None'), is used to set up a NAT rule, from 169.254.169.254:80 to MetadataAddr:MetadataPort. In most cases this should not need to be changed [Default: 8775]. + mtuIfacePattern : str, default is Undefined, optional + MTUIfacePattern is a regular expression that controls which interfaces Felix should scan in order to calculate the host's MTU. This should not match workload interfaces (usually named cali...). + natOutgoingAddress : str, default is Undefined, optional + NATOutgoingAddress specifies an address to use when performing source NAT for traffic in a natOutgoing pool that is leaving the network. By default the address used is an address on the interface the traffic is leaving on (ie it uses the iptables MASQUERADE target) + natPortRange : int | str, default is Undefined, optional + NATPortRange specifies the range of ports that is used for port mapping when doing outgoing NAT. When unset the default behavior of the network stack is used. + netlinkTimeout : str, default is Undefined, optional + netlink timeout + openstackRegion : str, default is Undefined, optional + OpenstackRegion is the name of the region that a particular Felix belongs to. In a multi-region Calico/OpenStack deployment, this must be configured somehow for each Felix (here in the datamodel, or in felix.cfg or the environment on each compute node), and must match the [calico] openstack_region value configured in neutron.conf on each node. [Default: Empty] + policySyncPathPrefix : str, default is Undefined, optional + PolicySyncPathPrefix is used to by Felix to communicate policy changes to external services, like Application layer policy. [Default: Empty] + prometheusGoMetricsEnabled : bool, default is Undefined, optional + PrometheusGoMetricsEnabled disables Go runtime metrics collection, which the Prometheus client does by default, when set to false. This reduces the number of metrics reported, reducing Prometheus load. [Default: true] + prometheusMetricsEnabled : bool, default is Undefined, optional + PrometheusMetricsEnabled enables the Prometheus metrics server in Felix if set to true. [Default: false] + prometheusMetricsHost : str, default is Undefined, optional + PrometheusMetricsHost is the host that the Prometheus metrics server should bind to. [Default: empty] + prometheusMetricsPort : int, default is Undefined, optional + PrometheusMetricsPort is the TCP port that the Prometheus metrics server should bind to. [Default: 9091] + prometheusProcessMetricsEnabled : bool, default is Undefined, optional + PrometheusProcessMetricsEnabled disables process metrics collection, which the Prometheus client does by default, when set to false. This reduces the number of metrics reported, reducing Prometheus load. [Default: true] + prometheusWireGuardMetricsEnabled : bool, default is Undefined, optional + PrometheusWireGuardMetricsEnabled disables wireguard metrics collection, which the Prometheus client does by default, when set to false. This reduces the number of metrics reported, reducing Prometheus load. [Default: true] + removeExternalRoutes : bool, default is Undefined, optional + Whether or not to remove device routes that have not been programmed by Felix. Disabling this will allow external applications to also add device routes. This is enabled by default which means we will remove externally added routes. + reportingInterval : str, default is Undefined, optional + ReportingInterval is the interval at which Felix reports its status into the datastore or 0 to disable. Must be non-zero in OpenStack deployments. [Default: 30s] + reportingTTL : str, default is Undefined, optional + ReportingTTL is the time-to-live setting for process-wide status reports. [Default: 90s] + routeRefreshInterval : str, default is Undefined, optional + RouteRefreshInterval is the period at which Felix re-checks the routes in the dataplane to ensure that no other process has accidentally broken Calico's rules. Set to 0 to disable route refresh. [Default: 90s] + routeSource : str, default is Undefined, optional + RouteSource configures where Felix gets its routing information. - WorkloadIPs: use workload endpoints to construct routes. - CalicoIPAM: the default - use IPAM data to construct routes. + routeSyncDisabled : bool, default is Undefined, optional + RouteSyncDisabled will disable all operations performed on the route table. Set to true to run in network-policy mode only. + routeTableRange : CrdProjectcalicoOrgV1FelixConfigurationSpecRouteTableRange, default is Undefined, optional + route table range + routeTableRanges : [CrdProjectcalicoOrgV1FelixConfigurationSpecRouteTableRangesItems0], default is Undefined, optional + Calico programs additional Linux route tables for various purposes. RouteTableRanges specifies a set of table index ranges that Calico should use. Deprecates`RouteTableRange`, overrides `RouteTableRange`. + serviceLoopPrevention : str, default is Undefined, optional + When service IP advertisement is enabled, prevent routing loops to service IPs that are not in use, by dropping or rejecting packets that do not get DNAT'd by kube-proxy. Unless set to "Disabled", in which case such routing loops continue to be allowed. [Default: Drop] + sidecarAccelerationEnabled : bool, default is Undefined, optional + SidecarAccelerationEnabled enables experimental sidecar acceleration [Default: false] + usageReportingEnabled : bool, default is Undefined, optional + UsageReportingEnabled reports anonymous Calico version number and cluster size to projectcalico.org. Logs warnings returned by the usage server. For example, if a significant security vulnerability has been discovered in the version of Calico being used. [Default: true] + usageReportingInitialDelay : str, default is Undefined, optional + UsageReportingInitialDelay controls the minimum delay before Felix makes a report. [Default: 300s] + usageReportingInterval : str, default is Undefined, optional + UsageReportingInterval controls the interval at which Felix makes reports. [Default: 86400s] + useInternalDataplaneDriver : bool, default is Undefined, optional + UseInternalDataplaneDriver, if true, Felix will use its internal dataplane programming logic. If false, it will launch an external dataplane driver and communicate with it over protobuf. + vxlanEnabled : bool, default is Undefined, optional + VXLANEnabled overrides whether Felix should create the VXLAN tunnel device for VXLAN networking. Optional as Felix determines this based on the existing IP pools. [Default: nil (unset)] + vxlanMTU : int, default is Undefined, optional + VXLANMTU is the MTU to set on the IPv4 VXLAN tunnel device. See Configuring MTU [Default: 1410] + vxlanMTUV6 : int, default is Undefined, optional + VXLANMTUV6 is the MTU to set on the IPv6 VXLAN tunnel device. See Configuring MTU [Default: 1390] + vxlanPort : int, default is Undefined, optional + vxlan port + vxlanVNI : int, default is Undefined, optional + vxlan v n i + wireguardEnabled : bool, default is Undefined, optional + WireguardEnabled controls whether Wireguard is enabled for IPv4 (encapsulating IPv4 traffic over an IPv4 underlay network). [Default: false] + wireguardEnabledV6 : bool, default is Undefined, optional + WireguardEnabledV6 controls whether Wireguard is enabled for IPv6 (encapsulating IPv6 traffic over an IPv6 underlay network). [Default: false] + wireguardHostEncryptionEnabled : bool, default is Undefined, optional + WireguardHostEncryptionEnabled controls whether Wireguard host-to-host encryption is enabled. [Default: false] + wireguardInterfaceName : str, default is Undefined, optional + WireguardInterfaceName specifies the name to use for the IPv4 Wireguard interface. [Default: wireguard.cali] + wireguardInterfaceNameV6 : str, default is Undefined, optional + WireguardInterfaceNameV6 specifies the name to use for the IPv6 Wireguard interface. [Default: wg-v6.cali] + wireguardKeepAlive : str, default is Undefined, optional + WireguardKeepAlive controls Wireguard PersistentKeepalive option. Set 0 to disable. [Default: 0] + wireguardListeningPort : int, default is Undefined, optional + WireguardListeningPort controls the listening port used by IPv4 Wireguard. [Default: 51820] + wireguardListeningPortV6 : int, default is Undefined, optional + WireguardListeningPortV6 controls the listening port used by IPv6 Wireguard. [Default: 51821] + wireguardMTU : int, default is Undefined, optional + WireguardMTU controls the MTU on the IPv4 Wireguard interface. See Configuring MTU [Default: 1440] + wireguardMTUV6 : int, default is Undefined, optional + WireguardMTUV6 controls the MTU on the IPv6 Wireguard interface. See Configuring MTU [Default: 1420] + wireguardRoutingRulePriority : int, default is Undefined, optional + WireguardRoutingRulePriority controls the priority value to use for the Wireguard routing rule. [Default: 99] + workloadSourceSpoofing : str, default is Undefined, optional + WorkloadSourceSpoofing controls whether pods can use the allowedSourcePrefixes annotation to send traffic with a source IP address that is not theirs. This is disabled by default. When set to "Any", pods can request any prefix. + xdpEnabled : bool, default is Undefined, optional + XDPEnabled enables XDP acceleration for suitable untracked incoming deny rules. [Default: true] + xdpRefreshInterval : str, default is Undefined, optional + XDPRefreshInterval is the period at which Felix re-checks all XDP state to ensure that no other process has accidentally broken Calico's BPF maps or attached programs. Set to 0 to disable XDP refresh. [Default: 90s] + """ + + + allowIPIPPacketsFromWorkloads?: bool + + allowVXLANPacketsFromWorkloads?: bool + + awsSrcDstCheck?: "DoNothing" | "Enable" | "Disable" + + bpfConnectTimeLoadBalancingEnabled?: bool + + bpfDataIfacePattern?: str + + bpfDisableUnprivileged?: bool + + bpfEnabled?: bool + + bpfEnforceRPF?: str + + bpfExtToServiceConnmark?: int + + bpfExternalServiceMode?: str + + bpfKubeProxyEndpointSlicesEnabled?: bool + + bpfKubeProxyIptablesCleanupEnabled?: bool + + bpfKubeProxyMinSyncPeriod?: str + + bpfLogLevel?: str + + bpfMapSizeConntrack?: int + + bpfMapSizeIPSets?: int + + bpfMapSizeIfState?: int + + bpfMapSizeNATAffinity?: int + + bpfMapSizeNATBackend?: int + + bpfMapSizeNATFrontend?: int + + bpfMapSizeRoute?: int + + bpfPSNATPorts?: int | str + + bpfPolicyDebugEnabled?: bool + + chainInsertMode?: str + + dataplaneDriver?: str + + dataplaneWatchdogTimeout?: str + + debugDisableLogDropping?: bool + + debugMemoryProfilePath?: str + + debugSimulateCalcGraphHangAfter?: str + + debugSimulateDataplaneHangAfter?: str + + defaultEndpointToHostAction?: str + + deviceRouteProtocol?: int + + deviceRouteSourceAddress?: str + + deviceRouteSourceAddressIPv6?: str + + disableConntrackInvalidCheck?: bool + + endpointReportingDelay?: str + + endpointReportingEnabled?: bool + + externalNodesList?: [str] + + failsafeInboundHostPorts?: [CrdProjectcalicoOrgV1FelixConfigurationSpecFailsafeInboundHostPortsItems0] + + failsafeOutboundHostPorts?: [CrdProjectcalicoOrgV1FelixConfigurationSpecFailsafeOutboundHostPortsItems0] + + featureDetectOverride?: str + + floatingIPs?: "Enabled" | "Disabled" + + genericXDPEnabled?: bool + + healthEnabled?: bool + + healthHost?: str + + healthPort?: int + + interfaceExclude?: str + + interfacePrefix?: str + + interfaceRefreshInterval?: str + + ipipEnabled?: bool + + ipipMTU?: int + + ipsetsRefreshInterval?: str + + iptablesBackend?: str + + iptablesFilterAllowAction?: str + + iptablesLockFilePath?: str + + iptablesLockProbeInterval?: str + + iptablesLockTimeout?: str + + iptablesMangleAllowAction?: str + + iptablesMarkMask?: int + + iptablesNATOutgoingInterfaceFilter?: str + + iptablesPostWriteCheckInterval?: str + + iptablesRefreshInterval?: str + + ipv6Support?: bool + + kubeNodePortRanges?: [int | str] + + logDebugFilenameRegex?: str + + logFilePath?: str + + logPrefix?: str + + logSeverityFile?: str + + logSeverityScreen?: str + + logSeveritySys?: str + + maxIpsetSize?: int + + metadataAddr?: str + + metadataPort?: int + + mtuIfacePattern?: str + + natOutgoingAddress?: str + + natPortRange?: int | str + + netlinkTimeout?: str + + openstackRegion?: str + + policySyncPathPrefix?: str + + prometheusGoMetricsEnabled?: bool + + prometheusMetricsEnabled?: bool + + prometheusMetricsHost?: str + + prometheusMetricsPort?: int + + prometheusProcessMetricsEnabled?: bool + + prometheusWireGuardMetricsEnabled?: bool + + removeExternalRoutes?: bool + + reportingInterval?: str + + reportingTTL?: str + + routeRefreshInterval?: str + + routeSource?: str + + routeSyncDisabled?: bool + + routeTableRange?: CrdProjectcalicoOrgV1FelixConfigurationSpecRouteTableRange + + routeTableRanges?: [CrdProjectcalicoOrgV1FelixConfigurationSpecRouteTableRangesItems0] + + serviceLoopPrevention?: str + + sidecarAccelerationEnabled?: bool + + usageReportingEnabled?: bool + + usageReportingInitialDelay?: str + + usageReportingInterval?: str + + useInternalDataplaneDriver?: bool + + vxlanEnabled?: bool + + vxlanMTU?: int + + vxlanMTUV6?: int + + vxlanPort?: int + + vxlanVNI?: int + + wireguardEnabled?: bool + + wireguardEnabledV6?: bool + + wireguardHostEncryptionEnabled?: bool + + wireguardInterfaceName?: str + + wireguardInterfaceNameV6?: str + + wireguardKeepAlive?: str + + wireguardListeningPort?: int + + wireguardListeningPortV6?: int + + wireguardMTU?: int + + wireguardMTUV6?: int + + wireguardRoutingRulePriority?: int + + workloadSourceSpoofing?: str + + xdpEnabled?: bool + + xdpRefreshInterval?: str + + + check: + regex.match(str(bpfPSNATPorts), r"^.*") if bpfPSNATPorts + regex.match(str(natPortRange), r"^.*") if natPortRange + + +schema CrdProjectcalicoOrgV1FelixConfigurationSpecFailsafeInboundHostPortsItems0: + """ + ProtoPort is combination of protocol, port, and CIDR. Protocol and port must be specified. + + Attributes + ---------- + net : str, default is Undefined, optional + net + port : int, default is Undefined, required + port + $protocol : str, default is Undefined, required + protocol + """ + + + net?: str + + port: int + + $protocol: str + + +schema CrdProjectcalicoOrgV1FelixConfigurationSpecFailsafeOutboundHostPortsItems0: + """ + ProtoPort is combination of protocol, port, and CIDR. Protocol and port must be specified. + + Attributes + ---------- + net : str, default is Undefined, optional + net + port : int, default is Undefined, required + port + $protocol : str, default is Undefined, required + protocol + """ + + + net?: str + + port: int + + $protocol: str + + +schema CrdProjectcalicoOrgV1FelixConfigurationSpecRouteTableRange: + """ + Deprecated in favor of RouteTableRanges. Calico programs additional Linux route tables for various purposes. RouteTableRange specifies the indices of the route tables that Calico should use. + + Attributes + ---------- + max : int, default is Undefined, required + max + min : int, default is Undefined, required + min + """ + + + max: int + + min: int + + +schema CrdProjectcalicoOrgV1FelixConfigurationSpecRouteTableRangesItems0: + """ + crd projectcalico org v1 felix configuration spec route table ranges items0 + + Attributes + ---------- + max : int, default is Undefined, required + max + min : int, default is Undefined, required + min + """ + + + max: int + + min: int + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_global_network_policy.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_global_network_policy.k new file mode 100644 index 00000000..e0290468 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_global_network_policy.k @@ -0,0 +1,747 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema GlobalNetworkPolicy: + """ + crd projectcalico org v1 global network policy + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "GlobalNetworkPolicy", 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 : CrdProjectcalicoOrgV1GlobalNetworkPolicySpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "GlobalNetworkPolicy" = "GlobalNetworkPolicy" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpec + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpec: + """ + crd projectcalico org v1 global network policy spec + + Attributes + ---------- + applyOnForward : bool, default is Undefined, optional + ApplyOnForward indicates to apply the rules in this policy on forward traffic. + doNotTrack : bool, default is Undefined, optional + DoNotTrack indicates whether packets matched by the rules in this policy should go through the data plane's connection tracking, such as Linux conntrack. If True, the rules in this policy are applied before any data plane connection tracking, and packets allowed by this policy are marked as not to be tracked. + egress : [CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0], default is Undefined, optional + The ordered set of egress rules. Each rule contains a set of packet match criteria and a corresponding action to apply. + ingress : [CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0], default is Undefined, optional + The ordered set of ingress rules. Each rule contains a set of packet match criteria and a corresponding action to apply. + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field for an expression used to select a pod based on namespaces. + order : float, default is Undefined, optional + Order is an optional field that specifies the order in which the policy is applied. Policies with higher "order" are applied after those with lower order. If the order is omitted, it may be considered to be "infinite" - i.e. the policy will be applied last. Policies with identical order will be applied in alphanumerical order based on the Policy "Name". + preDNAT : bool, default is Undefined, optional + PreDNAT indicates to apply the rules in this policy before any DNAT. + selector : str, default is Undefined, optional + The selector is an expression used to pick pick out the endpoints that the policy should be applied to. + Selector expressions follow this syntax: + label == "string_literal" -> comparison, e.g. my_label == "foo bar" label != "string_literal" -> not equal; also matches if label is not present label in { "a", "b", "c", ... } -> true if the value of label X is one of "a", "b", "c" label not in { "a", "b", "c", ... } -> true if the value of label X is not one of "a", "b", "c" has(label_name) -> True if that label is present ! expr -> negation of expr expr && expr -> Short-circuit and expr || expr -> Short-circuit or ( expr ) -> parens for grouping all() or the empty selector -> matches all endpoints. + Label names are allowed to contain alphanumerics, -, _ and /. String literals are more permissive but they do not support escape characters. + Examples (with made-up labels): + type == "webserver" && deployment == "prod" type in {"frontend", "backend"} deployment != "dev" ! has(label_name) + serviceAccountSelector : str, default is Undefined, optional + ServiceAccountSelector is an optional field for an expression used to select a pod based on service accounts. + types : [str], default is Undefined, optional + Types indicates whether this policy applies to ingress, or to egress, or to both. When not explicitly specified (and so the value on creation is empty or nil), Calico defaults Types according to what Ingress and Egress rules are present in the policy. The default is: + - [ PolicyTypeIngress ], if there are no Egress rules (including the case where there are also no Ingress rules) + - [ PolicyTypeEgress ], if there are Egress rules but no Ingress rules + - [ PolicyTypeIngress, PolicyTypeEgress ], if there are both Ingress and Egress rules. + When the policy is read back again, Types will always be one of these values, never empty or nil. + """ + + + applyOnForward?: bool + + doNotTrack?: bool + + egress?: [CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0] + + ingress?: [CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0] + + namespaceSelector?: str + + order?: float + + preDNAT?: bool + + selector?: str + + serviceAccountSelector?: str + + types?: [str] + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0: + """ + A Rule encapsulates a set of match criteria and an action. Both selector-based security Policy and security Profiles reference rules - separated out as a list of rules for both ingress and egress packet matching. + Each positive match criteria has a negated version, prefixed with "Not". All the match criteria within a rule must be satisfied for a packet to match. A single rule can contain the positive and negative version of a match and both must be satisfied for the rule to match. + + Attributes + ---------- + action : str, default is Undefined, required + action + destination : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Destination, default is Undefined, optional + destination + http : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0HTTP, default is Undefined, optional + http + icmp : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Icmp, default is Undefined, optional + icmp + ipVersion : int, default is Undefined, optional + IPVersion is an optional field that restricts the rule to only match a specific IP version. + metadata : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Metadata, default is Undefined, optional + metadata + notICMP : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0NotICMP, default is Undefined, optional + not i c m p + notProtocol : int | str, default is Undefined, optional + NotProtocol is the negated version of the Protocol field. + $protocol : int | str, default is Undefined, optional + Protocol is an optional field that restricts the rule to only apply to traffic of a specific IP protocol. Required if any of the EntityRules contain Ports (because ports only apply to certain protocols). + Must be one of these string values: "TCP", "UDP", "ICMP", "ICMPv6", "SCTP", "UDPLite" or an integer in the range 1-255. + source : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Source, default is Undefined, optional + source + """ + + + action: str + + destination?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Destination + + http?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0HTTP + + icmp?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Icmp + + ipVersion?: int + + metadata?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Metadata + + notICMP?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0NotICMP + + notProtocol?: int | str + + $protocol?: int | str + + source?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Source + + + check: + regex.match(str(notProtocol), r"^.*") if notProtocol + regex.match(str($protocol), r"^.*") if $protocol + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Destination: + """ + Destination contains the match criteria that apply to destination entity. + + Attributes + ---------- + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field that contains a selector expression. Only traffic that originates from (or terminates at) endpoints within the selected namespaces will be matched. When both NamespaceSelector and another selector are defined on the same rule, then only workload endpoints that are matched by both selectors will be selected by the rule. + For NetworkPolicy, an empty NamespaceSelector implies that the Selector is limited to selecting only workload endpoints in the same namespace as the NetworkPolicy. + For NetworkPolicy, `global()` NamespaceSelector implies that the Selector is limited to selecting only GlobalNetworkSet or HostEndpoint. + For GlobalNetworkPolicy, an empty NamespaceSelector implies the Selector applies to workload endpoints across all namespaces. + nets : [str], default is Undefined, optional + Nets is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) IP addresses in any of the given subnets. + notNets : [str], default is Undefined, optional + NotNets is the negated version of the Nets field. + notPorts : [int | str], default is Undefined, optional + NotPorts is the negated version of the Ports field. Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + notSelector : str, default is Undefined, optional + NotSelector is the negated version of the Selector field. See Selector field for subtleties with negated selectors. + ports : [int | str], default is Undefined, optional + Ports is an optional field that restricts the rule to only apply to traffic that has a source (destination) port that matches one of these ranges/values. This value is a list of integers or strings that represent ranges of ports. + Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + selector : str, default is Undefined, optional + Selector is an optional field that contains a selector expression (see Policy for sample syntax). Only traffic that originates from (terminates at) endpoints matching the selector will be matched. + Note that: in addition to the negated version of the Selector (see NotSelector below), the selector expression syntax itself supports negation. The two types of negation are subtly different. One negates the set of matched endpoints, the other negates the whole match: + Selector = "!has(my_label)" matches packets that are from other Calico-controlled endpoints that do not have the label "my_label". + NotSelector = "has(my_label)" matches packets that are not from Calico-controlled endpoints that do have the label "my_label". + The effect is that the latter will accept packets from non-Calico sources whereas the former is limited to packets from Calico-controlled endpoints. + serviceAccounts : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0DestinationServiceAccounts, default is Undefined, optional + service accounts + services : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0DestinationServices, default is Undefined, optional + services + """ + + + namespaceSelector?: str + + nets?: [str] + + notNets?: [str] + + notPorts?: [int | str] + + notSelector?: str + + ports?: [int | str] + + selector?: str + + serviceAccounts?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0DestinationServiceAccounts + + services?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0DestinationServices + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0DestinationServiceAccounts: + """ + ServiceAccounts is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a matching service account. + + Attributes + ---------- + names : [str], default is Undefined, optional + Names is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account whose name is in the list. + selector : str, default is Undefined, optional + Selector is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account that matches the given label selector. If both Names and Selector are specified then they are AND'ed. + """ + + + names?: [str] + + selector?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0DestinationServices: + """ + Services is an optional field that contains options for matching Kubernetes Services. If specified, only traffic that originates from or terminates at endpoints within the selected service(s) will be matched, and only to/from each endpoint's port. + Services cannot be specified on the same rule as Selector, NotSelector, NamespaceSelector, Nets, NotNets or ServiceAccounts. + Ports and NotPorts can only be specified with Services on ingress rules. + + Attributes + ---------- + name : str, default is Undefined, optional + Name specifies the name of a Kubernetes Service to match. + namespace : str, default is Undefined, optional + Namespace specifies the namespace of the given Service. If left empty, the rule will match within this policy's namespace. + """ + + + name?: str + + namespace?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0HTTP: + """ + HTTP contains match criteria that apply to HTTP requests. + + Attributes + ---------- + methods : [str], default is Undefined, optional + Methods is an optional field that restricts the rule to apply only to HTTP requests that use one of the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple methods are OR'd together. + paths : [CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0HTTPPathsItems0], default is Undefined, optional + Paths is an optional field that restricts the rule to apply to HTTP requests that use one of the listed HTTP Paths. Multiple paths are OR'd together. e.g: - exact: /foo - prefix: /bar NOTE: Each entry may ONLY specify either a `exact` or a `prefix` match. The validator will check for it. + """ + + + methods?: [str] + + paths?: [CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0HTTPPathsItems0] + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0HTTPPathsItems0: + """ + HTTPPath specifies an HTTP path to match. It may be either of the form: exact: : which matches the path exactly or prefix: : which matches the path prefix + + Attributes + ---------- + exact : str, default is Undefined, optional + exact + prefix : str, default is Undefined, optional + prefix + """ + + + exact?: str + + prefix?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Icmp: + """ + ICMP is an optional field that restricts the rule to apply to a specific type and code of ICMP traffic. This should only be specified if the Protocol field is set to "ICMP" or "ICMPv6". + + Attributes + ---------- + code : int, default is Undefined, optional + Match on a specific ICMP code. If specified, the Type value must also be specified. This is a technical limitation imposed by the kernel's iptables firewall, which Calico uses to enforce the rule. + $type : int, default is Undefined, optional + Match on a specific ICMP type. For example a value of 8 refers to ICMP Echo Request (i.e. pings). + """ + + + code?: int + + $type?: int + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Metadata: + """ + Metadata contains additional information for this rule + + Attributes + ---------- + annotations : {str:str}, default is Undefined, optional + Annotations is a set of key value pairs that give extra information about the rule + """ + + + annotations?: {str:str} + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0NotICMP: + """ + NotICMP is the negated version of the ICMP field. + + Attributes + ---------- + code : int, default is Undefined, optional + Match on a specific ICMP code. If specified, the Type value must also be specified. This is a technical limitation imposed by the kernel's iptables firewall, which Calico uses to enforce the rule. + $type : int, default is Undefined, optional + Match on a specific ICMP type. For example a value of 8 refers to ICMP Echo Request (i.e. pings). + """ + + + code?: int + + $type?: int + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0Source: + """ + Source contains the match criteria that apply to source entity. + + Attributes + ---------- + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field that contains a selector expression. Only traffic that originates from (or terminates at) endpoints within the selected namespaces will be matched. When both NamespaceSelector and another selector are defined on the same rule, then only workload endpoints that are matched by both selectors will be selected by the rule. + For NetworkPolicy, an empty NamespaceSelector implies that the Selector is limited to selecting only workload endpoints in the same namespace as the NetworkPolicy. + For NetworkPolicy, `global()` NamespaceSelector implies that the Selector is limited to selecting only GlobalNetworkSet or HostEndpoint. + For GlobalNetworkPolicy, an empty NamespaceSelector implies the Selector applies to workload endpoints across all namespaces. + nets : [str], default is Undefined, optional + Nets is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) IP addresses in any of the given subnets. + notNets : [str], default is Undefined, optional + NotNets is the negated version of the Nets field. + notPorts : [int | str], default is Undefined, optional + NotPorts is the negated version of the Ports field. Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + notSelector : str, default is Undefined, optional + NotSelector is the negated version of the Selector field. See Selector field for subtleties with negated selectors. + ports : [int | str], default is Undefined, optional + Ports is an optional field that restricts the rule to only apply to traffic that has a source (destination) port that matches one of these ranges/values. This value is a list of integers or strings that represent ranges of ports. + Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + selector : str, default is Undefined, optional + Selector is an optional field that contains a selector expression (see Policy for sample syntax). Only traffic that originates from (terminates at) endpoints matching the selector will be matched. + Note that: in addition to the negated version of the Selector (see NotSelector below), the selector expression syntax itself supports negation. The two types of negation are subtly different. One negates the set of matched endpoints, the other negates the whole match: + Selector = "!has(my_label)" matches packets that are from other Calico-controlled endpoints that do not have the label "my_label". + NotSelector = "has(my_label)" matches packets that are not from Calico-controlled endpoints that do have the label "my_label". + The effect is that the latter will accept packets from non-Calico sources whereas the former is limited to packets from Calico-controlled endpoints. + serviceAccounts : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0SourceServiceAccounts, default is Undefined, optional + service accounts + services : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0SourceServices, default is Undefined, optional + services + """ + + + namespaceSelector?: str + + nets?: [str] + + notNets?: [str] + + notPorts?: [int | str] + + notSelector?: str + + ports?: [int | str] + + selector?: str + + serviceAccounts?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0SourceServiceAccounts + + services?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0SourceServices + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0SourceServiceAccounts: + """ + ServiceAccounts is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a matching service account. + + Attributes + ---------- + names : [str], default is Undefined, optional + Names is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account whose name is in the list. + selector : str, default is Undefined, optional + Selector is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account that matches the given label selector. If both Names and Selector are specified then they are AND'ed. + """ + + + names?: [str] + + selector?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecEgressItems0SourceServices: + """ + Services is an optional field that contains options for matching Kubernetes Services. If specified, only traffic that originates from or terminates at endpoints within the selected service(s) will be matched, and only to/from each endpoint's port. + Services cannot be specified on the same rule as Selector, NotSelector, NamespaceSelector, Nets, NotNets or ServiceAccounts. + Ports and NotPorts can only be specified with Services on ingress rules. + + Attributes + ---------- + name : str, default is Undefined, optional + Name specifies the name of a Kubernetes Service to match. + namespace : str, default is Undefined, optional + Namespace specifies the namespace of the given Service. If left empty, the rule will match within this policy's namespace. + """ + + + name?: str + + namespace?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0: + """ + A Rule encapsulates a set of match criteria and an action. Both selector-based security Policy and security Profiles reference rules - separated out as a list of rules for both ingress and egress packet matching. + Each positive match criteria has a negated version, prefixed with "Not". All the match criteria within a rule must be satisfied for a packet to match. A single rule can contain the positive and negative version of a match and both must be satisfied for the rule to match. + + Attributes + ---------- + action : str, default is Undefined, required + action + destination : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Destination, default is Undefined, optional + destination + http : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0HTTP, default is Undefined, optional + http + icmp : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Icmp, default is Undefined, optional + icmp + ipVersion : int, default is Undefined, optional + IPVersion is an optional field that restricts the rule to only match a specific IP version. + metadata : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Metadata, default is Undefined, optional + metadata + notICMP : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0NotICMP, default is Undefined, optional + not i c m p + notProtocol : int | str, default is Undefined, optional + NotProtocol is the negated version of the Protocol field. + $protocol : int | str, default is Undefined, optional + Protocol is an optional field that restricts the rule to only apply to traffic of a specific IP protocol. Required if any of the EntityRules contain Ports (because ports only apply to certain protocols). + Must be one of these string values: "TCP", "UDP", "ICMP", "ICMPv6", "SCTP", "UDPLite" or an integer in the range 1-255. + source : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Source, default is Undefined, optional + source + """ + + + action: str + + destination?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Destination + + http?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0HTTP + + icmp?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Icmp + + ipVersion?: int + + metadata?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Metadata + + notICMP?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0NotICMP + + notProtocol?: int | str + + $protocol?: int | str + + source?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Source + + + check: + regex.match(str(notProtocol), r"^.*") if notProtocol + regex.match(str($protocol), r"^.*") if $protocol + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Destination: + """ + Destination contains the match criteria that apply to destination entity. + + Attributes + ---------- + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field that contains a selector expression. Only traffic that originates from (or terminates at) endpoints within the selected namespaces will be matched. When both NamespaceSelector and another selector are defined on the same rule, then only workload endpoints that are matched by both selectors will be selected by the rule. + For NetworkPolicy, an empty NamespaceSelector implies that the Selector is limited to selecting only workload endpoints in the same namespace as the NetworkPolicy. + For NetworkPolicy, `global()` NamespaceSelector implies that the Selector is limited to selecting only GlobalNetworkSet or HostEndpoint. + For GlobalNetworkPolicy, an empty NamespaceSelector implies the Selector applies to workload endpoints across all namespaces. + nets : [str], default is Undefined, optional + Nets is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) IP addresses in any of the given subnets. + notNets : [str], default is Undefined, optional + NotNets is the negated version of the Nets field. + notPorts : [int | str], default is Undefined, optional + NotPorts is the negated version of the Ports field. Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + notSelector : str, default is Undefined, optional + NotSelector is the negated version of the Selector field. See Selector field for subtleties with negated selectors. + ports : [int | str], default is Undefined, optional + Ports is an optional field that restricts the rule to only apply to traffic that has a source (destination) port that matches one of these ranges/values. This value is a list of integers or strings that represent ranges of ports. + Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + selector : str, default is Undefined, optional + Selector is an optional field that contains a selector expression (see Policy for sample syntax). Only traffic that originates from (terminates at) endpoints matching the selector will be matched. + Note that: in addition to the negated version of the Selector (see NotSelector below), the selector expression syntax itself supports negation. The two types of negation are subtly different. One negates the set of matched endpoints, the other negates the whole match: + Selector = "!has(my_label)" matches packets that are from other Calico-controlled endpoints that do not have the label "my_label". + NotSelector = "has(my_label)" matches packets that are not from Calico-controlled endpoints that do have the label "my_label". + The effect is that the latter will accept packets from non-Calico sources whereas the former is limited to packets from Calico-controlled endpoints. + serviceAccounts : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0DestinationServiceAccounts, default is Undefined, optional + service accounts + services : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0DestinationServices, default is Undefined, optional + services + """ + + + namespaceSelector?: str + + nets?: [str] + + notNets?: [str] + + notPorts?: [int | str] + + notSelector?: str + + ports?: [int | str] + + selector?: str + + serviceAccounts?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0DestinationServiceAccounts + + services?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0DestinationServices + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0DestinationServiceAccounts: + """ + ServiceAccounts is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a matching service account. + + Attributes + ---------- + names : [str], default is Undefined, optional + Names is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account whose name is in the list. + selector : str, default is Undefined, optional + Selector is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account that matches the given label selector. If both Names and Selector are specified then they are AND'ed. + """ + + + names?: [str] + + selector?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0DestinationServices: + """ + Services is an optional field that contains options for matching Kubernetes Services. If specified, only traffic that originates from or terminates at endpoints within the selected service(s) will be matched, and only to/from each endpoint's port. + Services cannot be specified on the same rule as Selector, NotSelector, NamespaceSelector, Nets, NotNets or ServiceAccounts. + Ports and NotPorts can only be specified with Services on ingress rules. + + Attributes + ---------- + name : str, default is Undefined, optional + Name specifies the name of a Kubernetes Service to match. + namespace : str, default is Undefined, optional + Namespace specifies the namespace of the given Service. If left empty, the rule will match within this policy's namespace. + """ + + + name?: str + + namespace?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0HTTP: + """ + HTTP contains match criteria that apply to HTTP requests. + + Attributes + ---------- + methods : [str], default is Undefined, optional + Methods is an optional field that restricts the rule to apply only to HTTP requests that use one of the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple methods are OR'd together. + paths : [CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0HTTPPathsItems0], default is Undefined, optional + Paths is an optional field that restricts the rule to apply to HTTP requests that use one of the listed HTTP Paths. Multiple paths are OR'd together. e.g: - exact: /foo - prefix: /bar NOTE: Each entry may ONLY specify either a `exact` or a `prefix` match. The validator will check for it. + """ + + + methods?: [str] + + paths?: [CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0HTTPPathsItems0] + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0HTTPPathsItems0: + """ + HTTPPath specifies an HTTP path to match. It may be either of the form: exact: : which matches the path exactly or prefix: : which matches the path prefix + + Attributes + ---------- + exact : str, default is Undefined, optional + exact + prefix : str, default is Undefined, optional + prefix + """ + + + exact?: str + + prefix?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Icmp: + """ + ICMP is an optional field that restricts the rule to apply to a specific type and code of ICMP traffic. This should only be specified if the Protocol field is set to "ICMP" or "ICMPv6". + + Attributes + ---------- + code : int, default is Undefined, optional + Match on a specific ICMP code. If specified, the Type value must also be specified. This is a technical limitation imposed by the kernel's iptables firewall, which Calico uses to enforce the rule. + $type : int, default is Undefined, optional + Match on a specific ICMP type. For example a value of 8 refers to ICMP Echo Request (i.e. pings). + """ + + + code?: int + + $type?: int + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Metadata: + """ + Metadata contains additional information for this rule + + Attributes + ---------- + annotations : {str:str}, default is Undefined, optional + Annotations is a set of key value pairs that give extra information about the rule + """ + + + annotations?: {str:str} + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0NotICMP: + """ + NotICMP is the negated version of the ICMP field. + + Attributes + ---------- + code : int, default is Undefined, optional + Match on a specific ICMP code. If specified, the Type value must also be specified. This is a technical limitation imposed by the kernel's iptables firewall, which Calico uses to enforce the rule. + $type : int, default is Undefined, optional + Match on a specific ICMP type. For example a value of 8 refers to ICMP Echo Request (i.e. pings). + """ + + + code?: int + + $type?: int + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0Source: + """ + Source contains the match criteria that apply to source entity. + + Attributes + ---------- + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field that contains a selector expression. Only traffic that originates from (or terminates at) endpoints within the selected namespaces will be matched. When both NamespaceSelector and another selector are defined on the same rule, then only workload endpoints that are matched by both selectors will be selected by the rule. + For NetworkPolicy, an empty NamespaceSelector implies that the Selector is limited to selecting only workload endpoints in the same namespace as the NetworkPolicy. + For NetworkPolicy, `global()` NamespaceSelector implies that the Selector is limited to selecting only GlobalNetworkSet or HostEndpoint. + For GlobalNetworkPolicy, an empty NamespaceSelector implies the Selector applies to workload endpoints across all namespaces. + nets : [str], default is Undefined, optional + Nets is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) IP addresses in any of the given subnets. + notNets : [str], default is Undefined, optional + NotNets is the negated version of the Nets field. + notPorts : [int | str], default is Undefined, optional + NotPorts is the negated version of the Ports field. Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + notSelector : str, default is Undefined, optional + NotSelector is the negated version of the Selector field. See Selector field for subtleties with negated selectors. + ports : [int | str], default is Undefined, optional + Ports is an optional field that restricts the rule to only apply to traffic that has a source (destination) port that matches one of these ranges/values. This value is a list of integers or strings that represent ranges of ports. + Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + selector : str, default is Undefined, optional + Selector is an optional field that contains a selector expression (see Policy for sample syntax). Only traffic that originates from (terminates at) endpoints matching the selector will be matched. + Note that: in addition to the negated version of the Selector (see NotSelector below), the selector expression syntax itself supports negation. The two types of negation are subtly different. One negates the set of matched endpoints, the other negates the whole match: + Selector = "!has(my_label)" matches packets that are from other Calico-controlled endpoints that do not have the label "my_label". + NotSelector = "has(my_label)" matches packets that are not from Calico-controlled endpoints that do have the label "my_label". + The effect is that the latter will accept packets from non-Calico sources whereas the former is limited to packets from Calico-controlled endpoints. + serviceAccounts : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0SourceServiceAccounts, default is Undefined, optional + service accounts + services : CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0SourceServices, default is Undefined, optional + services + """ + + + namespaceSelector?: str + + nets?: [str] + + notNets?: [str] + + notPorts?: [int | str] + + notSelector?: str + + ports?: [int | str] + + selector?: str + + serviceAccounts?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0SourceServiceAccounts + + services?: CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0SourceServices + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0SourceServiceAccounts: + """ + ServiceAccounts is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a matching service account. + + Attributes + ---------- + names : [str], default is Undefined, optional + Names is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account whose name is in the list. + selector : str, default is Undefined, optional + Selector is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account that matches the given label selector. If both Names and Selector are specified then they are AND'ed. + """ + + + names?: [str] + + selector?: str + + +schema CrdProjectcalicoOrgV1GlobalNetworkPolicySpecIngressItems0SourceServices: + """ + Services is an optional field that contains options for matching Kubernetes Services. If specified, only traffic that originates from or terminates at endpoints within the selected service(s) will be matched, and only to/from each endpoint's port. + Services cannot be specified on the same rule as Selector, NotSelector, NamespaceSelector, Nets, NotNets or ServiceAccounts. + Ports and NotPorts can only be specified with Services on ingress rules. + + Attributes + ---------- + name : str, default is Undefined, optional + Name specifies the name of a Kubernetes Service to match. + namespace : str, default is Undefined, optional + Namespace specifies the namespace of the given Service. If left empty, the rule will match within this policy's namespace. + """ + + + name?: str + + namespace?: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_global_network_set.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_global_network_set.k new file mode 100644 index 00000000..fc331dcd --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_global_network_set.k @@ -0,0 +1,47 @@ +""" +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 GlobalNetworkSet: + """ + GlobalNetworkSet contains a set of arbitrary IP sub-networks/CIDRs that share labels to allow rules to refer to them via selectors. The labels of GlobalNetworkSet are not namespaced. + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "GlobalNetworkSet", 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 : CrdProjectcalicoOrgV1GlobalNetworkSetSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "GlobalNetworkSet" = "GlobalNetworkSet" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1GlobalNetworkSetSpec + + +schema CrdProjectcalicoOrgV1GlobalNetworkSetSpec: + """ + GlobalNetworkSetSpec contains the specification for a NetworkSet resource. + + Attributes + ---------- + nets : [str], default is Undefined, optional + The list of IP networks that belong to this set. + """ + + + nets?: [str] + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_host_endpoint.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_host_endpoint.k new file mode 100644 index 00000000..af010e6f --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_host_endpoint.k @@ -0,0 +1,92 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema HostEndpoint: + """ + crd projectcalico org v1 host endpoint + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "HostEndpoint", 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 : CrdProjectcalicoOrgV1HostEndpointSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "HostEndpoint" = "HostEndpoint" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1HostEndpointSpec + + +schema CrdProjectcalicoOrgV1HostEndpointSpec: + """ + HostEndpointSpec contains the specification for a HostEndpoint resource. + + Attributes + ---------- + expectedIPs : [str], default is Undefined, optional + The expected IP addresses (IPv4 and IPv6) of the endpoint. If "InterfaceName" is not present, Calico will look for an interface matching any of the IPs in the list and apply policy to that. Note: When using the selector match criteria in an ingress or egress security Policy or Profile, Calico converts the selector into a set of IP addresses. For host endpoints, the ExpectedIPs field is used for that purpose. (If only the interface name is specified, Calico does not learn the IPs of the interface for use in match criteria.) + interfaceName : str, default is Undefined, optional + Either "*", or the name of a specific Linux interface to apply policy to; or empty. "*" indicates that this HostEndpoint governs all traffic to, from or through the default network namespace of the host named by the "Node" field; entering and leaving that namespace via any interface, including those from/to non-host-networked local workloads. + If InterfaceName is not "*", this HostEndpoint only governs traffic that enters or leaves the host through the specific interface named by InterfaceName, or - when InterfaceName is empty - through the specific interface that has one of the IPs in ExpectedIPs. Therefore, when InterfaceName is empty, at least one expected IP must be specified. Only external interfaces (such as "eth0") are supported here; it isn't possible for a HostEndpoint to protect traffic through a specific local workload interface. + Note: Only some kinds of policy are implemented for "*" HostEndpoints; initially just pre-DNAT policy. Please check Calico documentation for the latest position. + node : str, default is Undefined, optional + The node name identifying the Calico node instance. + ports : [CrdProjectcalicoOrgV1HostEndpointSpecPortsItems0], default is Undefined, optional + Ports contains the endpoint's named ports, which may be referenced in security policy rules. + profiles : [str], default is Undefined, optional + A list of identifiers of security Profile objects that apply to this endpoint. Each profile is applied in the order that they appear in this list. Profile rules are applied after the selector-based security policy. + """ + + + expectedIPs?: [str] + + interfaceName?: str + + node?: str + + ports?: [CrdProjectcalicoOrgV1HostEndpointSpecPortsItems0] + + profiles?: [str] + + +schema CrdProjectcalicoOrgV1HostEndpointSpecPortsItems0: + """ + crd projectcalico org v1 host endpoint spec ports items0 + + Attributes + ---------- + name : str, default is Undefined, required + name + port : int, default is Undefined, required + port + $protocol : int | str, default is Undefined, required + protocol + """ + + + name: str + + port: int + + $protocol: int | str + + + check: + regex.match(str($protocol), r"^.*") + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_block.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_block.k new file mode 100644 index 00000000..e338f0e0 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_block.k @@ -0,0 +1,97 @@ +""" +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 IPAMBlock: + """ + crd projectcalico org v1 IP a m block + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "IPAMBlock", 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 : CrdProjectcalicoOrgV1IPAMBlockSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "IPAMBlock" = "IPAMBlock" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1IPAMBlockSpec + + +schema CrdProjectcalicoOrgV1IPAMBlockSpec: + """ + IPAMBlockSpec contains the specification for an IPAMBlock resource. + + Attributes + ---------- + affinity : str, default is Undefined, optional + Affinity of the block, if this block has one. If set, it will be of the form "host:". If not set, this block is not affine to a host. + allocations : [int], default is Undefined, required + Array of allocations in-use within this block. nil entries mean the allocation is free. For non-nil entries at index i, the index is the ordinal of the allocation within this block and the value is the index of the associated attributes in the Attributes array. + attributes : [CrdProjectcalicoOrgV1IPAMBlockSpecAttributesItems0], default is Undefined, required + Attributes is an array of arbitrary metadata associated with allocations in the block. To find attributes for a given allocation, use the value of the allocation's entry in the Allocations array as the index of the element in this array. + cidr : str, default is Undefined, required + The block's CIDR. + deleted : bool, default is Undefined, optional + Deleted is an internal boolean used to workaround a limitation in the Kubernetes API whereby deletion will not return a conflict error if the block has been updated. It should not be set manually. + sequenceNumber : int, default is Undefined, optional + We store a sequence number that is updated each time the block is written. Each allocation will also store the sequence number of the block at the time of its creation. When releasing an IP, passing the sequence number associated with the allocation allows us to protect against a race condition and ensure the IP hasn't been released and re-allocated since the release request. + sequenceNumberForAllocation : {str:int}, default is Undefined, optional + Map of allocated ordinal within the block to sequence number of the block at the time of allocation. Kubernetes does not allow numerical keys for maps, so the key is cast to a string. + strictAffinity : bool, default is Undefined, required + StrictAffinity on the IPAMBlock is deprecated and no longer used by the code. Use IPAMConfig StrictAffinity instead. + unallocated : [int], default is Undefined, required + Unallocated is an ordered list of allocations which are free in the block. + """ + + + affinity?: str + + allocations: [int] + + attributes: [CrdProjectcalicoOrgV1IPAMBlockSpecAttributesItems0] + + cidr: str + + deleted?: bool + + sequenceNumber?: int = 0 + + sequenceNumberForAllocation?: {str:int} + + strictAffinity: bool + + unallocated: [int] + + +schema CrdProjectcalicoOrgV1IPAMBlockSpecAttributesItems0: + """ + crd projectcalico org v1 IP a m block spec attributes items0 + + Attributes + ---------- + handle_id : str, default is Undefined, optional + handle id + secondary : {str:str}, default is Undefined, optional + secondary + """ + + + handle_id?: str + + secondary?: {str:str} + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_config.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_config.k new file mode 100644 index 00000000..b1336b67 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_config.k @@ -0,0 +1,60 @@ +""" +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 IPAMConfig: + """ + crd projectcalico org v1 IP a m config + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "IPAMConfig", 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 : CrdProjectcalicoOrgV1IPAMConfigSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "IPAMConfig" = "IPAMConfig" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1IPAMConfigSpec + + +schema CrdProjectcalicoOrgV1IPAMConfigSpec: + """ + IPAMConfigSpec contains the specification for an IPAMConfig resource. + + Attributes + ---------- + autoAllocateBlocks : bool, default is Undefined, required + auto allocate blocks + maxBlocksPerHost : int, default is Undefined, optional + MaxBlocksPerHost, if non-zero, is the max number of blocks that can be affine to each host. + strictAffinity : bool, default is Undefined, required + strict affinity + """ + + + autoAllocateBlocks: bool + + maxBlocksPerHost?: int + + strictAffinity: bool + + + check: + maxBlocksPerHost <= 2.147483647e+09 + maxBlocksPerHost >= 0 + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_handle.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_handle.k new file mode 100644 index 00000000..e87a427c --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_a_m_handle.k @@ -0,0 +1,55 @@ +""" +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 IPAMHandle: + """ + crd projectcalico org v1 IP a m handle + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "IPAMHandle", 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 : CrdProjectcalicoOrgV1IPAMHandleSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "IPAMHandle" = "IPAMHandle" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1IPAMHandleSpec + + +schema CrdProjectcalicoOrgV1IPAMHandleSpec: + """ + IPAMHandleSpec contains the specification for an IPAMHandle resource. + + Attributes + ---------- + block : {str:int}, default is Undefined, required + block + deleted : bool, default is Undefined, optional + deleted + handleID : str, default is Undefined, required + handle ID + """ + + + block: {str:int} + + deleted?: bool + + handleID: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_pool.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_pool.k new file mode 100644 index 00000000..8e83ac83 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_pool.k @@ -0,0 +1,105 @@ +""" +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 IPPool: + """ + crd projectcalico org v1 IP pool + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "IPPool", 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 : CrdProjectcalicoOrgV1IPPoolSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "IPPool" = "IPPool" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1IPPoolSpec + + +schema CrdProjectcalicoOrgV1IPPoolSpec: + """ + IPPoolSpec contains the specification for an IPPool resource. + + Attributes + ---------- + allowedUses : [str], default is Undefined, optional + AllowedUse controls what the IP pool will be used for. If not specified or empty, defaults to ["Tunnel", "Workload"] for back-compatibility + blockSize : int, default is Undefined, optional + The block size to use for IP address assignments from this pool. Defaults to 26 for IPv4 and 122 for IPv6. + cidr : str, default is Undefined, required + The pool CIDR. + disableBGPExport : bool, default is Undefined, optional + Disable exporting routes from this IP Pool's CIDR over BGP. [Default: false] + disabled : bool, default is Undefined, optional + When disabled is true, Calico IPAM will not assign addresses from this pool. + ipip : CrdProjectcalicoOrgV1IPPoolSpecIpip, default is Undefined, optional + ipip + ipipMode : str, default is Undefined, optional + Contains configuration for IPIP tunneling for this pool. If not specified, then this is defaulted to "Never" (i.e. IPIP tunneling is disabled). + nat_outgoing : bool, default is Undefined, optional + Deprecated: this field is only used for APIv1 backwards compatibility. Setting this field is not allowed, this field is for internal use only. + natOutgoing : bool, default is Undefined, optional + When nat-outgoing is true, packets sent from Calico networked containers in this pool to destinations outside of this pool will be masqueraded. + nodeSelector : str, default is Undefined, optional + Allows IPPool to allocate for a specific node by label selector. + vxlanMode : str, default is Undefined, optional + Contains configuration for VXLAN tunneling for this pool. If not specified, then this is defaulted to "Never" (i.e. VXLAN tunneling is disabled). + """ + + + allowedUses?: [str] + + blockSize?: int + + cidr: str + + disableBGPExport?: bool + + disabled?: bool + + ipip?: CrdProjectcalicoOrgV1IPPoolSpecIpip + + ipipMode?: str + + nat_outgoing?: bool + + natOutgoing?: bool + + nodeSelector?: str + + vxlanMode?: str + + +schema CrdProjectcalicoOrgV1IPPoolSpecIpip: + """ + Deprecated: this field is only used for APIv1 backwards compatibility. Setting this field is not allowed, this field is for internal use only. + + Attributes + ---------- + enabled : bool, default is Undefined, optional + When enabled is true, ipip tunneling will be used to deliver packets to destinations within this pool. + mode : str, default is Undefined, optional + The IPIP mode. This can be one of "always" or "cross-subnet". A mode of "always" will also use IPIP tunneling for routing to destination IP addresses within this pool. A mode of "cross-subnet" will only use IPIP tunneling when the destination node is on a different subnet to the originating node. The default value (if not specified) is "always". + """ + + + enabled?: bool + + mode?: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_reservation.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_reservation.k new file mode 100644 index 00000000..86e1a7d8 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_ip_reservation.k @@ -0,0 +1,47 @@ +""" +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 IPReservation: + """ + crd projectcalico org v1 IP reservation + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "IPReservation", 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 : CrdProjectcalicoOrgV1IPReservationSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "IPReservation" = "IPReservation" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1IPReservationSpec + + +schema CrdProjectcalicoOrgV1IPReservationSpec: + """ + IPReservationSpec contains the specification for an IPReservation resource. + + Attributes + ---------- + reservedCIDRs : [str], default is Undefined, optional + ReservedCIDRs is a list of CIDRs and/or IP addresses that Calico IPAM will exclude from new allocations. + """ + + + reservedCIDRs?: [str] + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_kube_controllers_configuration.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_kube_controllers_configuration.k new file mode 100644 index 00000000..07704a92 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_kube_controllers_configuration.k @@ -0,0 +1,375 @@ +""" +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 KubeControllersConfiguration: + """ + crd projectcalico org v1 kube controllers configuration + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "KubeControllersConfiguration", 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 : CrdProjectcalicoOrgV1KubeControllersConfigurationSpec, default is Undefined, optional + spec + status : CrdProjectcalicoOrgV1KubeControllersConfigurationStatus, default is Undefined, optional + status + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "KubeControllersConfiguration" = "KubeControllersConfiguration" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1KubeControllersConfigurationSpec + + status?: CrdProjectcalicoOrgV1KubeControllersConfigurationStatus + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationSpec: + """ + KubeControllersConfigurationSpec contains the values of the Kubernetes controllers configuration. + + Attributes + ---------- + controllers : CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllers, default is Undefined, required + controllers + debugProfilePort : int, default is Undefined, optional + DebugProfilePort configures the port to serve memory and cpu profiles on. If not specified, profiling is disabled. + etcdV3CompactionPeriod : str, default is Undefined, optional + EtcdV3CompactionPeriod is the period between etcdv3 compaction requests. Set to 0 to disable. [Default: 10m] + healthChecks : str, default is Undefined, optional + HealthChecks enables or disables support for health checks [Default: Enabled] + logSeverityScreen : str, default is Undefined, optional + LogSeverityScreen is the log severity above which logs are sent to the stdout. [Default: Info] + prometheusMetricsPort : int, default is Undefined, optional + PrometheusMetricsPort is the TCP port that the Prometheus metrics server should bind to. Set to 0 to disable. [Default: 9094] + """ + + + controllers: CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllers + + debugProfilePort?: int + + etcdV3CompactionPeriod?: str + + healthChecks?: str + + logSeverityScreen?: str + + prometheusMetricsPort?: int + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllers: + """ + Controllers enables and configures individual Kubernetes controllers + + Attributes + ---------- + namespace : CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNamespace, default is Undefined, optional + namespace + node : CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNode, default is Undefined, optional + node + policy : CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersPolicy, default is Undefined, optional + policy + serviceAccount : CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersServiceAccount, default is Undefined, optional + service account + workloadEndpoint : CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersWorkloadEndpoint, default is Undefined, optional + workload endpoint + """ + + + namespace?: CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNamespace + + node?: CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNode + + policy?: CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersPolicy + + serviceAccount?: CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersServiceAccount + + workloadEndpoint?: CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersWorkloadEndpoint + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNamespace: + """ + Namespace enables and configures the namespace controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + """ + + + reconcilerPeriod?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNode: + """ + Node enables and configures the node controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + hostEndpoint : CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNodeHostEndpoint, default is Undefined, optional + host endpoint + leakGracePeriod : str, default is Undefined, optional + LeakGracePeriod is the period used by the controller to determine if an IP address has been leaked. Set to 0 to disable IP garbage collection. [Default: 15m] + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + syncLabels : str, default is Undefined, optional + SyncLabels controls whether to copy Kubernetes node labels to Calico nodes. [Default: Enabled] + """ + + + hostEndpoint?: CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNodeHostEndpoint + + leakGracePeriod?: str + + reconcilerPeriod?: str + + syncLabels?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersNodeHostEndpoint: + """ + HostEndpoint controls syncing nodes to host endpoints. Disabled by default, set to nil to disable. + + Attributes + ---------- + autoCreate : str, default is Undefined, optional + AutoCreate enables automatic creation of host endpoints for every node. [Default: Disabled] + """ + + + autoCreate?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersPolicy: + """ + Policy enables and configures the policy controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + """ + + + reconcilerPeriod?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersServiceAccount: + """ + ServiceAccount enables and configures the service account controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + """ + + + reconcilerPeriod?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationSpecControllersWorkloadEndpoint: + """ + WorkloadEndpoint enables and configures the workload endpoint controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + """ + + + reconcilerPeriod?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatus: + """ + KubeControllersConfigurationStatus represents the status of the configuration. It's useful for admins to be able to see the actual config that was applied, which can be modified by environment variables on the kube-controllers process. + + Attributes + ---------- + environmentVars : {str:str}, default is Undefined, optional + EnvironmentVars contains the environment variables on the kube-controllers that influenced the RunningConfig. + runningConfig : CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfig, default is Undefined, optional + running config + """ + + + environmentVars?: {str:str} + + runningConfig?: CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfig + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfig: + """ + RunningConfig contains the effective config that is running in the kube-controllers pod, after merging the API resource with any environment variables. + + Attributes + ---------- + controllers : CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllers, default is Undefined, required + controllers + debugProfilePort : int, default is Undefined, optional + DebugProfilePort configures the port to serve memory and cpu profiles on. If not specified, profiling is disabled. + etcdV3CompactionPeriod : str, default is Undefined, optional + EtcdV3CompactionPeriod is the period between etcdv3 compaction requests. Set to 0 to disable. [Default: 10m] + healthChecks : str, default is Undefined, optional + HealthChecks enables or disables support for health checks [Default: Enabled] + logSeverityScreen : str, default is Undefined, optional + LogSeverityScreen is the log severity above which logs are sent to the stdout. [Default: Info] + prometheusMetricsPort : int, default is Undefined, optional + PrometheusMetricsPort is the TCP port that the Prometheus metrics server should bind to. Set to 0 to disable. [Default: 9094] + """ + + + controllers: CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllers + + debugProfilePort?: int + + etcdV3CompactionPeriod?: str + + healthChecks?: str + + logSeverityScreen?: str + + prometheusMetricsPort?: int + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllers: + """ + Controllers enables and configures individual Kubernetes controllers + + Attributes + ---------- + namespace : CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNamespace, default is Undefined, optional + namespace + node : CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNode, default is Undefined, optional + node + policy : CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersPolicy, default is Undefined, optional + policy + serviceAccount : CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersServiceAccount, default is Undefined, optional + service account + workloadEndpoint : CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersWorkloadEndpoint, default is Undefined, optional + workload endpoint + """ + + + namespace?: CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNamespace + + node?: CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNode + + policy?: CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersPolicy + + serviceAccount?: CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersServiceAccount + + workloadEndpoint?: CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersWorkloadEndpoint + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNamespace: + """ + Namespace enables and configures the namespace controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + """ + + + reconcilerPeriod?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNode: + """ + Node enables and configures the node controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + hostEndpoint : CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNodeHostEndpoint, default is Undefined, optional + host endpoint + leakGracePeriod : str, default is Undefined, optional + LeakGracePeriod is the period used by the controller to determine if an IP address has been leaked. Set to 0 to disable IP garbage collection. [Default: 15m] + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + syncLabels : str, default is Undefined, optional + SyncLabels controls whether to copy Kubernetes node labels to Calico nodes. [Default: Enabled] + """ + + + hostEndpoint?: CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNodeHostEndpoint + + leakGracePeriod?: str + + reconcilerPeriod?: str + + syncLabels?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersNodeHostEndpoint: + """ + HostEndpoint controls syncing nodes to host endpoints. Disabled by default, set to nil to disable. + + Attributes + ---------- + autoCreate : str, default is Undefined, optional + AutoCreate enables automatic creation of host endpoints for every node. [Default: Disabled] + """ + + + autoCreate?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersPolicy: + """ + Policy enables and configures the policy controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + """ + + + reconcilerPeriod?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersServiceAccount: + """ + ServiceAccount enables and configures the service account controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + """ + + + reconcilerPeriod?: str + + +schema CrdProjectcalicoOrgV1KubeControllersConfigurationStatusRunningConfigControllersWorkloadEndpoint: + """ + WorkloadEndpoint enables and configures the workload endpoint controller. Enabled by default, set to nil to disable. + + Attributes + ---------- + reconcilerPeriod : str, default is Undefined, optional + ReconcilerPeriod is the period to perform reconciliation with the Calico datastore. [Default: 5m] + """ + + + reconcilerPeriod?: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_network_policy.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_network_policy.k new file mode 100644 index 00000000..b6f5db6d --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_network_policy.k @@ -0,0 +1,731 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema NetworkPolicy: + """ + crd projectcalico org v1 network policy + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "NetworkPolicy", 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 : CrdProjectcalicoOrgV1NetworkPolicySpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "NetworkPolicy" = "NetworkPolicy" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1NetworkPolicySpec + + +schema CrdProjectcalicoOrgV1NetworkPolicySpec: + """ + crd projectcalico org v1 network policy spec + + Attributes + ---------- + egress : [CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0], default is Undefined, optional + The ordered set of egress rules. Each rule contains a set of packet match criteria and a corresponding action to apply. + ingress : [CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0], default is Undefined, optional + The ordered set of ingress rules. Each rule contains a set of packet match criteria and a corresponding action to apply. + order : float, default is Undefined, optional + Order is an optional field that specifies the order in which the policy is applied. Policies with higher "order" are applied after those with lower order. If the order is omitted, it may be considered to be "infinite" - i.e. the policy will be applied last. Policies with identical order will be applied in alphanumerical order based on the Policy "Name". + selector : str, default is Undefined, optional + The selector is an expression used to pick pick out the endpoints that the policy should be applied to. + Selector expressions follow this syntax: + label == "string_literal" -> comparison, e.g. my_label == "foo bar" label != "string_literal" -> not equal; also matches if label is not present label in { "a", "b", "c", ... } -> true if the value of label X is one of "a", "b", "c" label not in { "a", "b", "c", ... } -> true if the value of label X is not one of "a", "b", "c" has(label_name) -> True if that label is present ! expr -> negation of expr expr && expr -> Short-circuit and expr || expr -> Short-circuit or ( expr ) -> parens for grouping all() or the empty selector -> matches all endpoints. + Label names are allowed to contain alphanumerics, -, _ and /. String literals are more permissive but they do not support escape characters. + Examples (with made-up labels): + type == "webserver" && deployment == "prod" type in {"frontend", "backend"} deployment != "dev" ! has(label_name) + serviceAccountSelector : str, default is Undefined, optional + ServiceAccountSelector is an optional field for an expression used to select a pod based on service accounts. + types : [str], default is Undefined, optional + Types indicates whether this policy applies to ingress, or to egress, or to both. When not explicitly specified (and so the value on creation is empty or nil), Calico defaults Types according to what Ingress and Egress are present in the policy. The default is: + - [ PolicyTypeIngress ], if there are no Egress rules (including the case where there are also no Ingress rules) + - [ PolicyTypeEgress ], if there are Egress rules but no Ingress rules + - [ PolicyTypeIngress, PolicyTypeEgress ], if there are both Ingress and Egress rules. + When the policy is read back again, Types will always be one of these values, never empty or nil. + """ + + + egress?: [CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0] + + ingress?: [CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0] + + order?: float + + selector?: str + + serviceAccountSelector?: str + + types?: [str] + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0: + """ + A Rule encapsulates a set of match criteria and an action. Both selector-based security Policy and security Profiles reference rules - separated out as a list of rules for both ingress and egress packet matching. + Each positive match criteria has a negated version, prefixed with "Not". All the match criteria within a rule must be satisfied for a packet to match. A single rule can contain the positive and negative version of a match and both must be satisfied for the rule to match. + + Attributes + ---------- + action : str, default is Undefined, required + action + destination : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Destination, default is Undefined, optional + destination + http : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0HTTP, default is Undefined, optional + http + icmp : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Icmp, default is Undefined, optional + icmp + ipVersion : int, default is Undefined, optional + IPVersion is an optional field that restricts the rule to only match a specific IP version. + metadata : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Metadata, default is Undefined, optional + metadata + notICMP : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0NotICMP, default is Undefined, optional + not i c m p + notProtocol : int | str, default is Undefined, optional + NotProtocol is the negated version of the Protocol field. + $protocol : int | str, default is Undefined, optional + Protocol is an optional field that restricts the rule to only apply to traffic of a specific IP protocol. Required if any of the EntityRules contain Ports (because ports only apply to certain protocols). + Must be one of these string values: "TCP", "UDP", "ICMP", "ICMPv6", "SCTP", "UDPLite" or an integer in the range 1-255. + source : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Source, default is Undefined, optional + source + """ + + + action: str + + destination?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Destination + + http?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0HTTP + + icmp?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Icmp + + ipVersion?: int + + metadata?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Metadata + + notICMP?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0NotICMP + + notProtocol?: int | str + + $protocol?: int | str + + source?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Source + + + check: + regex.match(str(notProtocol), r"^.*") if notProtocol + regex.match(str($protocol), r"^.*") if $protocol + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Destination: + """ + Destination contains the match criteria that apply to destination entity. + + Attributes + ---------- + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field that contains a selector expression. Only traffic that originates from (or terminates at) endpoints within the selected namespaces will be matched. When both NamespaceSelector and another selector are defined on the same rule, then only workload endpoints that are matched by both selectors will be selected by the rule. + For NetworkPolicy, an empty NamespaceSelector implies that the Selector is limited to selecting only workload endpoints in the same namespace as the NetworkPolicy. + For NetworkPolicy, `global()` NamespaceSelector implies that the Selector is limited to selecting only GlobalNetworkSet or HostEndpoint. + For GlobalNetworkPolicy, an empty NamespaceSelector implies the Selector applies to workload endpoints across all namespaces. + nets : [str], default is Undefined, optional + Nets is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) IP addresses in any of the given subnets. + notNets : [str], default is Undefined, optional + NotNets is the negated version of the Nets field. + notPorts : [int | str], default is Undefined, optional + NotPorts is the negated version of the Ports field. Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + notSelector : str, default is Undefined, optional + NotSelector is the negated version of the Selector field. See Selector field for subtleties with negated selectors. + ports : [int | str], default is Undefined, optional + Ports is an optional field that restricts the rule to only apply to traffic that has a source (destination) port that matches one of these ranges/values. This value is a list of integers or strings that represent ranges of ports. + Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + selector : str, default is Undefined, optional + Selector is an optional field that contains a selector expression (see Policy for sample syntax). Only traffic that originates from (terminates at) endpoints matching the selector will be matched. + Note that: in addition to the negated version of the Selector (see NotSelector below), the selector expression syntax itself supports negation. The two types of negation are subtly different. One negates the set of matched endpoints, the other negates the whole match: + Selector = "!has(my_label)" matches packets that are from other Calico-controlled endpoints that do not have the label "my_label". + NotSelector = "has(my_label)" matches packets that are not from Calico-controlled endpoints that do have the label "my_label". + The effect is that the latter will accept packets from non-Calico sources whereas the former is limited to packets from Calico-controlled endpoints. + serviceAccounts : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0DestinationServiceAccounts, default is Undefined, optional + service accounts + services : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0DestinationServices, default is Undefined, optional + services + """ + + + namespaceSelector?: str + + nets?: [str] + + notNets?: [str] + + notPorts?: [int | str] + + notSelector?: str + + ports?: [int | str] + + selector?: str + + serviceAccounts?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0DestinationServiceAccounts + + services?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0DestinationServices + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0DestinationServiceAccounts: + """ + ServiceAccounts is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a matching service account. + + Attributes + ---------- + names : [str], default is Undefined, optional + Names is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account whose name is in the list. + selector : str, default is Undefined, optional + Selector is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account that matches the given label selector. If both Names and Selector are specified then they are AND'ed. + """ + + + names?: [str] + + selector?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0DestinationServices: + """ + Services is an optional field that contains options for matching Kubernetes Services. If specified, only traffic that originates from or terminates at endpoints within the selected service(s) will be matched, and only to/from each endpoint's port. + Services cannot be specified on the same rule as Selector, NotSelector, NamespaceSelector, Nets, NotNets or ServiceAccounts. + Ports and NotPorts can only be specified with Services on ingress rules. + + Attributes + ---------- + name : str, default is Undefined, optional + Name specifies the name of a Kubernetes Service to match. + namespace : str, default is Undefined, optional + Namespace specifies the namespace of the given Service. If left empty, the rule will match within this policy's namespace. + """ + + + name?: str + + namespace?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0HTTP: + """ + HTTP contains match criteria that apply to HTTP requests. + + Attributes + ---------- + methods : [str], default is Undefined, optional + Methods is an optional field that restricts the rule to apply only to HTTP requests that use one of the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple methods are OR'd together. + paths : [CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0HTTPPathsItems0], default is Undefined, optional + Paths is an optional field that restricts the rule to apply to HTTP requests that use one of the listed HTTP Paths. Multiple paths are OR'd together. e.g: - exact: /foo - prefix: /bar NOTE: Each entry may ONLY specify either a `exact` or a `prefix` match. The validator will check for it. + """ + + + methods?: [str] + + paths?: [CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0HTTPPathsItems0] + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0HTTPPathsItems0: + """ + HTTPPath specifies an HTTP path to match. It may be either of the form: exact: : which matches the path exactly or prefix: : which matches the path prefix + + Attributes + ---------- + exact : str, default is Undefined, optional + exact + prefix : str, default is Undefined, optional + prefix + """ + + + exact?: str + + prefix?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Icmp: + """ + ICMP is an optional field that restricts the rule to apply to a specific type and code of ICMP traffic. This should only be specified if the Protocol field is set to "ICMP" or "ICMPv6". + + Attributes + ---------- + code : int, default is Undefined, optional + Match on a specific ICMP code. If specified, the Type value must also be specified. This is a technical limitation imposed by the kernel's iptables firewall, which Calico uses to enforce the rule. + $type : int, default is Undefined, optional + Match on a specific ICMP type. For example a value of 8 refers to ICMP Echo Request (i.e. pings). + """ + + + code?: int + + $type?: int + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Metadata: + """ + Metadata contains additional information for this rule + + Attributes + ---------- + annotations : {str:str}, default is Undefined, optional + Annotations is a set of key value pairs that give extra information about the rule + """ + + + annotations?: {str:str} + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0NotICMP: + """ + NotICMP is the negated version of the ICMP field. + + Attributes + ---------- + code : int, default is Undefined, optional + Match on a specific ICMP code. If specified, the Type value must also be specified. This is a technical limitation imposed by the kernel's iptables firewall, which Calico uses to enforce the rule. + $type : int, default is Undefined, optional + Match on a specific ICMP type. For example a value of 8 refers to ICMP Echo Request (i.e. pings). + """ + + + code?: int + + $type?: int + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0Source: + """ + Source contains the match criteria that apply to source entity. + + Attributes + ---------- + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field that contains a selector expression. Only traffic that originates from (or terminates at) endpoints within the selected namespaces will be matched. When both NamespaceSelector and another selector are defined on the same rule, then only workload endpoints that are matched by both selectors will be selected by the rule. + For NetworkPolicy, an empty NamespaceSelector implies that the Selector is limited to selecting only workload endpoints in the same namespace as the NetworkPolicy. + For NetworkPolicy, `global()` NamespaceSelector implies that the Selector is limited to selecting only GlobalNetworkSet or HostEndpoint. + For GlobalNetworkPolicy, an empty NamespaceSelector implies the Selector applies to workload endpoints across all namespaces. + nets : [str], default is Undefined, optional + Nets is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) IP addresses in any of the given subnets. + notNets : [str], default is Undefined, optional + NotNets is the negated version of the Nets field. + notPorts : [int | str], default is Undefined, optional + NotPorts is the negated version of the Ports field. Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + notSelector : str, default is Undefined, optional + NotSelector is the negated version of the Selector field. See Selector field for subtleties with negated selectors. + ports : [int | str], default is Undefined, optional + Ports is an optional field that restricts the rule to only apply to traffic that has a source (destination) port that matches one of these ranges/values. This value is a list of integers or strings that represent ranges of ports. + Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + selector : str, default is Undefined, optional + Selector is an optional field that contains a selector expression (see Policy for sample syntax). Only traffic that originates from (terminates at) endpoints matching the selector will be matched. + Note that: in addition to the negated version of the Selector (see NotSelector below), the selector expression syntax itself supports negation. The two types of negation are subtly different. One negates the set of matched endpoints, the other negates the whole match: + Selector = "!has(my_label)" matches packets that are from other Calico-controlled endpoints that do not have the label "my_label". + NotSelector = "has(my_label)" matches packets that are not from Calico-controlled endpoints that do have the label "my_label". + The effect is that the latter will accept packets from non-Calico sources whereas the former is limited to packets from Calico-controlled endpoints. + serviceAccounts : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0SourceServiceAccounts, default is Undefined, optional + service accounts + services : CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0SourceServices, default is Undefined, optional + services + """ + + + namespaceSelector?: str + + nets?: [str] + + notNets?: [str] + + notPorts?: [int | str] + + notSelector?: str + + ports?: [int | str] + + selector?: str + + serviceAccounts?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0SourceServiceAccounts + + services?: CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0SourceServices + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0SourceServiceAccounts: + """ + ServiceAccounts is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a matching service account. + + Attributes + ---------- + names : [str], default is Undefined, optional + Names is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account whose name is in the list. + selector : str, default is Undefined, optional + Selector is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account that matches the given label selector. If both Names and Selector are specified then they are AND'ed. + """ + + + names?: [str] + + selector?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecEgressItems0SourceServices: + """ + Services is an optional field that contains options for matching Kubernetes Services. If specified, only traffic that originates from or terminates at endpoints within the selected service(s) will be matched, and only to/from each endpoint's port. + Services cannot be specified on the same rule as Selector, NotSelector, NamespaceSelector, Nets, NotNets or ServiceAccounts. + Ports and NotPorts can only be specified with Services on ingress rules. + + Attributes + ---------- + name : str, default is Undefined, optional + Name specifies the name of a Kubernetes Service to match. + namespace : str, default is Undefined, optional + Namespace specifies the namespace of the given Service. If left empty, the rule will match within this policy's namespace. + """ + + + name?: str + + namespace?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0: + """ + A Rule encapsulates a set of match criteria and an action. Both selector-based security Policy and security Profiles reference rules - separated out as a list of rules for both ingress and egress packet matching. + Each positive match criteria has a negated version, prefixed with "Not". All the match criteria within a rule must be satisfied for a packet to match. A single rule can contain the positive and negative version of a match and both must be satisfied for the rule to match. + + Attributes + ---------- + action : str, default is Undefined, required + action + destination : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Destination, default is Undefined, optional + destination + http : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0HTTP, default is Undefined, optional + http + icmp : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Icmp, default is Undefined, optional + icmp + ipVersion : int, default is Undefined, optional + IPVersion is an optional field that restricts the rule to only match a specific IP version. + metadata : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Metadata, default is Undefined, optional + metadata + notICMP : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0NotICMP, default is Undefined, optional + not i c m p + notProtocol : int | str, default is Undefined, optional + NotProtocol is the negated version of the Protocol field. + $protocol : int | str, default is Undefined, optional + Protocol is an optional field that restricts the rule to only apply to traffic of a specific IP protocol. Required if any of the EntityRules contain Ports (because ports only apply to certain protocols). + Must be one of these string values: "TCP", "UDP", "ICMP", "ICMPv6", "SCTP", "UDPLite" or an integer in the range 1-255. + source : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Source, default is Undefined, optional + source + """ + + + action: str + + destination?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Destination + + http?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0HTTP + + icmp?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Icmp + + ipVersion?: int + + metadata?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Metadata + + notICMP?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0NotICMP + + notProtocol?: int | str + + $protocol?: int | str + + source?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Source + + + check: + regex.match(str(notProtocol), r"^.*") if notProtocol + regex.match(str($protocol), r"^.*") if $protocol + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Destination: + """ + Destination contains the match criteria that apply to destination entity. + + Attributes + ---------- + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field that contains a selector expression. Only traffic that originates from (or terminates at) endpoints within the selected namespaces will be matched. When both NamespaceSelector and another selector are defined on the same rule, then only workload endpoints that are matched by both selectors will be selected by the rule. + For NetworkPolicy, an empty NamespaceSelector implies that the Selector is limited to selecting only workload endpoints in the same namespace as the NetworkPolicy. + For NetworkPolicy, `global()` NamespaceSelector implies that the Selector is limited to selecting only GlobalNetworkSet or HostEndpoint. + For GlobalNetworkPolicy, an empty NamespaceSelector implies the Selector applies to workload endpoints across all namespaces. + nets : [str], default is Undefined, optional + Nets is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) IP addresses in any of the given subnets. + notNets : [str], default is Undefined, optional + NotNets is the negated version of the Nets field. + notPorts : [int | str], default is Undefined, optional + NotPorts is the negated version of the Ports field. Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + notSelector : str, default is Undefined, optional + NotSelector is the negated version of the Selector field. See Selector field for subtleties with negated selectors. + ports : [int | str], default is Undefined, optional + Ports is an optional field that restricts the rule to only apply to traffic that has a source (destination) port that matches one of these ranges/values. This value is a list of integers or strings that represent ranges of ports. + Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + selector : str, default is Undefined, optional + Selector is an optional field that contains a selector expression (see Policy for sample syntax). Only traffic that originates from (terminates at) endpoints matching the selector will be matched. + Note that: in addition to the negated version of the Selector (see NotSelector below), the selector expression syntax itself supports negation. The two types of negation are subtly different. One negates the set of matched endpoints, the other negates the whole match: + Selector = "!has(my_label)" matches packets that are from other Calico-controlled endpoints that do not have the label "my_label". + NotSelector = "has(my_label)" matches packets that are not from Calico-controlled endpoints that do have the label "my_label". + The effect is that the latter will accept packets from non-Calico sources whereas the former is limited to packets from Calico-controlled endpoints. + serviceAccounts : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0DestinationServiceAccounts, default is Undefined, optional + service accounts + services : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0DestinationServices, default is Undefined, optional + services + """ + + + namespaceSelector?: str + + nets?: [str] + + notNets?: [str] + + notPorts?: [int | str] + + notSelector?: str + + ports?: [int | str] + + selector?: str + + serviceAccounts?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0DestinationServiceAccounts + + services?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0DestinationServices + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0DestinationServiceAccounts: + """ + ServiceAccounts is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a matching service account. + + Attributes + ---------- + names : [str], default is Undefined, optional + Names is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account whose name is in the list. + selector : str, default is Undefined, optional + Selector is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account that matches the given label selector. If both Names and Selector are specified then they are AND'ed. + """ + + + names?: [str] + + selector?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0DestinationServices: + """ + Services is an optional field that contains options for matching Kubernetes Services. If specified, only traffic that originates from or terminates at endpoints within the selected service(s) will be matched, and only to/from each endpoint's port. + Services cannot be specified on the same rule as Selector, NotSelector, NamespaceSelector, Nets, NotNets or ServiceAccounts. + Ports and NotPorts can only be specified with Services on ingress rules. + + Attributes + ---------- + name : str, default is Undefined, optional + Name specifies the name of a Kubernetes Service to match. + namespace : str, default is Undefined, optional + Namespace specifies the namespace of the given Service. If left empty, the rule will match within this policy's namespace. + """ + + + name?: str + + namespace?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0HTTP: + """ + HTTP contains match criteria that apply to HTTP requests. + + Attributes + ---------- + methods : [str], default is Undefined, optional + Methods is an optional field that restricts the rule to apply only to HTTP requests that use one of the listed HTTP Methods (e.g. GET, PUT, etc.) Multiple methods are OR'd together. + paths : [CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0HTTPPathsItems0], default is Undefined, optional + Paths is an optional field that restricts the rule to apply to HTTP requests that use one of the listed HTTP Paths. Multiple paths are OR'd together. e.g: - exact: /foo - prefix: /bar NOTE: Each entry may ONLY specify either a `exact` or a `prefix` match. The validator will check for it. + """ + + + methods?: [str] + + paths?: [CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0HTTPPathsItems0] + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0HTTPPathsItems0: + """ + HTTPPath specifies an HTTP path to match. It may be either of the form: exact: : which matches the path exactly or prefix: : which matches the path prefix + + Attributes + ---------- + exact : str, default is Undefined, optional + exact + prefix : str, default is Undefined, optional + prefix + """ + + + exact?: str + + prefix?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Icmp: + """ + ICMP is an optional field that restricts the rule to apply to a specific type and code of ICMP traffic. This should only be specified if the Protocol field is set to "ICMP" or "ICMPv6". + + Attributes + ---------- + code : int, default is Undefined, optional + Match on a specific ICMP code. If specified, the Type value must also be specified. This is a technical limitation imposed by the kernel's iptables firewall, which Calico uses to enforce the rule. + $type : int, default is Undefined, optional + Match on a specific ICMP type. For example a value of 8 refers to ICMP Echo Request (i.e. pings). + """ + + + code?: int + + $type?: int + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Metadata: + """ + Metadata contains additional information for this rule + + Attributes + ---------- + annotations : {str:str}, default is Undefined, optional + Annotations is a set of key value pairs that give extra information about the rule + """ + + + annotations?: {str:str} + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0NotICMP: + """ + NotICMP is the negated version of the ICMP field. + + Attributes + ---------- + code : int, default is Undefined, optional + Match on a specific ICMP code. If specified, the Type value must also be specified. This is a technical limitation imposed by the kernel's iptables firewall, which Calico uses to enforce the rule. + $type : int, default is Undefined, optional + Match on a specific ICMP type. For example a value of 8 refers to ICMP Echo Request (i.e. pings). + """ + + + code?: int + + $type?: int + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0Source: + """ + Source contains the match criteria that apply to source entity. + + Attributes + ---------- + namespaceSelector : str, default is Undefined, optional + NamespaceSelector is an optional field that contains a selector expression. Only traffic that originates from (or terminates at) endpoints within the selected namespaces will be matched. When both NamespaceSelector and another selector are defined on the same rule, then only workload endpoints that are matched by both selectors will be selected by the rule. + For NetworkPolicy, an empty NamespaceSelector implies that the Selector is limited to selecting only workload endpoints in the same namespace as the NetworkPolicy. + For NetworkPolicy, `global()` NamespaceSelector implies that the Selector is limited to selecting only GlobalNetworkSet or HostEndpoint. + For GlobalNetworkPolicy, an empty NamespaceSelector implies the Selector applies to workload endpoints across all namespaces. + nets : [str], default is Undefined, optional + Nets is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) IP addresses in any of the given subnets. + notNets : [str], default is Undefined, optional + NotNets is the negated version of the Nets field. + notPorts : [int | str], default is Undefined, optional + NotPorts is the negated version of the Ports field. Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + notSelector : str, default is Undefined, optional + NotSelector is the negated version of the Selector field. See Selector field for subtleties with negated selectors. + ports : [int | str], default is Undefined, optional + Ports is an optional field that restricts the rule to only apply to traffic that has a source (destination) port that matches one of these ranges/values. This value is a list of integers or strings that represent ranges of ports. + Since only some protocols have ports, if any ports are specified it requires the Protocol match in the Rule to be set to "TCP" or "UDP". + selector : str, default is Undefined, optional + Selector is an optional field that contains a selector expression (see Policy for sample syntax). Only traffic that originates from (terminates at) endpoints matching the selector will be matched. + Note that: in addition to the negated version of the Selector (see NotSelector below), the selector expression syntax itself supports negation. The two types of negation are subtly different. One negates the set of matched endpoints, the other negates the whole match: + Selector = "!has(my_label)" matches packets that are from other Calico-controlled endpoints that do not have the label "my_label". + NotSelector = "has(my_label)" matches packets that are not from Calico-controlled endpoints that do have the label "my_label". + The effect is that the latter will accept packets from non-Calico sources whereas the former is limited to packets from Calico-controlled endpoints. + serviceAccounts : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0SourceServiceAccounts, default is Undefined, optional + service accounts + services : CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0SourceServices, default is Undefined, optional + services + """ + + + namespaceSelector?: str + + nets?: [str] + + notNets?: [str] + + notPorts?: [int | str] + + notSelector?: str + + ports?: [int | str] + + selector?: str + + serviceAccounts?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0SourceServiceAccounts + + services?: CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0SourceServices + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0SourceServiceAccounts: + """ + ServiceAccounts is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a matching service account. + + Attributes + ---------- + names : [str], default is Undefined, optional + Names is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account whose name is in the list. + selector : str, default is Undefined, optional + Selector is an optional field that restricts the rule to only apply to traffic that originates from (or terminates at) a pod running as a service account that matches the given label selector. If both Names and Selector are specified then they are AND'ed. + """ + + + names?: [str] + + selector?: str + + +schema CrdProjectcalicoOrgV1NetworkPolicySpecIngressItems0SourceServices: + """ + Services is an optional field that contains options for matching Kubernetes Services. If specified, only traffic that originates from or terminates at endpoints within the selected service(s) will be matched, and only to/from each endpoint's port. + Services cannot be specified on the same rule as Selector, NotSelector, NamespaceSelector, Nets, NotNets or ServiceAccounts. + Ports and NotPorts can only be specified with Services on ingress rules. + + Attributes + ---------- + name : str, default is Undefined, optional + Name specifies the name of a Kubernetes Service to match. + namespace : str, default is Undefined, optional + Namespace specifies the namespace of the given Service. If left empty, the rule will match within this policy's namespace. + """ + + + name?: str + + namespace?: str + + diff --git a/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_network_set.k b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_network_set.k new file mode 100644 index 00000000..844f6902 --- /dev/null +++ b/cluster-api-provider-vsphere/v1/crd_projectcalico_org_v1_network_set.k @@ -0,0 +1,47 @@ +""" +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 NetworkSet: + """ + NetworkSet is the Namespaced-equivalent of the GlobalNetworkSet. + + Attributes + ---------- + apiVersion : str, default is "crd.projectcalico.org/v1", 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 "NetworkSet", 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 : CrdProjectcalicoOrgV1NetworkSetSpec, default is Undefined, optional + spec + """ + + + apiVersion: "crd.projectcalico.org/v1" = "crd.projectcalico.org/v1" + + kind: "NetworkSet" = "NetworkSet" + + metadata?: v1.ObjectMeta + + spec?: CrdProjectcalicoOrgV1NetworkSetSpec + + +schema CrdProjectcalicoOrgV1NetworkSetSpec: + """ + NetworkSetSpec contains the specification for a NetworkSet resource. + + Attributes + ---------- + nets : [str], default is Undefined, optional + The list of IP networks that belong to this set. + """ + + + nets?: [str] + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_cluster_virtual_machine_image.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_cluster_virtual_machine_image.k new file mode 100644 index 00000000..bcd35f4b --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_cluster_virtual_machine_image.k @@ -0,0 +1,281 @@ +""" +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 ClusterVirtualMachineImage: + """ + ClusterVirtualMachineImage is the schema for the clustervirtualmachineimage API A ClusterVirtualMachineImage represents the desired specification and the observed status of a ClusterVirtualMachineImage instance. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "ClusterVirtualMachineImage", 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 : VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "ClusterVirtualMachineImage" = "ClusterVirtualMachineImage" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpec + + status?: VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatus + + +schema VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpec: + """ + VirtualMachineImageSpec defines the desired state of VirtualMachineImage. + + Attributes + ---------- + hwVersion : int, default is Undefined, optional + HardwareVersion describes the virtual hardware version of the image + imageID : str, default is Undefined, required + ImageID is a unique identifier exposed by the provider of this VirtualMachineImage. + imageSourceType : str, default is Undefined, optional + ImageSourceType describes the type of content source of the VirtualMachineImage. The only Content Source supported currently is the vSphere Content Library. + osInfo : VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecOsInfo, default is Undefined, optional + os info + ovfEnv : {str:VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecOvfEnvAnon}, default is Undefined, optional + OVFEnv describes the user configurable customization parameters of the VirtualMachineImage. + productInfo : VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecProductInfo, default is Undefined, optional + product info + providerRef : VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecProviderRef, default is Undefined, required + provider ref + $type : str, default is Undefined, required + Type describes the type of the VirtualMachineImage. Currently, the only supported image is "OVF" + """ + + + hwVersion?: int + + imageID: str + + imageSourceType?: str + + osInfo?: VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecOsInfo + + ovfEnv?: {str:VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecOvfEnvAnon} + + productInfo?: VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecProductInfo + + providerRef: VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecProviderRef + + $type: str + + +schema VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecOsInfo: + """ + OSInfo describes the attributes of the VirtualMachineImage relating to the Operating System contained in the image. + + Attributes + ---------- + $type : str, default is Undefined, optional + Type typically describes the type of the guest operating system. + version : str, default is Undefined, optional + Version typically describes the version of the guest operating system. + """ + + + $type?: str + + version?: str + + +schema VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecOvfEnvAnon: + """ + OvfProperty describes information related to a user configurable property element that is supported by VirtualMachineImage and can be customized during VirtualMachine creation. + + Attributes + ---------- + default : str, default is Undefined, optional + Default describes the default value of the ovf key. + description : str, default is Undefined, optional + Description contains the value of the OVF property's optional "Description" element. + key : str, default is Undefined, required + Key describes the key of the ovf property. + label : str, default is Undefined, optional + Label contains the value of the OVF property's optional "Label" element. + $type : str, default is Undefined, required + Type describes the type of the ovf property. + """ + + + default?: str + + description?: str + + key: str + + label?: str + + $type: str + + +schema VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecProductInfo: + """ + ProductInfo describes the attributes of the VirtualMachineImage relating to the product contained in the image. + + Attributes + ---------- + fullVersion : str, default is Undefined, optional + FullVersion typically describes a long-form version of the image. + product : str, default is Undefined, optional + Product typically describes the type of product contained in the image. + vendor : str, default is Undefined, optional + Vendor typically describes the name of the vendor that is producing the image. + version : str, default is Undefined, optional + Version typically describes a short-form version of the image. + """ + + + fullVersion?: str + + product?: str + + vendor?: str + + version?: str + + +schema VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageSpecProviderRef: + """ + ProviderRef is a reference to a content provider object that describes a provider. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + kind : str, default is Undefined, required + Kind is the type of resource being referenced. + name : str, default is Undefined, required + Name is the name of resource being referenced. + namespace : str, default is Undefined, optional + Namespace of the resource being referenced. If empty, cluster scoped resource is assumed. + """ + + + apiVersion?: str + + kind: str + + name: str + + namespace?: str + + +schema VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatus: + """ + VirtualMachineImageStatus defines the observed state of VirtualMachineImage. + + Attributes + ---------- + conditions : [VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatusConditionsItems0], default is Undefined, optional + Conditions describes the current condition information of the VirtualMachineImage object. e.g. if the OS type is supported or image is supported by VMService + contentLibraryRef : VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatusContentLibraryRef, default is Undefined, optional + content library ref + contentVersion : str, default is Undefined, optional + ContentVersion describes the observed content version of this VirtualMachineImage that was last successfully synced with the vSphere content library item. + firmware : str, default is Undefined, optional + Firmware describe the firmware type used by this VirtualMachineImage. eg: bios, efi. + imageName : str, default is Undefined, optional + ImageName describes the display name of this VirtualMachineImage. + imageSupported : bool, default is Undefined, optional + ImageSupported indicates whether the VirtualMachineImage is supported by VMService. A VirtualMachineImage is supported by VMService if the following conditions are true: - VirtualMachineImageV1Alpha1CompatibleCondition + internalId : str, default is Undefined, optional + Deprecated + powerState : str, default is Undefined, optional + Deprecated + uuid : str, default is Undefined, optional + Deprecated + """ + + + conditions?: [VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatusConditionsItems0] + + contentLibraryRef?: VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatusContentLibraryRef + + contentVersion?: str + + firmware?: str + + imageName?: str + + imageSupported?: bool + + internalId?: str + + powerState?: str + + uuid?: str + + +schema VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatusConditionsItems0: + """ + Condition defines an observation of a VM Operator API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 disambiguate is important. + """ + + + lastTransitionTime?: str + + message?: str + + reason?: str + + severity?: str + + status: str + + $type: str + + +schema VmoperatorVmwareComV1alpha1ClusterVirtualMachineImageStatusContentLibraryRef: + """ + ContentLibraryRef is a reference to the source ContentLibrary/ClusterContentLibrary resource. + + Attributes + ---------- + apiGroup : str, default is Undefined, optional + APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + kind : str, default is Undefined, required + Kind is the type of resource being referenced + name : str, default is Undefined, required + Name is the name of resource being referenced + """ + + + apiGroup?: str + + kind: str + + name: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_library_provider.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_library_provider.k new file mode 100644 index 00000000..5247fb31 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_library_provider.k @@ -0,0 +1,51 @@ +""" +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 ContentLibraryProvider: + """ + ContentLibraryProvider is the Schema for the contentlibraryproviders API. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "ContentLibraryProvider", 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 : VmoperatorVmwareComV1alpha1ContentLibraryProviderSpec, default is Undefined, optional + spec + status : any, default is Undefined, optional + ContentLibraryProviderStatus defines the observed state of ContentLibraryProvider Can include fields indicating when was the last time VM images were updated from a library. + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "ContentLibraryProvider" = "ContentLibraryProvider" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1ContentLibraryProviderSpec + + status?: any + + +schema VmoperatorVmwareComV1alpha1ContentLibraryProviderSpec: + """ + ContentLibraryProviderSpec defines the desired state of ContentLibraryProvider. + + Attributes + ---------- + uuid : str, default is Undefined, optional + UUID describes the UUID of a vSphere content library. It is the unique identifier for a vSphere content library. + """ + + + uuid?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_source.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_source.k new file mode 100644 index 00000000..41f4d43b --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_source.k @@ -0,0 +1,77 @@ +""" +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 ContentSource: + """ + ContentSource is the Schema for the contentsources API. A ContentSource represents the desired specification and the observed status of a ContentSource instance. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "ContentSource", 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 : VmoperatorVmwareComV1alpha1ContentSourceSpec, default is Undefined, optional + spec + status : any, default is Undefined, optional + ContentSourceStatus defines the observed state of ContentSource. + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "ContentSource" = "ContentSource" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1ContentSourceSpec + + status?: any + + +schema VmoperatorVmwareComV1alpha1ContentSourceSpec: + """ + ContentSourceSpec defines the desired state of ContentSource. + + Attributes + ---------- + providerRef : VmoperatorVmwareComV1alpha1ContentSourceSpecProviderRef, default is Undefined, optional + provider ref + """ + + + providerRef?: VmoperatorVmwareComV1alpha1ContentSourceSpecProviderRef + + +schema VmoperatorVmwareComV1alpha1ContentSourceSpecProviderRef: + """ + ProviderRef is a reference to a content provider object that describes a provider. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + kind : str, default is Undefined, required + Kind is the type of resource being referenced. + name : str, default is Undefined, required + Name is the name of resource being referenced. + namespace : str, default is Undefined, optional + Namespace of the resource being referenced. If empty, cluster scoped resource is assumed. + """ + + + apiVersion?: str + + kind: str + + name: str + + namespace?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_source_binding.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_source_binding.k new file mode 100644 index 00000000..12a97071 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_content_source_binding.k @@ -0,0 +1,55 @@ +""" +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 ContentSourceBinding: + """ + ContentSourceBinding is an object that represents a ContentSource to Namespace mapping. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 + contentSourceRef : VmoperatorVmwareComV1alpha1ContentSourceBindingContentSourceRef, default is Undefined, optional + content source ref + kind : str, default is "ContentSourceBinding", 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 + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + contentSourceRef?: VmoperatorVmwareComV1alpha1ContentSourceBindingContentSourceRef + + kind: "ContentSourceBinding" = "ContentSourceBinding" + + metadata?: v1.ObjectMeta + + +schema VmoperatorVmwareComV1alpha1ContentSourceBindingContentSourceRef: + """ + ContentSourceRef is a reference to a ContentSource object. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + kind : str, default is Undefined, optional + Kind is the type of resource being referenced. + name : str, default is Undefined, required + Name is the name of resource being referenced. + """ + + + apiVersion?: str + + kind?: str + + name: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine.k new file mode 100644 index 00000000..9b8afae2 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine.k @@ -0,0 +1,548 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema VirtualMachine: + """ + VirtualMachine is the Schema for the virtualmachines API. A VirtualMachine represents the desired specification and the observed status of a VirtualMachine instance. A VirtualMachine is realized by the VirtualMachine controller on a backing Virtual Infrastructure provider such as vSphere. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "VirtualMachine", 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 : VmoperatorVmwareComV1alpha1VirtualMachineSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha1VirtualMachineStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "VirtualMachine" = "VirtualMachine" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1VirtualMachineSpec + + status?: VmoperatorVmwareComV1alpha1VirtualMachineStatus + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpec: + """ + VirtualMachineSpec defines the desired state of a VirtualMachine. + + Attributes + ---------- + advancedOptions : VmoperatorVmwareComV1alpha1VirtualMachineSpecAdvancedOptions, default is Undefined, optional + advanced options + className : str, default is Undefined, required + ClassName describes the name of a VirtualMachineClass that is to be used as the overlaid resource configuration of VirtualMachine. A VirtualMachineClass is used to further customize the attributes of the VirtualMachine instance. See VirtualMachineClass for more description. + imageName : str, default is Undefined, required + ImageName describes the name of a VirtualMachineImage that is to be used as the base Operating System image of the desired VirtualMachine instances. The VirtualMachineImage resources can be introspected to discover identifying attributes that may help users to identify the desired image to use. + networkInterfaces : [VmoperatorVmwareComV1alpha1VirtualMachineSpecNetworkInterfacesItems0], default is Undefined, optional + NetworkInterfaces describes a list of VirtualMachineNetworkInterfaces to be configured on the VirtualMachine instance. Each of these VirtualMachineNetworkInterfaces describes external network integration configurations that are to be used by the VirtualMachine controller when integrating the VirtualMachine into one or more external networks. + nextRestartTime : str, default is Undefined, optional + NextRestartTime may be used to restart the VM, in accordance with RestartMode, by setting the value of this field to "now" (case-insensitive). + A mutating webhook changes this value to the current time (UTC), which the VM controller then uses to determine the VM should be restarted by comparing the value to the timestamp of the last time the VM was restarted. + Please note it is not possible to schedule future restarts using this field. The only value that users may set is the string "now" (case-insensitive). + ports : [VmoperatorVmwareComV1alpha1VirtualMachineSpecPortsItems0], default is Undefined, optional + Ports is currently unused and can be considered deprecated. + powerOffMode : str, default is "hard", optional + PowerOffMode describes the desired behavior when powering off a VM. + There are three, supported power off modes: hard, soft, and trySoft. The first mode, hard, is the equivalent of a physical system's power cord being ripped from the wall. The soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully shutdown the VM. Its variant, trySoft, first attempts a graceful shutdown, and if that fails or the VM is not in a powered off state after five minutes, the VM is halted. + If omitted, the mode defaults to hard. + powerState : str, default is Undefined, optional + PowerState describes the desired power state of a VirtualMachine. + Please note this field may be omitted when creating a new VM and will default to "poweredOn." However, once the field is set to a non-empty value, it may no longer be set to an empty value. + Additionally, setting this value to "suspended" is not supported when creating a new VM. The valid values when creating a new VM are "poweredOn" and "poweredOff." An empty value is also allowed on create since this value defaults to "poweredOn" for new VMs. + readinessProbe : VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbe, default is Undefined, optional + readiness probe + resourcePolicyName : str, default is Undefined, optional + ResourcePolicyName describes the name of a VirtualMachineSetResourcePolicy to be used when creating the VirtualMachine instance. + restartMode : str, default is "hard", optional + RestartMode describes the desired behavior for restarting a VM when spec.nextRestartTime is set to "now" (case-insensitive). + There are three, supported suspend modes: hard, soft, and trySoft. The first mode, hard, is where vSphere resets the VM without any interaction inside of the guest. The soft mode requires the VM's guest to have VM Tools installed and asks the guest to restart the VM. Its variant, trySoft, first attempts a soft restart, and if that fails or does not complete within five minutes, the VM is hard reset. + If omitted, the mode defaults to hard. + storageClass : str, default is Undefined, optional + StorageClass describes the name of a StorageClass that should be used to configure storage-related attributes of the VirtualMachine instance. + suspendMode : str, default is "hard", optional + SuspendMode describes the desired behavior when suspending a VM. + There are three, supported suspend modes: hard, soft, and trySoft. The first mode, hard, is where vSphere suspends the VM to disk without any interaction inside of the guest. The soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully suspend the VM. Its variant, trySoft, first attempts a graceful suspend, and if that fails or the VM is not in a put into standby by the guest after five minutes, the VM is suspended. + If omitted, the mode defaults to hard. + vmMetadata : VmoperatorVmwareComV1alpha1VirtualMachineSpecVMMetadata, default is Undefined, optional + vm metadata + volumes : [VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0], default is Undefined, optional + Volumes describes the list of VirtualMachineVolumes that are desired to be attached to the VirtualMachine. Each of these volumes specifies a volume identity that the VirtualMachine controller will attempt to satisfy, potentially with an external Volume Management service. + """ + + + advancedOptions?: VmoperatorVmwareComV1alpha1VirtualMachineSpecAdvancedOptions + + className: str + + imageName: str + + networkInterfaces?: [VmoperatorVmwareComV1alpha1VirtualMachineSpecNetworkInterfacesItems0] + + nextRestartTime?: str + + ports?: [VmoperatorVmwareComV1alpha1VirtualMachineSpecPortsItems0] + + powerOffMode?: "hard" | "soft" | "trySoft" = "hard" + + powerState?: "poweredOn" | "poweredOff" | "suspended" + + readinessProbe?: VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbe + + resourcePolicyName?: str + + restartMode?: "hard" | "soft" | "trySoft" = "hard" + + storageClass?: str + + suspendMode?: "hard" | "soft" | "trySoft" = "hard" + + vmMetadata?: VmoperatorVmwareComV1alpha1VirtualMachineSpecVMMetadata + + volumes?: [VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0] + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecAdvancedOptions: + """ + AdvancedOptions describes a set of optional, advanced options for configuring a VirtualMachine + + Attributes + ---------- + changeBlockTracking : bool, default is Undefined, optional + ChangeBlockTracking specifies the enablement of incremental backup support for this VirtualMachine, which can be utilized by external backup systems such as VMware Data Recovery. + defaultVolumeProvisioningOptions : VmoperatorVmwareComV1alpha1VirtualMachineSpecAdvancedOptionsDefaultVolumeProvisioningOptions, default is Undefined, optional + default volume provisioning options + """ + + + changeBlockTracking?: bool + + defaultVolumeProvisioningOptions?: VmoperatorVmwareComV1alpha1VirtualMachineSpecAdvancedOptionsDefaultVolumeProvisioningOptions + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecAdvancedOptionsDefaultVolumeProvisioningOptions: + """ + DefaultProvisioningOptions specifies the provisioning type to be used by default for VirtualMachine volumes exclusively owned by this VirtualMachine. This does not apply to PersistentVolumeClaim volumes that are created and managed externally. + + Attributes + ---------- + eagerZeroed : bool, default is Undefined, optional + EagerZeroed specifies whether to use eager zero provisioning for the VirtualMachineVolume. An eager zeroed thick disk has all space allocated and wiped clean of any previous contents on the physical media at creation time. Such disks may take longer time during creation compared to other disk formats. EagerZeroed is only applicable if ThinProvisioned is false. This is validated by the webhook. + thinProvisioned : bool, default is Undefined, optional + ThinProvisioned specifies whether to use thin provisioning for the VirtualMachineVolume. This means a sparse (allocate on demand) format with additional space optimizations. + """ + + + eagerZeroed?: bool + + thinProvisioned?: bool + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecNetworkInterfacesItems0: + """ + VirtualMachineNetworkInterface defines the properties of a network interface to attach to a VirtualMachine instance. A VirtualMachineNetworkInterface describes network interface configuration that is used by the VirtualMachine controller when integrating the VirtualMachine into a VirtualNetwork. Currently, only NSX-T and vSphere Distributed Switch (VDS) type network integrations are supported using this VirtualMachineNetworkInterface structure. + + Attributes + ---------- + ethernetCardType : str, default is Undefined, optional + EthernetCardType describes an optional ethernet card that should be used by the VirtualNetworkInterface (vNIC) associated with this network integration. The default is "vmxnet3". + networkName : str, default is Undefined, optional + NetworkName describes the name of an existing virtual network that this interface should be added to. For "nsx-t" NetworkType, this is the name of a pre-existing NSX-T VirtualNetwork. If unspecified, the default network for the namespace will be used. For "vsphere-distributed" NetworkType, the NetworkName must be specified. + networkType : str, default is Undefined, optional + NetworkType describes the type of VirtualNetwork that is referenced by the NetworkName. Currently, the only supported NetworkTypes are "nsx-t" and "vsphere-distributed". + providerRef : VmoperatorVmwareComV1alpha1VirtualMachineSpecNetworkInterfacesItems0ProviderRef, default is Undefined, optional + provider ref + """ + + + ethernetCardType?: str + + networkName?: str + + networkType?: str + + providerRef?: VmoperatorVmwareComV1alpha1VirtualMachineSpecNetworkInterfacesItems0ProviderRef + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecNetworkInterfacesItems0ProviderRef: + """ + ProviderRef is reference to a network interface provider object that specifies the network interface configuration. If unset, default configuration is assumed. + + Attributes + ---------- + apiGroup : str, default is Undefined, required + APIGroup is the group for the resource being referenced. + apiVersion : str, default is Undefined, optional + API version of the referent. + kind : str, default is Undefined, required + Kind is the type of resource being referenced + name : str, default is Undefined, required + Name is the name of resource being referenced + """ + + + apiGroup: str + + apiVersion?: str + + kind: str + + name: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecPortsItems0: + """ + VirtualMachinePort is unused and can be considered deprecated. + + Attributes + ---------- + ip : str, default is Undefined, required + ip + name : str, default is Undefined, required + name + port : int, default is Undefined, required + port + $protocol : str, default is "TCP", required + protocol + """ + + + ip: str + + name: str + + port: int + + $protocol: str = "TCP" + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbe: + """ + ReadinessProbe describes a network probe that can be used to determine if the VirtualMachine is available and responding to the probe. + + Attributes + ---------- + guestHeartbeat : VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbeGuestHeartbeat, default is Undefined, optional + guest heartbeat + periodSeconds : int, default is Undefined, optional + PeriodSeconds specifics how often (in seconds) to perform the probe. Defaults to 10 seconds. Minimum value is 1. + tcpSocket : VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbeTCPSocket, default is Undefined, optional + tcp socket + timeoutSeconds : int, default is Undefined, optional + TimeoutSeconds specifies a number of seconds after which the probe times out. Defaults to 10 seconds. Minimum value is 1. + """ + + + guestHeartbeat?: VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbeGuestHeartbeat + + periodSeconds?: int + + tcpSocket?: VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbeTCPSocket + + timeoutSeconds?: int + + + check: + periodSeconds >= 1 + timeoutSeconds <= 60 + timeoutSeconds >= 1 + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbeGuestHeartbeat: + """ + GuestHeartbeat specifies an action involving the guest heartbeat status. + + Attributes + ---------- + thresholdStatus : str, default is "green", optional + ThresholdStatus is the value that the guest heartbeat status must be at or above to be considered successful. + """ + + + thresholdStatus?: "yellow" | "green" = "green" + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecReadinessProbeTCPSocket: + """ + TCPSocket specifies an action involving a TCP port. + + Attributes + ---------- + host : str, default is Undefined, optional + Host is an optional host name to connect to. Host defaults to the VirtualMachine IP. + port : int | str, default is Undefined, required + Port specifies a number or name of the port to access on the VirtualMachine. If the format of port is a number, it must be in the range 1 to 65535. If the format of name is a string, it must be an IANA_SVC_NAME. + """ + + + host?: str + + port: int | str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecVMMetadata: + """ + VmMetadata describes any optional metadata that should be passed to the Guest OS. + + Attributes + ---------- + configMapName : str, default is Undefined, optional + ConfigMapName describes the name of the ConfigMap, in the same Namespace as the VirtualMachine, that should be used for VirtualMachine metadata. The contents of the Data field of the ConfigMap is used as the VM Metadata. The format of the contents of the VM Metadata are not parsed or interpreted by the VirtualMachine controller. Please note, this field and SecretName are mutually exclusive. + secretName : str, default is Undefined, optional + SecretName describes the name of the Secret, in the same Namespace as the VirtualMachine, that should be used for VirtualMachine metadata. The contents of the Data field of the Secret is used as the VM Metadata. The format of the contents of the VM Metadata are not parsed or interpreted by the VirtualMachine controller. Please note, this field and ConfigMapName are mutually exclusive. + transport : str, default is Undefined, optional + Transport describes the name of a supported VirtualMachineMetadata transport protocol. Currently, the only supported transport protocols are "ExtraConfig", "OvfEnv" and "CloudInit". + """ + + + configMapName?: str + + secretName?: str + + transport?: "ExtraConfig" | "OvfEnv" | "vAppConfig" | "CloudInit" | "Sysprep" + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0: + """ + VirtualMachineVolume describes a Volume that should be attached to a specific VirtualMachine. Only one of PersistentVolumeClaim, VsphereVolume should be specified. + + Attributes + ---------- + name : str, default is Undefined, required + Name specifies the name of the VirtualMachineVolume. Each volume within the scope of a VirtualMachine must have a unique name. + persistentVolumeClaim : VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0PersistentVolumeClaim, default is Undefined, optional + persistent volume claim + vSphereVolume : VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0VSphereVolume, default is Undefined, optional + v sphere volume + """ + + + name: str + + persistentVolumeClaim?: VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0PersistentVolumeClaim + + vSphereVolume?: VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0VSphereVolume + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0PersistentVolumeClaim: + """ + PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. The PersistentVolumeClaim must match one of the following: + * A volume provisioned (either statically or dynamically) by the cluster's CSI provider. + * An instance volume with a lifecycle coupled to the VM. + + Attributes + ---------- + claimName : str, default is Undefined, required + claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + instanceVolumeClaim : VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0PersistentVolumeClaimInstanceVolumeClaim, default is Undefined, optional + instance volume claim + readOnly : bool, default is Undefined, optional + readOnly Will force the ReadOnly setting in VolumeMounts. Default false. + """ + + + claimName: str + + instanceVolumeClaim?: VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0PersistentVolumeClaimInstanceVolumeClaim + + readOnly?: bool + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0PersistentVolumeClaimInstanceVolumeClaim: + """ + InstanceVolumeClaim is set if the PVC is backed by instance storage. + + Attributes + ---------- + size : int | str, default is Undefined, required + Size is the size of the requested instance storage volume. + storageClass : str, default is Undefined, required + StorageClass is the name of the Kubernetes StorageClass that provides the backing storage for this instance storage volume. + """ + + + size: int | str + + storageClass: str + + + check: + regex.match(str(size), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSpecVolumesItems0VSphereVolume: + """ + VsphereVolume represents a reference to a VsphereVolumeSource in the same namespace. Only one of PersistentVolumeClaim or VsphereVolume can be specified. This is enforced via a webhook + + Attributes + ---------- + capacity : {str:int | str}, default is Undefined, optional + A description of the virtual volume's resources and capacity + deviceKey : int, default is Undefined, optional + Device key of vSphere disk. + """ + + + capacity?: {str:int | str} + + deviceKey?: int + + +schema VmoperatorVmwareComV1alpha1VirtualMachineStatus: + """ + VirtualMachineStatus defines the observed state of a VirtualMachine instance. + + Attributes + ---------- + biosUUID : str, default is Undefined, optional + BiosUUID describes a unique identifier provided by the underlying infrastructure provider that is exposed to the Guest OS BIOS as a unique hardware identifier. + changeBlockTracking : bool, default is Undefined, optional + ChangeBlockTracking describes the CBT enablement status on the VirtualMachine. + conditions : [VmoperatorVmwareComV1alpha1VirtualMachineStatusConditionsItems0], default is Undefined, optional + Conditions describes the current condition information of the VirtualMachine. + host : str, default is Undefined, optional + Host describes the hostname or IP address of the infrastructure host that the VirtualMachine is executing on. + instanceUUID : str, default is Undefined, optional + InstanceUUID describes the unique instance UUID provided by the underlying infrastructure provider, such as vSphere. + lastRestartTime : str, default is Undefined, optional + LastRestartTime describes the last time the VM was restarted. + networkInterfaces : [VmoperatorVmwareComV1alpha1VirtualMachineStatusNetworkInterfacesItems0], default is Undefined, optional + NetworkInterfaces describes a list of current status information for each network interface that is desired to be attached to the VirtualMachine. + phase : str, default is Undefined, optional + Phase describes the current phase information of the VirtualMachine. + powerState : str, default is Undefined, optional + PowerState describes the current power state of the VirtualMachine. + uniqueID : str, default is Undefined, optional + UniqueID describes a unique identifier that is provided by the underlying infrastructure provider, such as vSphere. + vmIp : str, default is Undefined, optional + VmIp describes the Primary IP address assigned to the guest operating system, if known. Multiple IPs can be available for the VirtualMachine. Refer to networkInterfaces in the VirtualMachine status for additional IPs + volumes : [VmoperatorVmwareComV1alpha1VirtualMachineStatusVolumesItems0], default is Undefined, optional + Volumes describes a list of current status information for each Volume that is desired to be attached to the VirtualMachine. + zone : str, default is Undefined, optional + Zone describes the availability zone where the VirtualMachine has been scheduled. Please note this field may be empty when the cluster is not zone-aware. + """ + + + biosUUID?: str + + changeBlockTracking?: bool + + conditions?: [VmoperatorVmwareComV1alpha1VirtualMachineStatusConditionsItems0] + + host?: str + + instanceUUID?: str + + lastRestartTime?: str + + networkInterfaces?: [VmoperatorVmwareComV1alpha1VirtualMachineStatusNetworkInterfacesItems0] + + phase?: str + + powerState?: "poweredOn" | "poweredOff" | "suspended" + + uniqueID?: str + + vmIp?: str + + volumes?: [VmoperatorVmwareComV1alpha1VirtualMachineStatusVolumesItems0] + + zone?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineStatusConditionsItems0: + """ + Condition defines an observation of a VM Operator API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 disambiguate is important. + """ + + + lastTransitionTime?: str + + message?: str + + reason?: str + + severity?: str + + status: str + + $type: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineStatusNetworkInterfacesItems0: + """ + NetworkInterfaceStatus defines the observed state of network interfaces attached to the VirtualMachine as seen by the Guest OS and VMware tools. + + Attributes + ---------- + connected : bool, default is Undefined, required + Connected represents whether the network interface is connected or not. + ipAddresses : [str], default is Undefined, optional + IpAddresses represents zero, one or more IP addresses assigned to the network interface in CIDR notation. For eg, "192.0.2.1/16". + macAddress : str, default is Undefined, optional + MAC address of the network adapter + """ + + + connected: bool + + ipAddresses?: [str] + + macAddress?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineStatusVolumesItems0: + """ + VirtualMachineVolumeStatus defines the observed state of a VirtualMachineVolume instance. + + Attributes + ---------- + attached : bool, default is Undefined, required + Attached represents whether a volume has been successfully attached to the VirtualMachine or not. + diskUUID : str, default is Undefined, required + DiskUuid represents the underlying virtual disk UUID and is present when attachment succeeds. + error : str, default is Undefined, required + Error represents the last error seen when attaching or detaching a volume. Error will be empty if attachment succeeds. + name : str, default is Undefined, required + Name is the name of the volume in a VirtualMachine. + """ + + + attached: bool + + diskUUID: str + + error: str + + name: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_class.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_class.k new file mode 100644 index 00000000..e45bf0e1 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_class.k @@ -0,0 +1,268 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema VirtualMachineClass: + """ + VirtualMachineClass is the Schema for the virtualmachineclasses API. A VirtualMachineClass represents the desired specification and the observed status of a VirtualMachineClass instance. A VirtualMachineClass represents a policy and configuration resource which defines a set of attributes to be used in the configuration of a VirtualMachine instance. A VirtualMachine resource references a VirtualMachineClass as a required input. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "VirtualMachineClass", 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 : VmoperatorVmwareComV1alpha1VirtualMachineClassSpec, default is Undefined, optional + spec + status : any, default is Undefined, optional + VirtualMachineClassStatus defines the observed state of VirtualMachineClass. VirtualMachineClasses are immutable, non-dynamic resources, so this status is currently unused. + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "VirtualMachineClass" = "VirtualMachineClass" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1VirtualMachineClassSpec + + status?: any + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpec: + """ + VirtualMachineClassSpec defines the desired state of VirtualMachineClass. + + Attributes + ---------- + configSpec : any, default is Undefined, optional + ConfigSpec describes additional configuration information for a VirtualMachine. The contents of this field are the VirtualMachineConfigSpec data object (https://bit.ly/3HDtiRu) marshaled to JSON using the discriminator field "_typeName" to preserve type information. + controllerName : str, default is Undefined, optional + ControllerName describes the name of the controller responsible for reconciling VirtualMachine resources that are realized from this VirtualMachineClass. + When omitted, controllers reconciling VirtualMachine resources determine the default controller name from the environment variable DEFAULT_VM_CLASS_CONTROLLER_NAME. If this environment variable is not defined or empty, it defaults to vmoperator.vmware.com/vsphere. + Once a non-empty value is assigned to this field, attempts to set this field to an empty value will be silently ignored. + description : str, default is Undefined, optional + Description describes the configuration of the VirtualMachineClass which is not related to virtual hardware or infrastructure policy. This field is used to address remaining specs about this VirtualMachineClass. + hardware : VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardware, default is Undefined, optional + hardware + policies : VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPolicies, default is Undefined, optional + policies + """ + + + configSpec?: any + + controllerName?: str + + description?: str + + hardware?: VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardware + + policies?: VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPolicies + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardware: + """ + Hardware describes the configuration of the VirtualMachineClass attributes related to virtual hardware. The configuration specified in this field is used to customize the virtual hardware characteristics of any VirtualMachine associated with this VirtualMachineClass. + + Attributes + ---------- + cpus : int, default is Undefined, optional + cpus + devices : VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevices, default is Undefined, optional + devices + instanceStorage : VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareInstanceStorage, default is Undefined, optional + instance storage + memory : int | str, default is Undefined, optional + memory + """ + + + cpus?: int + + devices?: VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevices + + instanceStorage?: VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareInstanceStorage + + memory?: int | str + + + check: + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevices: + """ + VirtualDevices contains information about the virtual devices associated with a VirtualMachineClass. + + Attributes + ---------- + dynamicDirectPathIODevices : [VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevicesDynamicDirectPathIODevicesItems0], default is Undefined, optional + dynamic direct path i o devices + vgpuDevices : [VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevicesVgpuDevicesItems0], default is Undefined, optional + vgpu devices + """ + + + dynamicDirectPathIODevices?: [VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevicesDynamicDirectPathIODevicesItems0] + + vgpuDevices?: [VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevicesVgpuDevicesItems0] + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevicesDynamicDirectPathIODevicesItems0: + """ + DynamicDirectPathIODevice contains the configuration corresponding to a Dynamic DirectPath I/O device. + + Attributes + ---------- + customLabel : str, default is Undefined, optional + custom label + deviceID : int, default is Undefined, required + device ID + vendorID : int, default is Undefined, required + vendor ID + """ + + + customLabel?: str + + deviceID: int + + vendorID: int + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareDevicesVgpuDevicesItems0: + """ + VGPUDevice contains the configuration corresponding to a vGPU device. + + Attributes + ---------- + profileName : str, default is Undefined, required + profile name + """ + + + profileName: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareInstanceStorage: + """ + InstanceStorage provides information used to configure instance storage volumes for a VirtualMachine. + + Attributes + ---------- + storageClass : str, default is Undefined, optional + StorageClass refers to the name of a StorageClass resource used to provide the storage for the configured instance storage volumes. The value of this field has no relationship to or bearing on the field virtualMachine.spec.storageClass. Please note the referred StorageClass must be available in the same namespace as the VirtualMachineClass that uses it for configuring instance storage. + volumes : [VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareInstanceStorageVolumesItems0], default is Undefined, optional + Volumes describes instance storage volumes created for a VirtualMachine instance that use this VirtualMachineClass. + """ + + + storageClass?: str + + volumes?: [VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareInstanceStorageVolumesItems0] + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecHardwareInstanceStorageVolumesItems0: + """ + InstanceStorageVolume contains information required to create an instance storage volume on a VirtualMachine. + + Attributes + ---------- + size : int | str, default is Undefined, required + size + """ + + + size: int | str + + + check: + regex.match(str(size), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPolicies: + """ + Policies describes the configuration of the VirtualMachineClass attributes related to virtual infrastructure policy. The configuration specified in this field is used to customize various policies related to infrastructure resource consumption. + + Attributes + ---------- + resources : VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResources, default is Undefined, optional + resources + """ + + + resources?: VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResources + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResources: + """ + VirtualMachineClassResources describes the virtual hardware resource reservations and limits configuration to be used by a VirtualMachineClass. + + Attributes + ---------- + limits : VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResourcesLimits, default is Undefined, optional + limits + requests : VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResourcesRequests, default is Undefined, optional + requests + """ + + + limits?: VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResourcesLimits + + requests?: VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResourcesRequests + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResourcesLimits: + """ + VirtualMachineResourceSpec describes a virtual hardware policy specification. + + Attributes + ---------- + cpu : int | str, default is Undefined, optional + cpu + memory : int | str, default is Undefined, optional + memory + """ + + + cpu?: int | str + + memory?: int | str + + + check: + regex.match(str(cpu), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if cpu + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassSpecPoliciesResourcesRequests: + """ + VirtualMachineResourceSpec describes a virtual hardware policy specification. + + Attributes + ---------- + cpu : int | str, default is Undefined, optional + cpu + memory : int | str, default is Undefined, optional + memory + """ + + + cpu?: int | str + + memory?: int | str + + + check: + regex.match(str(cpu), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if cpu + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_class_binding.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_class_binding.k new file mode 100644 index 00000000..a440cd7e --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_class_binding.k @@ -0,0 +1,55 @@ +""" +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 VirtualMachineClassBinding: + """ + VirtualMachineClassBinding is a binding object responsible for defining a VirtualMachineClass and a Namespace associated with it. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 + classRef : VmoperatorVmwareComV1alpha1VirtualMachineClassBindingClassRef, default is Undefined, optional + class ref + kind : str, default is "VirtualMachineClassBinding", 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 + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + classRef?: VmoperatorVmwareComV1alpha1VirtualMachineClassBindingClassRef + + kind: "VirtualMachineClassBinding" = "VirtualMachineClassBinding" + + metadata?: v1.ObjectMeta + + +schema VmoperatorVmwareComV1alpha1VirtualMachineClassBindingClassRef: + """ + ClassReference is a reference to a VirtualMachineClass object + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + kind : str, default is Undefined, optional + Kind is the type of resource being referenced. + name : str, default is Undefined, required + Name is the name of resource being referenced. + """ + + + apiVersion?: str + + kind?: str + + name: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_image.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_image.k new file mode 100644 index 00000000..f398f5a9 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_image.k @@ -0,0 +1,281 @@ +""" +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 VirtualMachineImage: + """ + VirtualMachineImage is the Schema for the virtualmachineimages API A VirtualMachineImage represents a VirtualMachine image (e.g. VM template) that can be used as the base image for creating a VirtualMachine instance. The VirtualMachineImage is a required field of the VirtualMachine spec. Currently, VirtualMachineImages are immutable to end users. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "VirtualMachineImage", 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 : VmoperatorVmwareComV1alpha1VirtualMachineImageSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha1VirtualMachineImageStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "VirtualMachineImage" = "VirtualMachineImage" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1VirtualMachineImageSpec + + status?: VmoperatorVmwareComV1alpha1VirtualMachineImageStatus + + +schema VmoperatorVmwareComV1alpha1VirtualMachineImageSpec: + """ + VirtualMachineImageSpec defines the desired state of VirtualMachineImage. + + Attributes + ---------- + hwVersion : int, default is Undefined, optional + HardwareVersion describes the virtual hardware version of the image + imageID : str, default is Undefined, required + ImageID is a unique identifier exposed by the provider of this VirtualMachineImage. + imageSourceType : str, default is Undefined, optional + ImageSourceType describes the type of content source of the VirtualMachineImage. The only Content Source supported currently is the vSphere Content Library. + osInfo : VmoperatorVmwareComV1alpha1VirtualMachineImageSpecOsInfo, default is Undefined, optional + os info + ovfEnv : {str:VmoperatorVmwareComV1alpha1VirtualMachineImageSpecOvfEnvAnon}, default is Undefined, optional + OVFEnv describes the user configurable customization parameters of the VirtualMachineImage. + productInfo : VmoperatorVmwareComV1alpha1VirtualMachineImageSpecProductInfo, default is Undefined, optional + product info + providerRef : VmoperatorVmwareComV1alpha1VirtualMachineImageSpecProviderRef, default is Undefined, required + provider ref + $type : str, default is Undefined, required + Type describes the type of the VirtualMachineImage. Currently, the only supported image is "OVF" + """ + + + hwVersion?: int + + imageID: str + + imageSourceType?: str + + osInfo?: VmoperatorVmwareComV1alpha1VirtualMachineImageSpecOsInfo + + ovfEnv?: {str:VmoperatorVmwareComV1alpha1VirtualMachineImageSpecOvfEnvAnon} + + productInfo?: VmoperatorVmwareComV1alpha1VirtualMachineImageSpecProductInfo + + providerRef: VmoperatorVmwareComV1alpha1VirtualMachineImageSpecProviderRef + + $type: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineImageSpecOsInfo: + """ + OSInfo describes the attributes of the VirtualMachineImage relating to the Operating System contained in the image. + + Attributes + ---------- + $type : str, default is Undefined, optional + Type typically describes the type of the guest operating system. + version : str, default is Undefined, optional + Version typically describes the version of the guest operating system. + """ + + + $type?: str + + version?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineImageSpecOvfEnvAnon: + """ + OvfProperty describes information related to a user configurable property element that is supported by VirtualMachineImage and can be customized during VirtualMachine creation. + + Attributes + ---------- + default : str, default is Undefined, optional + Default describes the default value of the ovf key. + description : str, default is Undefined, optional + Description contains the value of the OVF property's optional "Description" element. + key : str, default is Undefined, required + Key describes the key of the ovf property. + label : str, default is Undefined, optional + Label contains the value of the OVF property's optional "Label" element. + $type : str, default is Undefined, required + Type describes the type of the ovf property. + """ + + + default?: str + + description?: str + + key: str + + label?: str + + $type: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineImageSpecProductInfo: + """ + ProductInfo describes the attributes of the VirtualMachineImage relating to the product contained in the image. + + Attributes + ---------- + fullVersion : str, default is Undefined, optional + FullVersion typically describes a long-form version of the image. + product : str, default is Undefined, optional + Product typically describes the type of product contained in the image. + vendor : str, default is Undefined, optional + Vendor typically describes the name of the vendor that is producing the image. + version : str, default is Undefined, optional + Version typically describes a short-form version of the image. + """ + + + fullVersion?: str + + product?: str + + vendor?: str + + version?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineImageSpecProviderRef: + """ + ProviderRef is a reference to a content provider object that describes a provider. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + kind : str, default is Undefined, required + Kind is the type of resource being referenced. + name : str, default is Undefined, required + Name is the name of resource being referenced. + namespace : str, default is Undefined, optional + Namespace of the resource being referenced. If empty, cluster scoped resource is assumed. + """ + + + apiVersion?: str + + kind: str + + name: str + + namespace?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineImageStatus: + """ + VirtualMachineImageStatus defines the observed state of VirtualMachineImage. + + Attributes + ---------- + conditions : [VmoperatorVmwareComV1alpha1VirtualMachineImageStatusConditionsItems0], default is Undefined, optional + Conditions describes the current condition information of the VirtualMachineImage object. e.g. if the OS type is supported or image is supported by VMService + contentLibraryRef : VmoperatorVmwareComV1alpha1VirtualMachineImageStatusContentLibraryRef, default is Undefined, optional + content library ref + contentVersion : str, default is Undefined, optional + ContentVersion describes the observed content version of this VirtualMachineImage that was last successfully synced with the vSphere content library item. + firmware : str, default is Undefined, optional + Firmware describe the firmware type used by this VirtualMachineImage. eg: bios, efi. + imageName : str, default is Undefined, optional + ImageName describes the display name of this VirtualMachineImage. + imageSupported : bool, default is Undefined, optional + ImageSupported indicates whether the VirtualMachineImage is supported by VMService. A VirtualMachineImage is supported by VMService if the following conditions are true: - VirtualMachineImageV1Alpha1CompatibleCondition + internalId : str, default is Undefined, optional + Deprecated + powerState : str, default is Undefined, optional + Deprecated + uuid : str, default is Undefined, optional + Deprecated + """ + + + conditions?: [VmoperatorVmwareComV1alpha1VirtualMachineImageStatusConditionsItems0] + + contentLibraryRef?: VmoperatorVmwareComV1alpha1VirtualMachineImageStatusContentLibraryRef + + contentVersion?: str + + firmware?: str + + imageName?: str + + imageSupported?: bool + + internalId?: str + + powerState?: str + + uuid?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineImageStatusConditionsItems0: + """ + Condition defines an observation of a VM Operator API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 disambiguate is important. + """ + + + lastTransitionTime?: str + + message?: str + + reason?: str + + severity?: str + + status: str + + $type: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineImageStatusContentLibraryRef: + """ + ContentLibraryRef is a reference to the source ContentLibrary/ClusterContentLibrary resource. + + Attributes + ---------- + apiGroup : str, default is Undefined, optional + APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + kind : str, default is Undefined, required + Kind is the type of resource being referenced + name : str, default is Undefined, required + Name is the name of resource being referenced + """ + + + apiGroup?: str + + kind: str + + name: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_publish_request.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_publish_request.k new file mode 100644 index 00000000..8806be6d --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_publish_request.k @@ -0,0 +1,324 @@ +""" +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 VirtualMachinePublishRequest: + """ + VirtualMachinePublishRequest defines the information necessary to publish a VirtualMachine as a VirtualMachineImage to an image registry. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "VirtualMachinePublishRequest", 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 : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "VirtualMachinePublishRequest" = "VirtualMachinePublishRequest" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpec + + status?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatus + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpec: + """ + VirtualMachinePublishRequestSpec defines the desired state of a VirtualMachinePublishRequest. + All the fields in this spec are optional. This is especially useful when a DevOps persona wants to publish a VM without doing anything more than applying a VirtualMachinePublishRequest resource that has the same name as said VM in the same namespace as said VM. + + Attributes + ---------- + source : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecSource, default is Undefined, optional + source + target : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTarget, default is Undefined, optional + target + ttlSecondsAfterFinished : int, default is Undefined, optional + TTLSecondsAfterFinished is the time-to-live duration for how long this resource will be allowed to exist once the publication operation completes. After the TTL expires, the resource will be automatically deleted without the user having to take any direct action. + If this field is unset then the request resource will not be automatically deleted. If this field is set to zero then the request resource is eligible for deletion immediately after it finishes. + """ + + + source?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecSource + + target?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTarget + + ttlSecondsAfterFinished?: int + + + check: + ttlSecondsAfterFinished >= 0 + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecSource: + """ + Source is the source of the publication request, ex. a VirtualMachine resource. + If this value is omitted then the publication controller checks to see if there is a resource with the same name as this VirtualMachinePublishRequest resource, an API version equal to spec.source.apiVersion, and a kind equal to spec.source.kind. If such a resource exists, then it is the source of the publication. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", optional + APIVersion is the API version of the referenced object. + kind : str, default is "VirtualMachine", optional + Kind is the kind of referenced object. + name : str, default is Undefined, optional + Name is the name of the referenced object. + If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. + """ + + + apiVersion?: str = "vmoperator.vmware.com/v1alpha1" + + kind?: str = "VirtualMachine" + + name?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTarget: + """ + Target is the target of the publication request, ex. item information and a ContentLibrary resource. + If this value is omitted, the controller uses spec.source.name + "-image" as the name of the published item. Additionally, when omitted the controller attempts to identify the target location by matching a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, w/ the label "imageregistry.vmware.com/default". + Please note that while optional, if a VirtualMachinePublishRequest sans target information is applied to a namespace without a default publication target, then the VirtualMachinePublishRequest resource will be marked in error. + + Attributes + ---------- + item : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTargetItem, default is Undefined, optional + item + location : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTargetLocation, default is Undefined, optional + location + """ + + + item?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTargetItem + + location?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTargetLocation + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTargetItem: + """ + Item contains information about the name of the object to which the VM is published. + Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. + + Attributes + ---------- + description : str, default is Undefined, optional + Description is the description to assign to the published object. + name : str, default is Undefined, optional + Name is the name of the published object. + If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. + If omitted then the controller will use spec.source.name + "-image". + """ + + + description?: str + + name?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestSpecTargetLocation: + """ + Location contains information about the location to which to publish the VM. + + Attributes + ---------- + apiVersion : str, default is "imageregistry.vmware.com/v1alpha1", optional + APIVersion is the API version of the referenced object. + kind : str, default is "ContentLibrary", optional + Kind is the kind of referenced object. + name : str, default is Undefined, optional + Name is the name of the referenced object. + Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. + A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label "imageregistry.vmware.com/default". + """ + + + apiVersion?: str = "imageregistry.vmware.com/v1alpha1" + + kind?: str = "ContentLibrary" + + name?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatus: + """ + VirtualMachinePublishRequestStatus defines the observed state of a VirtualMachinePublishRequest. + + Attributes + ---------- + attempts : int, default is Undefined, optional + Attempts represents the number of times the request to publish the VM has been attempted. + completionTime : str, default is Undefined, optional + CompletionTime represents time when the request was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. + The value of this field should be equal to the value of the LastTransitionTime for the status condition Type=Complete. + conditions : [VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusConditionsItems0], default is Undefined, optional + Conditions is a list of the latest, available observations of the request's current state. + imageName : str, default is Undefined, optional + ImageName is the name of the VirtualMachineImage resource that is eventually realized in the same namespace as the VM and publication request after the publication operation completes. + This field will not be set until the VirtualMachineImage resource is realized. + lastAttemptTime : str, default is Undefined, optional + LastAttemptTime represents the time when the latest request was sent. + ready : bool, default is Undefined, optional + Ready is set to true only when the VM has been published successfully and the new VirtualMachineImage resource is ready. + Readiness is determined by waiting until there is status condition Type=Complete and ensuring it and all other status conditions present have a Status=True. The conditions present will be: + * SourceValid * TargetValid * Uploaded * ImageAvailable * Complete + sourceRef : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusSourceRef, default is Undefined, optional + source ref + startTime : str, default is Undefined, optional + StartTime represents time when the request was acknowledged by the controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. + targetRef : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRef, default is Undefined, optional + target ref + """ + + + attempts?: int + + completionTime?: str + + conditions?: [VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusConditionsItems0] + + imageName?: str + + lastAttemptTime?: str + + ready?: bool + + sourceRef?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusSourceRef + + startTime?: str + + targetRef?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRef + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusConditionsItems0: + """ + Condition defines an observation of a VM Operator API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 disambiguate is important. + """ + + + lastTransitionTime?: str + + message?: str + + reason?: str + + severity?: str + + status: str + + $type: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusSourceRef: + """ + SourceRef is the reference to the source of the publication request, ex. a VirtualMachine resource. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", optional + APIVersion is the API version of the referenced object. + kind : str, default is "VirtualMachine", optional + Kind is the kind of referenced object. + name : str, default is Undefined, optional + Name is the name of the referenced object. + If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. + """ + + + apiVersion?: str = "vmoperator.vmware.com/v1alpha1" + + kind?: str = "VirtualMachine" + + name?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRef: + """ + TargetRef is the reference to the target of the publication request, ex. item information and a ContentLibrary resource. + + Attributes + ---------- + item : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRefItem, default is Undefined, optional + item + location : VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRefLocation, default is Undefined, optional + location + """ + + + item?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRefItem + + location?: VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRefLocation + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRefItem: + """ + Item contains information about the name of the object to which the VM is published. + Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. + + Attributes + ---------- + description : str, default is Undefined, optional + Description is the description to assign to the published object. + name : str, default is Undefined, optional + Name is the name of the published object. + If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. + If omitted then the controller will use spec.source.name + "-image". + """ + + + description?: str + + name?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachinePublishRequestStatusTargetRefLocation: + """ + Location contains information about the location to which to publish the VM. + + Attributes + ---------- + apiVersion : str, default is "imageregistry.vmware.com/v1alpha1", optional + APIVersion is the API version of the referenced object. + kind : str, default is "ContentLibrary", optional + Kind is the kind of referenced object. + name : str, default is Undefined, optional + Name is the name of the referenced object. + Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. + A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label "imageregistry.vmware.com/default". + """ + + + apiVersion?: str = "imageregistry.vmware.com/v1alpha1" + + kind?: str = "ContentLibrary" + + name?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_service.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_service.k new file mode 100644 index 00000000..7dc8814b --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_service.k @@ -0,0 +1,147 @@ +""" +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 VirtualMachineService: + """ + VirtualMachineService is the Schema for the virtualmachineservices API. A VirtualMachineService represents the desired specification and the observed status of a VirtualMachineService instance. A VirtualMachineService represents a network service, provided by one or more VirtualMachines, that is desired to be exposed to other workloads both internal and external to the cluster. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "VirtualMachineService", 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 : VmoperatorVmwareComV1alpha1VirtualMachineServiceSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha1VirtualMachineServiceStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "VirtualMachineService" = "VirtualMachineService" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1VirtualMachineServiceSpec + + status?: VmoperatorVmwareComV1alpha1VirtualMachineServiceStatus + + +schema VmoperatorVmwareComV1alpha1VirtualMachineServiceSpec: + """ + VirtualMachineServiceSpec defines the desired state of VirtualMachineService. Each VirtualMachineService exposes a set of TargetPorts on a set of VirtualMachine instances as a network endpoint within or outside of the Kubernetes cluster. The VirtualMachineService is loosely coupled to the VirtualMachines that are backing it through the use of a Label Selector. In Kubernetes, a Label Selector enables matching of a resource using a set of key-value pairs, aka Labels. By using a Label Selector, the VirtualMachineService can be generically defined to apply to any VirtualMachine in the same namespace that has the appropriate set of labels. + + Attributes + ---------- + clusterIp : str, default is Undefined, optional + clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are "None", empty string (""), or a valid IP address. "None" can be specified for headless services when proxying is not required. Only applies to types ClusterIP and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies + externalName : str, default is Undefined, optional + externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName. + loadBalancerIP : str, default is Undefined, optional + Only applies to VirtualMachineService Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying load balancer provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the provider does not support the feature. + loadBalancerSourceRanges : [str], default is Undefined, optional + LoadBalancerSourceRanges is an array of IP addresses in the format of CIDRs, for example: 103.21.244.0/22 and 10.0.0.0/24. If specified and supported by the load balancer provider, this will restrict ingress traffic to the specified client IPs. This field will be ignored if the provider does not support the feature. + ports : [VmoperatorVmwareComV1alpha1VirtualMachineServiceSpecPortsItems0], default is Undefined, optional + Ports specifies a list of VirtualMachineServicePort to expose with this VirtualMachineService. Each of these ports will be an accessible network entry point to access this service by. + selector : {str:str}, default is Undefined, optional + Selector specifies a map of key-value pairs, also known as a Label Selector, that is used to match this VirtualMachineService with the set of VirtualMachines that should back this VirtualMachineService. + $type : str, default is Undefined, required + Type specifies a desired VirtualMachineServiceType for this VirtualMachineService. Supported types are ClusterIP, LoadBalancer, ExternalName. + """ + + + clusterIp?: str + + externalName?: str + + loadBalancerIP?: str + + loadBalancerSourceRanges?: [str] + + ports?: [VmoperatorVmwareComV1alpha1VirtualMachineServiceSpecPortsItems0] + + selector?: {str:str} + + $type: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineServiceSpecPortsItems0: + """ + VirtualMachineServicePort describes the specification of a service port to be exposed by a VirtualMachineService. This VirtualMachineServicePort specification includes attributes that define the external and internal representation of the service port. + + Attributes + ---------- + name : str, default is Undefined, required + Name describes the name to be used to identify this VirtualMachineServicePort + port : int, default is Undefined, required + Port describes the external port that will be exposed by the service. + $protocol : str, default is Undefined, required + Protocol describes the Layer 4 transport protocol for this port. Supports "TCP", "UDP", and "SCTP". + targetPort : int, default is Undefined, required + TargetPort describes the internal port open on a VirtualMachine that should be mapped to the external Port. + """ + + + name: str + + port: int + + $protocol: str + + targetPort: int + + +schema VmoperatorVmwareComV1alpha1VirtualMachineServiceStatus: + """ + VirtualMachineServiceStatus defines the observed state of VirtualMachineService. + + Attributes + ---------- + loadBalancer : VmoperatorVmwareComV1alpha1VirtualMachineServiceStatusLoadBalancer, default is Undefined, optional + load balancer + """ + + + loadBalancer?: VmoperatorVmwareComV1alpha1VirtualMachineServiceStatusLoadBalancer + + +schema VmoperatorVmwareComV1alpha1VirtualMachineServiceStatusLoadBalancer: + """ + LoadBalancer contains the current status of the load balancer, if one is present. + + Attributes + ---------- + ingress : [VmoperatorVmwareComV1alpha1VirtualMachineServiceStatusLoadBalancerIngressItems0], default is Undefined, optional + Ingress is a list containing ingress addresses for the load balancer. Traffic intended for the service should be sent to any of these ingress points. + """ + + + ingress?: [VmoperatorVmwareComV1alpha1VirtualMachineServiceStatusLoadBalancerIngressItems0] + + +schema VmoperatorVmwareComV1alpha1VirtualMachineServiceStatusLoadBalancerIngressItems0: + """ + LoadBalancerIngress represents the status of a load balancer ingress point: traffic intended for the service should be sent to an ingress point. IP or Hostname may both be set in this structure. It is up to the consumer to determine which field should be used when accessing this LoadBalancer. + + Attributes + ---------- + hostname : str, default is Undefined, optional + Hostname is set for load balancer ingress points that are specified by a DNS address. + ip : str, default is Undefined, optional + IP is set for load balancer ingress points that are specified by an IP address. + """ + + + hostname?: str + + ip?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_set_resource_policy.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_set_resource_policy.k new file mode 100644 index 00000000..2250a005 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_virtual_machine_set_resource_policy.k @@ -0,0 +1,192 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema VirtualMachineSetResourcePolicy: + """ + VirtualMachineSetResourcePolicy is the Schema for the virtualmachinesetresourcepolicies API. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "VirtualMachineSetResourcePolicy", 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 : VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicyStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "VirtualMachineSetResourcePolicy" = "VirtualMachineSetResourcePolicy" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpec + + status?: VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicyStatus + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpec: + """ + VirtualMachineSetResourcePolicySpec defines the desired state of VirtualMachineSetResourcePolicy. + + Attributes + ---------- + clustermodules : [VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecClustermodulesItems0], default is Undefined, optional + clustermodules + folder : VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecFolder, default is Undefined, optional + folder + resourcepool : VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepool, default is Undefined, optional + resourcepool + """ + + + clustermodules?: [VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecClustermodulesItems0] + + folder?: VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecFolder + + resourcepool?: VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepool + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecClustermodulesItems0: + """ + ClusterModuleSpec defines a grouping of VirtualMachines that are to be grouped together as a logical unit by the infrastructure provider. Within vSphere, the ClusterModuleSpec maps directly to a vSphere ClusterModule. + + Attributes + ---------- + groupname : str, default is Undefined, required + GroupName describes the name of the ClusterModule Group. + """ + + + groupname: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecFolder: + """ + FolderSpec defines a Folder. + + Attributes + ---------- + name : str, default is Undefined, optional + Name describes the name of the Folder + """ + + + name?: str + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepool: + """ + ResourcePoolSpec defines a Logical Grouping of workloads that share resource policies. + + Attributes + ---------- + limits : VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepoolLimits, default is Undefined, optional + limits + name : str, default is Undefined, optional + Name describes the name of the ResourcePool grouping. + reservations : VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepoolReservations, default is Undefined, optional + reservations + """ + + + limits?: VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepoolLimits + + name?: str + + reservations?: VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepoolReservations + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepoolLimits: + """ + Limits describes the limit to resources available to the ResourcePool. + + Attributes + ---------- + cpu : int | str, default is Undefined, optional + cpu + memory : int | str, default is Undefined, optional + memory + """ + + + cpu?: int | str + + memory?: int | str + + + check: + regex.match(str(cpu), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if cpu + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicySpecResourcepoolReservations: + """ + Reservations describes the guaranteed resources reserved for the ResourcePool. + + Attributes + ---------- + cpu : int | str, default is Undefined, optional + cpu + memory : int | str, default is Undefined, optional + memory + """ + + + cpu?: int | str + + memory?: int | str + + + check: + regex.match(str(cpu), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if cpu + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicyStatus: + """ + VirtualMachineSetResourcePolicyStatus defines the observed state of VirtualMachineSetResourcePolicy. + + Attributes + ---------- + clustermodules : [VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicyStatusClustermodulesItems0], default is Undefined, optional + clustermodules + """ + + + clustermodules?: [VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicyStatusClustermodulesItems0] + + +schema VmoperatorVmwareComV1alpha1VirtualMachineSetResourcePolicyStatusClustermodulesItems0: + """ + vmoperator vmware com v1alpha1 virtual machine set resource policy status clustermodules items0 + + Attributes + ---------- + clusterMoID : str, default is Undefined, required + cluster mo ID + groupname : str, default is Undefined, required + groupname + moduleUUID : str, default is Undefined, required + module UUID + """ + + + clusterMoID: str + + groupname: str + + moduleUUID: str + + diff --git a/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_web_console_request.k b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_web_console_request.k new file mode 100644 index 00000000..73eeff59 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha1/vmoperator_vmware_com_v1alpha1_web_console_request.k @@ -0,0 +1,81 @@ +""" +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 WebConsoleRequest: + """ + WebConsoleRequest allows the creation of a one-time web console ticket that can be used to interact with the VM. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", 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 "WebConsoleRequest", 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 : VmoperatorVmwareComV1alpha1WebConsoleRequestSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha1WebConsoleRequestStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha1" = "vmoperator.vmware.com/v1alpha1" + + kind: "WebConsoleRequest" = "WebConsoleRequest" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha1WebConsoleRequestSpec + + status?: VmoperatorVmwareComV1alpha1WebConsoleRequestStatus + + +schema VmoperatorVmwareComV1alpha1WebConsoleRequestSpec: + """ + WebConsoleRequestSpec describes the specification for used to request a web console request. + + Attributes + ---------- + publicKey : str, default is Undefined, required + PublicKey is used to encrypt the status.response. This is expected to be a RSA OAEP public key in X.509 PEM format. + virtualMachineName : str, default is Undefined, required + VirtualMachineName is the VM in the same namespace, for which the web console is requested. + """ + + + publicKey: str + + virtualMachineName: str + + +schema VmoperatorVmwareComV1alpha1WebConsoleRequestStatus: + """ + WebConsoleRequestStatus defines the observed state, which includes the web console request itself. + + Attributes + ---------- + expiryTime : str, default is Undefined, optional + ExpiryTime is when the ticket referenced in Response will expire. + proxyAddr : str, default is Undefined, optional + ProxyAddr describes the host address and optional port used to access the VM's web console. The value could be a DNS entry, IPv4, or IPv6 address, followed by an optional port. For example, valid values include: + DNS * host.com * host.com:6443 + IPv4 * 1.2.3.4 * 1.2.3.4:6443 + IPv6 * 1234:1234:1234:1234:1234:1234:1234:1234 * [1234:1234:1234:1234:1234:1234:1234:1234]:6443 * 1234:1234:1234:0000:0000:0000:1234:1234 * 1234:1234:1234::::1234:1234 * [1234:1234:1234::::1234:1234]:6443 + In other words, the field may be set to any value that is parsable by Go's https://pkg.go.dev/net#ResolveIPAddr and https://pkg.go.dev/net#ParseIP functions. + response : str, default is Undefined, optional + Response will be the authenticated ticket corresponding to this web console request. + """ + + + expiryTime?: str + + proxyAddr?: str + + response?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_cluster_virtual_machine_image.k b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_cluster_virtual_machine_image.k new file mode 100644 index 00000000..20978a83 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_cluster_virtual_machine_image.k @@ -0,0 +1,243 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema ClusterVirtualMachineImage: + """ + ClusterVirtualMachineImage is the schema for the clustervirtualmachineimages API. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha2", 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 "ClusterVirtualMachineImage", 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 : VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha2" = "vmoperator.vmware.com/v1alpha2" + + kind: "ClusterVirtualMachineImage" = "ClusterVirtualMachineImage" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageSpec + + status?: VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatus + + +schema VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageSpec: + """ + VirtualMachineImageSpec defines the desired state of VirtualMachineImage. + + Attributes + ---------- + providerRef : VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageSpecProviderRef, default is Undefined, optional + provider ref + """ + + + providerRef?: VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageSpecProviderRef + + +schema VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageSpecProviderRef: + """ + ProviderRef is a reference to the resource that contains the source of this image's information. + + Attributes + ---------- + apiVersion : str, default is Undefined, required + APIVersion defines the versioned schema of this representation of an object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is Undefined, 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 + name : str, default is Undefined, required + Name refers to a unique resource in the current namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names + """ + + + apiVersion: str + + kind: str + + name: str + + +schema VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatus: + """ + VirtualMachineImageStatus defines the observed state of VirtualMachineImage. + + Attributes + ---------- + capabilities : [str], default is Undefined, optional + Capabilities describes the image's observed capabilities. + The capabilities are discerned when VM Operator reconciles an image. If the source of an image is an OVF in Content Library, then the capabilities are parsed from the OVF property capabilities.image.vmoperator.vmware.com as a comma-separated list of values. Well-known capabilities include: + * cloud-init * nvidia-gpu * sriov-net + Every capability is also added to the resource's labels as VirtualMachineImageCapabilityLabel + Value. For example, if the capability is "cloud-init" then the following label will be added to the resource: capability.image.vmoperator.vmware.com/cloud-init. + conditions : [VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusConditionsItems0], default is Undefined, optional + Conditions describes the observed conditions for this image. + firmware : str, default is Undefined, optional + Firmware describe the firmware type used by this image, ex. BIOS, EFI. + hardwareVersion : int, default is Undefined, optional + HardwareVersion describes the observed hardware version of this image. + name : str, default is Undefined, optional + Name describes the observed, "friendly" name for this image. + osInfo : VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusOsInfo, default is Undefined, optional + os info + ovfProperties : [VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusOvfPropertiesItems0], default is Undefined, optional + OVFProperties describes the observed OVF properties defined for this image. + productInfo : VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusProductInfo, default is Undefined, optional + product info + providerContentVersion : str, default is Undefined, optional + ProviderContentVersion describes the content version from the provider item that this image corresponds to. If the provider of this image is a Content Library, this will be the version of the corresponding Content Library item. + """ + + + capabilities?: [str] + + conditions?: [VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusConditionsItems0] + + firmware?: str + + hardwareVersion?: int + + name?: str + + osInfo?: VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusOsInfo + + ovfProperties?: [VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusOvfPropertiesItems0] + + productInfo?: VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusProductInfo + + providerContentVersion?: str + + +schema VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusConditionsItems0: + """ + Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` + // other fields } + + 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, required + message is a human readable message indicating details about the transition. This may be an empty string. + observedGeneration : int, default is Undefined, optional + observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + reason : str, default is Undefined, required + reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + """ + + + lastTransitionTime: str + + message: str + + observedGeneration?: int + + reason: str + + status: "True" | "False" | "Unknown" + + $type: str + + + check: + len(message) <= 32768 + observedGeneration >= 0 + len(reason) <= 1024 + len(reason) >= 1 + regex.match(str(reason), r"^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$") + len($type) <= 316 + regex.match(str($type), r"^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$") + + +schema VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusOsInfo: + """ + OSInfo describes the observed operating system information for this image. + The OS information is also added to the image resource's labels. Please refer to VirtualMachineImageOSInfo for more information. + + Attributes + ---------- + id : str, default is Undefined, optional + ID describes the operating system ID. + This value is also added to the image resource's labels as VirtualMachineImageOSIDLabel. + $type : str, default is Undefined, optional + Type describes the operating system type. + This value is also added to the image resource's labels as VirtualMachineImageOSTypeLabel. + version : str, default is Undefined, optional + Version describes the operating system version. + This value is also added to the image resource's labels as VirtualMachineImageOSVersionLabel. + """ + + + id?: str + + $type?: str + + version?: str + + +schema VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusOvfPropertiesItems0: + """ + OVFProperty describes an OVF property associated with an image. OVF properties may be used in conjunction with the vAppConfig bootstrap provider to customize a VM during its creation. + + Attributes + ---------- + default : str, default is Undefined, optional + Default describes the OVF property's default value. + key : str, default is Undefined, required + Key describes the OVF property's key. + $type : str, default is Undefined, required + Type describes the OVF property's type. + """ + + + default?: str + + key: str + + $type: str + + +schema VmoperatorVmwareComV1alpha2ClusterVirtualMachineImageStatusProductInfo: + """ + ProductInfo describes the observed product information for this image. + + Attributes + ---------- + fullVersion : str, default is Undefined, optional + FullVersion describes the long-form version of the image. + product : str, default is Undefined, optional + Product is a general descriptor for the image. + vendor : str, default is Undefined, optional + Vendor describes the organization/user that produced the image. + version : str, default is Undefined, optional + Version describes the short-form version of the image. + """ + + + fullVersion?: str + + product?: str + + vendor?: str + + version?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine.k b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine.k new file mode 100644 index 00000000..892017a6 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine.k @@ -0,0 +1,2104 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema VirtualMachine: + """ + VirtualMachine is the schema for the virtualmachines API and represents the desired state and observed status of a virtualmachines resource. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha2", 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 "VirtualMachine", 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 : VmoperatorVmwareComV1alpha2VirtualMachineSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha2VirtualMachineStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha2" = "vmoperator.vmware.com/v1alpha2" + + kind: "VirtualMachine" = "VirtualMachine" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha2VirtualMachineSpec + + status?: VmoperatorVmwareComV1alpha2VirtualMachineStatus + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpec: + """ + VirtualMachineSpec defines the desired state of a VirtualMachine. + + Attributes + ---------- + advanced : VmoperatorVmwareComV1alpha2VirtualMachineSpecAdvanced, default is Undefined, optional + advanced + bootstrap : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrap, default is Undefined, optional + bootstrap + className : str, default is Undefined, optional + Class describes the name of the VirtualMachineClass resource used to deploy this VM. + This field is optional in the cases where there exists a sensible default value, such as when there is a single VirtualMachineClass resource available in the same Namespace as the VM being deployed. + imageName : str, default is Undefined, optional + ImageName describes the name of the image resource used to deploy this VM. + This field may be used to specify the name of a VirtualMachineImage or ClusterVirtualMachineImage resource. The resolver first checks to see if there is a ClusterVirtualMachineImage with the specified name. If no such resource exists, the resolver then checks to see if there is a VirtualMachineImage resource with the specified name in the same Namespace as the VM being deployed. + This field is optional in the cases where there exists a sensible default value, such as when there is a single VirtualMachineImage resource available in the same Namespace as the VM being deployed. + network : VmoperatorVmwareComV1alpha2VirtualMachineSpecNetwork, default is Undefined, optional + network + nextRestartTime : str, default is Undefined, optional + NextRestartTime may be used to restart the VM, in accordance with RestartMode, by setting the value of this field to "now" (case-insensitive). + A mutating webhook changes this value to the current time (UTC), which the VM controller then uses to determine the VM should be restarted by comparing the value to the timestamp of the last time the VM was restarted. + Please note it is not possible to schedule future restarts using this field. The only value that users may set is the string "now" (case-insensitive). + powerOffMode : str, default is "TrySoft", optional + PowerOffMode describes the desired behavior when powering off a VM. + There are three, supported power off modes: Hard, Soft, and TrySoft. The first mode, Hard, is the equivalent of a physical system's power cord being ripped from the wall. The Soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully shutdown the VM. Its variant, TrySoft, first attempts a graceful shutdown, and if that fails or the VM is not in a powered off state after five minutes, the VM is halted. + If omitted, the mode defaults to TrySoft. + powerState : str, default is Undefined, optional + PowerState describes the desired power state of a VirtualMachine. + Please note this field may be omitted when creating a new VM and will default to "PoweredOn." However, once the field is set to a non-empty value, it may no longer be set to an empty value. + Additionally, setting this value to "Suspended" is not supported when creating a new VM. The valid values when creating a new VM are "PoweredOn" and "PoweredOff." An empty value is also allowed on create since this value defaults to "PoweredOn" for new VMs. + readinessGates : [VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessGatesItems0], default is Undefined, optional + ReadinessGates, if specified, will be evaluated to determine the VM's readiness. + A VM is ready when its readiness probe, if specified, is true AND all of the conditions specified by the readiness gates have a status equal to "True". + readinessProbe : VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbe, default is Undefined, optional + readiness probe + reserved : VmoperatorVmwareComV1alpha2VirtualMachineSpecReserved, default is Undefined, optional + reserved + restartMode : str, default is "TrySoft", optional + RestartMode describes the desired behavior for restarting a VM when spec.nextRestartTime is set to "now" (case-insensitive). + There are three, supported suspend modes: Hard, Soft, and TrySoft. The first mode, Hard, is where vSphere resets the VM without any interaction inside of the guest. The Soft mode requires the VM's guest to have VM Tools installed and asks the guest to restart the VM. Its variant, TrySoft, first attempts a soft restart, and if that fails or does not complete within five minutes, the VM is hard reset. + If omitted, the mode defaults to TrySoft. + storageClass : str, default is Undefined, optional + StorageClass describes the name of a Kubernetes StorageClass resource used to configure this VM's storage-related attributes. + Please see https://kubernetes.io/docs/concepts/storage/storage-classes/ for more information on Kubernetes storage classes. + This field is optional in the cases where there exists a sensible default value, such as when there is a single StorageClass resource available in the same Namespace as the VM being deployed. + suspendMode : str, default is "TrySoft", optional + SuspendMode describes the desired behavior when suspending a VM. + There are three, supported suspend modes: Hard, Soft, and TrySoft. The first mode, Hard, is where vSphere suspends the VM to disk without any interaction inside of the guest. The Soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully suspend the VM. Its variant, TrySoft, first attempts a graceful suspend, and if that fails or the VM is not in a put into standby by the guest after five minutes, the VM is suspended. + If omitted, the mode defaults to TrySoft. + volumes : [VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0], default is Undefined, optional + Volumes describes a list of volumes that can be mounted to the VM. + """ + + + advanced?: VmoperatorVmwareComV1alpha2VirtualMachineSpecAdvanced + + bootstrap?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrap + + className?: str + + imageName?: str + + network?: VmoperatorVmwareComV1alpha2VirtualMachineSpecNetwork + + nextRestartTime?: str + + powerOffMode?: "Hard" | "Soft" | "TrySoft" = "TrySoft" + + powerState?: "PoweredOff" | "PoweredOn" | "Suspended" + + readinessGates?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessGatesItems0] + + readinessProbe?: VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbe + + reserved?: VmoperatorVmwareComV1alpha2VirtualMachineSpecReserved + + restartMode?: "Hard" | "Soft" | "TrySoft" = "TrySoft" + + storageClass?: str + + suspendMode?: "Hard" | "Soft" | "TrySoft" = "TrySoft" + + volumes?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecAdvanced: + """ + Advanced describes a set of optional, advanced VM configuration options. + + Attributes + ---------- + bootDiskCapacity : int | str, default is Undefined, optional + BootDiskCapacity is the capacity of the VM's boot disk -- the first disk from the VirtualMachineImage from which the VM was deployed. + Please note it is not advised to change this value while the VM is running. Also, resizing the VM's boot disk may require actions inside of the guest to take advantage of the additional capacity. Finally, changing the size of the VM's boot disk, even increasing it, could adversely affect the VM. + changeBlockTracking : bool, default is Undefined, optional + ChangeBlockTracking is a flag that enables incremental backup support for this VM, a feature utilized by external backup systems such as VMware Data Recovery. + defaultVolumeProvisioningMode : str, default is Undefined, optional + DefaultVolumeProvisioningMode specifies the default provisioning mode for persistent volumes managed by this VM. + """ + + + bootDiskCapacity?: int | str + + changeBlockTracking?: bool + + defaultVolumeProvisioningMode?: "Thin" | "Thick" | "ThickEagerZero" + + + check: + regex.match(str(bootDiskCapacity), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if bootDiskCapacity + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrap: + """ + Bootstrap describes the desired state of the guest's bootstrap configuration. + If omitted, then the bootstrap method is determined based on the guest identifier from the VirtualMachineImage. If the image's guest OS type is Windows, then the Sysprep bootstrap method is used; if Linux, the LinuxPrep method is used. + Please note that defaulting to Sysprep for Windows images only works if the image uses a volume license key, otherwise the image's product ID is required. + + Attributes + ---------- + cloudInit : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInit, default is Undefined, optional + cloud init + linuxPrep : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapLinuxPrep, default is Undefined, optional + linux prep + sysprep : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprep, default is Undefined, optional + sysprep + vAppConfig : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfig, default is Undefined, optional + v app config + """ + + + cloudInit?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInit + + linuxPrep?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapLinuxPrep + + sysprep?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprep + + vAppConfig?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfig + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInit: + """ + CloudInit may be used to bootstrap Linux guests with Cloud-Init or Windows guests that support Cloudbase-Init. + The guest's networking stack is configured by Cloud-Init on Linux guests and Cloudbase-Init on Windows guests. + Please note this bootstrap provider may not be used in conjunction with the other bootstrap providers. + + Attributes + ---------- + cloudConfig : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfig, default is Undefined, optional + cloud config + rawCloudConfig : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitRawCloudConfig, default is Undefined, optional + raw cloud config + sshAuthorizedKeys : [str], default is Undefined, optional + SSHAuthorizedKeys is a list of public keys that CloudInit will apply to the guest's default user. + """ + + + cloudConfig?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfig + + rawCloudConfig?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitRawCloudConfig + + sshAuthorizedKeys?: [str] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfig: + """ + CloudConfig describes a subset of a Cloud-Init CloudConfig, used to bootstrap the VM. + Please note this field and RawCloudConfig are mutually exclusive. + + Attributes + ---------- + timezone : str, default is Undefined, optional + Timezone describes the timezone represented in /usr/share/zoneinfo. + user : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUser, default is Undefined, optional + user + users : [VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0], default is Undefined, optional + Users allows adding/configuring one or more users on the guest. + Please note if the first element in this list has a Name field set to "default", then that element will be serialized as "- default" when marshaling this list as part of generating a YAML CloudConfig. + write_files : [VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0], default is Undefined, optional + WriteFiles + """ + + + timezone?: str + + user?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUser + + users?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0] + + write_files?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUser: + """ + User enables overriding the "default_user" configuration from "/etc/cloud/cloud.cfg". + + Attributes + ---------- + create_groups : bool, default is Undefined, optional + CreateGroups is a flag that may be set to false to disable creation of specified user groups. + Defaults to true when Name is not "default". + expiredate : str, default is Undefined, optional + ExpireData is the date on which the user's account will be disabled. + gecos : str, default is Undefined, optional + Gecos is an optional comment about the user, usually a comma-separated string of the user's real name and contact information. + groups : [str], default is Undefined, optional + Groups is an optional list of groups to add to the user. + hashed_passwd : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUserHashedPasswd, default is Undefined, optional + hashed passwd + homedir : str, default is Undefined, optional + Homedir is the optional home directory for the user. + Defaults to "/home/" when Name is not "default". + inactive : int, default is Undefined, optional + Inactive optionally represents the number of days until the user is disabled. + lock_passwd : bool, default is Undefined, optional + LockPasswd disables password login. + Defaults to true when Name is not "default". + name : str, default is Undefined, required + Name is the user's login name. + Please note this field may be set to the special value of "default" when this User is the first element in the Users list from the CloudConfig. When set to "default", all other fields from this User must be nil. + no_create_home : bool, default is Undefined, optional + NoCreateHome prevents the creation of the home directory. + Defaults to false when Name is not "default". + no_log_init : bool, default is Undefined, optional + NoLogInit prevents the initialization of lastlog and faillog for the user. + Defaults to false when Name is not "default". + no_user_group : bool, default is Undefined, optional + NoUserGroup prevents the creation of the group named after the user. + Defaults to false when Name is not "default". + passwd : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUserPasswd, default is Undefined, optional + passwd + primary_group : str, default is Undefined, optional + PrimaryGroup is the primary group for the user. + Defaults to the value of the Name field when it is not "default". + selinux_user : str, default is Undefined, optional + SELinuxUser is the SELinux user for the user's login. + shell : str, default is Undefined, optional + Shell is the path to the user's login shell. + Please note the default is to set no shell, which results in a system-specific default being used. + snapuser : str, default is Undefined, optional + SnapUser specifies an e-mail address to create the user as a Snappy user through "snap create-user". + If an Ubuntu SSO account is associated with the address, the username and SSH keys will be requested from there. + ssh_authorized_keys : [str], default is Undefined, optional + SSHAuthorizedKeys is a list of SSH keys to add to the user's authorized keys file. + Please note this field may not be combined with SSHRedirectUser. + ssh_import_id : [str], default is Undefined, optional + SSHImportID is a list of SSH IDs to import for the user. + Please note this field may not be combined with SSHRedirectUser. + ssh_redirect_user : bool, default is Undefined, optional + SSHRedirectUser may be set to true to disable SSH logins for this user. + Please note that when specified, all SSH keys from cloud meta-data will be configured in a disabled state for this user. Any SSH login as this user will timeout with a message to login instead as the default user. + This field may not be combined with SSHAuthorizedKeys or SSHImportID. + Defaults to false when Name is not "default". + sudo : str, default is Undefined, optional + Sudo is a sudo rule to apply to the user. + When omitted, no sudo rules will be applied to the user. + system : bool, default is Undefined, optional + System is an optional flag that indicates the user should be created as a system user with no home directory. + Defaults to false when Name is not "default". + uid : int, default is Undefined, optional + UID is the user's ID. + When omitted the guest will default to the next available number. + """ + + + create_groups?: bool + + expiredate?: str + + gecos?: str + + groups?: [str] + + hashed_passwd?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUserHashedPasswd + + homedir?: str + + inactive?: int + + lock_passwd?: bool + + name: str + + no_create_home?: bool + + no_log_init?: bool + + no_user_group?: bool + + passwd?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUserPasswd + + primary_group?: str + + selinux_user?: str + + shell?: str + + snapuser?: str + + ssh_authorized_keys?: [str] + + ssh_import_id?: [str] + + ssh_redirect_user?: bool + + sudo?: str + + system?: bool + + uid?: int + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUserHashedPasswd: + """ + HashedPasswd is a hash of the user's password that will be applied even if the specified user already exists. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUserPasswd: + """ + Passwd is a hash of the user's password that will be applied only to a newly created user. To apply a new, hashed password to an existing user please use HashedPasswd instead. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0: + """ + User is a CloudConfig user data structure. + + Attributes + ---------- + create_groups : bool, default is Undefined, optional + CreateGroups is a flag that may be set to false to disable creation of specified user groups. + Defaults to true when Name is not "default". + expiredate : str, default is Undefined, optional + ExpireData is the date on which the user's account will be disabled. + gecos : str, default is Undefined, optional + Gecos is an optional comment about the user, usually a comma-separated string of the user's real name and contact information. + groups : [str], default is Undefined, optional + Groups is an optional list of groups to add to the user. + hashed_passwd : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0HashedPasswd, default is Undefined, optional + hashed passwd + homedir : str, default is Undefined, optional + Homedir is the optional home directory for the user. + Defaults to "/home/" when Name is not "default". + inactive : int, default is Undefined, optional + Inactive optionally represents the number of days until the user is disabled. + lock_passwd : bool, default is Undefined, optional + LockPasswd disables password login. + Defaults to true when Name is not "default". + name : str, default is Undefined, required + Name is the user's login name. + Please note this field may be set to the special value of "default" when this User is the first element in the Users list from the CloudConfig. When set to "default", all other fields from this User must be nil. + no_create_home : bool, default is Undefined, optional + NoCreateHome prevents the creation of the home directory. + Defaults to false when Name is not "default". + no_log_init : bool, default is Undefined, optional + NoLogInit prevents the initialization of lastlog and faillog for the user. + Defaults to false when Name is not "default". + no_user_group : bool, default is Undefined, optional + NoUserGroup prevents the creation of the group named after the user. + Defaults to false when Name is not "default". + passwd : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0Passwd, default is Undefined, optional + passwd + primary_group : str, default is Undefined, optional + PrimaryGroup is the primary group for the user. + Defaults to the value of the Name field when it is not "default". + selinux_user : str, default is Undefined, optional + SELinuxUser is the SELinux user for the user's login. + shell : str, default is Undefined, optional + Shell is the path to the user's login shell. + Please note the default is to set no shell, which results in a system-specific default being used. + snapuser : str, default is Undefined, optional + SnapUser specifies an e-mail address to create the user as a Snappy user through "snap create-user". + If an Ubuntu SSO account is associated with the address, the username and SSH keys will be requested from there. + ssh_authorized_keys : [str], default is Undefined, optional + SSHAuthorizedKeys is a list of SSH keys to add to the user's authorized keys file. + Please note this field may not be combined with SSHRedirectUser. + ssh_import_id : [str], default is Undefined, optional + SSHImportID is a list of SSH IDs to import for the user. + Please note this field may not be combined with SSHRedirectUser. + ssh_redirect_user : bool, default is Undefined, optional + SSHRedirectUser may be set to true to disable SSH logins for this user. + Please note that when specified, all SSH keys from cloud meta-data will be configured in a disabled state for this user. Any SSH login as this user will timeout with a message to login instead as the default user. + This field may not be combined with SSHAuthorizedKeys or SSHImportID. + Defaults to false when Name is not "default". + sudo : str, default is Undefined, optional + Sudo is a sudo rule to apply to the user. + When omitted, no sudo rules will be applied to the user. + system : bool, default is Undefined, optional + System is an optional flag that indicates the user should be created as a system user with no home directory. + Defaults to false when Name is not "default". + uid : int, default is Undefined, optional + UID is the user's ID. + When omitted the guest will default to the next available number. + """ + + + create_groups?: bool + + expiredate?: str + + gecos?: str + + groups?: [str] + + hashed_passwd?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0HashedPasswd + + homedir?: str + + inactive?: int + + lock_passwd?: bool + + name: str + + no_create_home?: bool + + no_log_init?: bool + + no_user_group?: bool + + passwd?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0Passwd + + primary_group?: str + + selinux_user?: str + + shell?: str + + snapuser?: str + + ssh_authorized_keys?: [str] + + ssh_import_id?: [str] + + ssh_redirect_user?: bool + + sudo?: str + + system?: bool + + uid?: int + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0HashedPasswd: + """ + HashedPasswd is a hash of the user's password that will be applied even if the specified user already exists. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigUsersItems0Passwd: + """ + Passwd is a hash of the user's password that will be applied only to a newly created user. To apply a new, hashed password to an existing user please use HashedPasswd instead. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0: + """ + WriteFile is a CloudConfig write_file data structure. + + Attributes + ---------- + append : bool, default is Undefined, optional + Append specifies whether or not to append the content to an existing file if the file specified by Path already exists. + content : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0Content, default is Undefined, optional + content + defer : bool, default is Undefined, optional + Defer indicates to defer writing the file until Cloud-Init's "final" stage, after users are created and packages are installed. + encoding : str, default is "text/plain", optional + Encoding is an optional encoding type of the content. + owner : str, default is "root:root", optional + Owner is an optional "owner:group" to chown the file. + path : str, default is Undefined, required + Path is the path of the file to which the content is decoded and written. + permissions : str, default is "0644", optional + Permissions an optional set of file permissions to set. + Please note the permissions should be specified as an octal string, ex. "0###". + When omitted the guest will default this value to "0644". + """ + + + append?: bool + + content?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0Content + + defer?: bool + + encoding?: "b64" | "base64" | "gz" | "gzip" | "gz+b64" | "gz+base64" | "gzip+b64" | "gzip+base64" | "text/plain" = "text/plain" + + owner?: str = "root:root" + + path: str + + permissions?: str = "0644" + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0Content: + """ + Content is the optional content to write to the provided Path. + When omitted an empty file will be created or existing file will be modified. + + Attributes + ---------- + from : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0ContentFrom, default is Undefined, optional + from + value : str, default is Undefined, optional + Value is used to directly specify a value. + Please note this field is mutually exclusive with the From field. + """ + + + from?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0ContentFrom + + value?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitCloudConfigWriteFilesItems0ContentFrom: + """ + From is specified to reference a value from a Secret resource. + Please note this field is mutually exclusive with the Value field. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapCloudInitRawCloudConfig: + """ + RawCloudConfig describes a key in a Secret resource that contains the CloudConfig data used to bootstrap the VM. + The CloudConfig data specified by the key may be plain-text, base64-encoded, or gzipped and base64-encoded. + Please note this field and CloudConfig are mutually exclusive. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapLinuxPrep: + """ + LinuxPrep may be used to bootstrap Linux guests. + The guest's networking stack is configured by Guest OS Customization (GOSC). + Please note this bootstrap provider may be used in conjunction with the VAppConfig bootstrap provider when wanting to configure the guest's network with GOSC but also send vApp/OVF properties into the guest. + This bootstrap provider may not be used in conjunction with the CloudInit or Sysprep bootstrap providers. + + Attributes + ---------- + hardwareClockIsUTC : bool, default is Undefined, optional + HardwareClockIsUTC specifies whether the hardware clock is in UTC or local time. + timeZone : str, default is Undefined, optional + TimeZone is a case-sensitive timezone, such as Europe/Sofia. + Valid values are based on the tz (timezone) database used by Linux and other Unix systems. The values are strings in the form of "Area/Location," in which Area is a continent or ocean name, and Location is the city, island, or other regional designation. + Please see https://kb.vmware.com/s/article/2145518 for a list of valid time zones for Linux systems. + """ + + + hardwareClockIsUTC?: bool + + timeZone?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprep: + """ + Sysprep may be used to bootstrap Windows guests. + The guest's networking stack is configured by Guest OS Customization (GOSC). + Please note this bootstrap provider may be used in conjunction with the VAppConfig bootstrap provider when wanting to configure the guest's network with GOSC but also send vApp/OVF properties into the guest. + This bootstrap provider may not be used in conjunction with the CloudInit or LinuxPrep bootstrap providers. + + Attributes + ---------- + rawSysprep : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepRawSysprep, default is Undefined, optional + raw sysprep + sysprep : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprep, default is Undefined, optional + sysprep + """ + + + rawSysprep?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepRawSysprep + + sysprep?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprep + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepRawSysprep: + """ + RawSysprep describes a key in a Secret resource that contains an XML string of the Sysprep text used to bootstrap the VM. + The data specified by the Secret key may be plain-text, base64-encoded, or gzipped and base64-encoded. + Please note this field and Sysprep are mutually exclusive. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprep: + """ + Sysprep is an object representation of a Windows sysprep.xml answer file. + This field encloses all the individual keys listed in a sysprep.xml file. + For more detailed information please see https://technet.microsoft.com/en-us/library/cc771830(v=ws.10).aspx. + Please note this field and RawSysprep are mutually exclusive. + + Attributes + ---------- + guiRunOnce : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiRunOnce, default is Undefined, optional + gui run once + guiUnattended : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiUnattended, default is Undefined, required + gui unattended + identification : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepIdentification, default is Undefined, required + identification + licenseFilePrintData : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepLicenseFilePrintData, default is Undefined, optional + license file print data + userData : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepUserData, default is Undefined, required + user data + """ + + + guiRunOnce?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiRunOnce + + guiUnattended: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiUnattended + + identification: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepIdentification + + licenseFilePrintData?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepLicenseFilePrintData + + userData: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepUserData + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiRunOnce: + """ + GUIRunOnce is a representation of the Sysprep GuiRunOnce key. + + Attributes + ---------- + commmands : [str], default is Undefined, optional + Commands is a list of commands to run at first user logon, after guest customization. + """ + + + commmands?: [str] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiUnattended: + """ + GUIUnattended is a representation of the Sysprep GUIUnattended key. + + Attributes + ---------- + autoLogon : bool, default is Undefined, optional + AutoLogon determine whether or not the machine automatically logs on as Administrator. + Please note if AutoLogin is true, then Password must be set or guest customization will fail. + autoLogonCount : int, default is Undefined, optional + AutoLogonCount specifies the number of times the machine should automatically log on as Administrator. + Generally it should be 1, but if your setup requires a number of reboots, you may want to increase it. This number may be determined by the list of commands executed by the GuiRunOnce command. + Please note this field only matters if AutoLogin is true. + password : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiUnattendedPassword, default is Undefined, optional + password + timeZone : int, default is Undefined, optional + TimeZone is the time zone index for the virtual machine. + Please note that numbers correspond to time zones listed at https://bit.ly/3Rzv8oL. + """ + + + autoLogon?: bool + + autoLogonCount?: int + + password?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiUnattendedPassword + + timeZone?: int + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepGuiUnattendedPassword: + """ + Password is the new administrator password for the machine. + To specify that the password should be set to blank (that is, no password), set the password value to NULL. Because of encryption, "" is NOT a valid value. + Please note if the password is set to blank and AutoLogon is true, the guest customization will fail. + If the XML file is generated by the VirtualCenter Customization Wizard, then the password is encrypted. Otherwise, the client should set the plainText attribute to true, so that the customization process does not attempt to decrypt the string. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepIdentification: + """ + Identification is a representation of the Sysprep Identification key. + + Attributes + ---------- + domainAdmin : str, default is Undefined, optional + DomainAdmin is the domain user account used for authentication if the virtual machine is joining a domain. The user does not need to be a domain administrator, but the account must have the privileges required to add computers to the domain. + domainAdminPassword : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepIdentificationDomainAdminPassword, default is Undefined, optional + domain admin password + joinDomain : str, default is Undefined, optional + JoinDomain is the domain that the virtual machine should join. If this value is supplied, then DomainAdmin and DomainAdminPassword must also be supplied, and the JoinWorkgroup name must be empty. + joinWorkgroup : str, default is Undefined, optional + JoinWorkgroup is the workgroup that the virtual machine should join. If this value is supplied, then the JoinDomain and the authentication fields (DomainAdmin and DomainAdminPassword) must be empty. + """ + + + domainAdmin?: str + + domainAdminPassword?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepIdentificationDomainAdminPassword + + joinDomain?: str + + joinWorkgroup?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepIdentificationDomainAdminPassword: + """ + DomainAdminPassword is the password for the domain user account used for authentication if the virtual machine is joining a domain. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepLicenseFilePrintData: + """ + LicenseFilePrintData is a representation of the Sysprep LicenseFilePrintData key. + Please note this is required only for Windows 2000 Server and Windows Server 2003. + + Attributes + ---------- + autoMode : str, default is Undefined, required + AutoMode specifies the server licensing mode. + autoUsers : int, default is Undefined, optional + AutoUsers indicates the number of client licenses purchased for the VirtualCenter server being installed. + Please note this value is ignored unless AutoMode is PerServer. + """ + + + autoMode: "perSeat" | "perServer" + + autoUsers?: int + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepUserData: + """ + UserData is a representation of the Sysprep UserData key. + + Attributes + ---------- + fullName : str, default is Undefined, optional + FullName is the user's full name. + orgName : str, default is Undefined, optional + OrgName is the name of the user's organization. + productID : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepUserDataProductID, default is Undefined, optional + product ID + """ + + + fullName?: str + + orgName?: str + + productID?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepUserDataProductID + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapSysprepSysprepUserDataProductID: + """ + ProductID is a valid serial number. + Please note unless the VirtualMachineImage was installed with a volume license key, ProductID must be set or guest customization will fail. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfig: + """ + VAppConfig may be used to bootstrap guests that rely on vApp properties (how VMware surfaces OVF properties on guests) to transport data into the guest. + The guest's networking stack may be configured using either vApp properties or GOSC. + Many OVFs define one or more properties that are used by the guest to bootstrap its networking stack. If the VirtualMachineImage defines one or more properties like this, then they can be configured to use the network data provided for this VM at runtime by setting these properties to Go template strings. + It is also possible to use GOSC to bootstrap this VM's network stack by configuring either the LinuxPrep or Sysprep bootstrap providers. + Please note the VAppConfig bootstrap provider in conjunction with the LinuxPrep bootstrap provider is the equivalent of setting the v1alpha1 VM metadata transport to "OvfEnv". + This bootstrap provider may not be used in conjunction with the CloudInit bootstrap provider. + + Attributes + ---------- + properties : [VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0], default is Undefined, optional + Properties is a list of vApp/OVF property key/value pairs. + Please note this field and RawProperties are mutually exclusive. + rawProperties : str, default is Undefined, optional + RawProperties is the name of a Secret resource in the same Namespace as this VM where each key/value pair from the Secret is used as a vApp key/value pair. + Please note this field and Properties are mutually exclusive. + """ + + + properties?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0] + + rawProperties?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0: + """ + KeyValueOrSecretKeySelectorPair is useful when wanting to realize a map as a list of key/value pairs where each value could also referenced data stored in a Secret resource. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key part of the key/value pair. + value : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0Value, default is Undefined, optional + value + """ + + + key: str + + value?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0Value + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0Value: + """ + Value is the optional value part of the key/value pair. + + Attributes + ---------- + from : VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0ValueFrom, default is Undefined, optional + from + value : str, default is Undefined, optional + Value is used to directly specify a value. + Please note this field is mutually exclusive with the From field. + """ + + + from?: VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0ValueFrom + + value?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecBootstrapVAppConfigPropertiesItems0ValueFrom: + """ + From is specified to reference a value from a Secret resource. + Please note this field is mutually exclusive with the Value field. + + Attributes + ---------- + key : str, default is Undefined, required + The key of the secret to select from. Must be a valid secret key. + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + optional : bool, default is Undefined, optional + Specify whether the Secret or its key must be defined + """ + + + key: str + + name?: str + + optional?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecNetwork: + """ + Network describes the desired network configuration for the VM. + Please note this value may be omitted entirely and the VM will be assigned a single, virtual network interface that is connected to the Namespace's default network. + + Attributes + ---------- + addresses : [str], default is Undefined, optional + Addresses is an optional list of IP4 or IP6 addresses to assign to the VM. + Please note this field is only supported if the connected network supports manual IP allocation. + Please note IP4 and IP6 addresses must include the network prefix length, ex. 192.168.0.10/24 or 2001:db8:101::a/64. + Please note this field may not contain IP4 addresses if DHCP4 is set to true or IP6 addresses if DHCP6 is set to true. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + deviceName : str, default is Undefined, optional + DeviceName describes the unique name of this network interface, used to distinguish it from other network interfaces attached to this VM. + This value is also used to rename the device inside the guest when the bootstrap provider is CloudInit. Please note it is up to the user to ensure the provided device name does not conflict with any other devices inside the guest, ex. dvd, cdrom, sda, etc. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + If the Interfaces field is empty and this field is not specified, then the default interface's name will be eth0. + dhcp4 : bool, default is Undefined, optional + DHCP4 indicates whether or not to use DHCP for IP4 networking. + Please note this field is only supported if the network connection supports DHCP. + Please note this field is mutually exclusive with IP4 addresses in the Addresses field and the Gateway4 field. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + dhcp6 : bool, default is Undefined, optional + DHCP6 indicates whether or not to use DHCP for IP6 networking. + Please note this field is only supported if the network connection supports DHCP. + Please note this field is mutually exclusive with IP4 addresses in the Addresses field and the Gateway6 field. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + disabled : bool, default is Undefined, optional + Disabled is a flag that indicates whether or not to disable networking for this VM. + When set to true, the VM is not configured with a default interface nor any specified from the Interfaces field. + gateway4 : str, default is Undefined, optional + Gateway4 is the default, IP4 gateway for this VM. + Please note this field is only supported if the network connection supports manual IP allocation. + If the network connection supports manual IP allocation and the Addresses field includes at least one IP4 address, then this field is required. + Please note the IP address must include the network prefix length, ex. 192.168.0.1/24. + Please note this field is mutually exclusive with DHCP4. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + gateway6 : str, default is Undefined, optional + Gateway6 is the primary IP6 gateway for this VM. + Please note this field is only supported if the network connection supports manual IP allocation. + If the network connection supports manual IP allocation and the Addresses field includes at least one IP4 address, then this field is required. + Please note the IP address must include the network prefix length, ex. 2001:db8:101::1/64. + Please note this field is mutually exclusive with DHCP6. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + hostName : str, default is Undefined, optional + HostName is the value the guest uses as its host name. If omitted then the name of the VM will be used. + Please note this feature is available only with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep (except for RawSysprep). + interfaces : [VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0], default is Undefined, optional + Interfaces is the list of network interfaces used by this VM. + Please note this field is mutually exclusive with the following fields: DeviceName, Network, Addresses, DHCP4, DHCP6, Gateway4, Gateway6, MTU, Nameservers, Routes, and SearchDomains. + mtu : int, default is Undefined, optional + MTU is the Maximum Transmission Unit size in bytes. + Please note this feature is available only with the following bootstrap providers: CloudInit. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IP4 and/or IP6 addresses used as DNS nameservers. + Please note this feature is available only with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep (except for RawSysprep). + Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + network : VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkNetwork, default is Undefined, optional + network + routes : [VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes. + Please note this feature is available only with the following bootstrap providers: CloudInit. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + Please note this feature is available only with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep (except for RawSysprep). + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + """ + + + addresses?: [str] + + deviceName?: str + + dhcp4?: bool + + dhcp6?: bool + + disabled?: bool + + gateway4?: str + + gateway6?: str + + hostName?: str + + interfaces?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0] + + mtu?: int + + nameservers?: [str] + + network?: VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkNetwork + + routes?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkRoutesItems0] + + searchDomains?: [str] + + + check: + regex.match(str(deviceName), r"^\w\w+$") if deviceName + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0: + """ + VirtualMachineNetworkInterfaceSpec describes the desired state of a VM's network interface. + + Attributes + ---------- + addresses : [str], default is Undefined, optional + Addresses is an optional list of IP4 or IP6 addresses to assign to this interface. + Please note this field is only supported if the connected network supports manual IP allocation. + Please note IP4 and IP6 addresses must include the network prefix length, ex. 192.168.0.10/24 or 2001:db8:101::a/64. + Please note this field may not contain IP4 addresses if DHCP4 is set to true or IP6 addresses if DHCP6 is set to true. + Please note if the Interfaces field is non-empty then this field is ignored and should be specified on the elements in the Interfaces list. + dhcp4 : bool, default is Undefined, optional + DHCP4 indicates whether or not this interface uses DHCP for IP4 networking. + Please note this field is only supported if the network connection supports DHCP. + Please note this field is mutually exclusive with IP4 addresses in the Addresses field and the Gateway4 field. + dhcp6 : bool, default is Undefined, optional + DHCP6 indicates whether or not this interface uses DHCP for IP6 networking. + Please note this field is only supported if the network connection supports DHCP. + Please note this field is mutually exclusive with IP4 addresses in the Addresses field and the Gateway6 field. + gateway4 : str, default is Undefined, optional + Gateway4 is the default, IP4 gateway for this interface. + Please note this field is only supported if the network connection supports manual IP allocation. + If the network connection supports manual IP allocation and the Addresses field includes at least one IP4 address, then this field is required. + Please note the IP address must include the network prefix length, ex. 192.168.0.1/24. + Please note this field is mutually exclusive with DHCP4. + gateway6 : str, default is Undefined, optional + Gateway6 is the primary IP6 gateway for this interface. + Please note this field is only supported if the network connection supports manual IP allocation. + If the network connection supports manual IP allocation and the Addresses field includes at least one IP4 address, then this field is required. + Please note the IP address must include the network prefix length, ex. 2001:db8:101::1/64. + Please note this field is mutually exclusive with DHCP6. + mtu : int, default is Undefined, optional + MTU is the Maximum Transmission Unit size in bytes. + Please note this feature is available only with the following bootstrap providers: CloudInit. + name : str, default is Undefined, required + Name describes the unique name of this network interface, used to distinguish it from other network interfaces attached to this VM. + This value is also used to rename the device inside the guest when the bootstrap provider is CloudInit. Please note it is up to the user to ensure the provided device name does not conflict with any other devices inside the guest, ex. dvd, cdrom, sda, etc. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IP4 and/or IP6 addresses used as DNS nameservers. + Please note this feature is available only with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep (except for RawSysprep). + Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + network : VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0Network, default is Undefined, optional + network + routes : [VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes. + Please note this feature is available only with the following bootstrap providers: CloudInit. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + Please note this feature is available only with the following bootstrap providers: CloudInit, LinuxPrep, and Sysprep (except for RawSysprep). + """ + + + addresses?: [str] + + dhcp4?: bool + + dhcp6?: bool + + gateway4?: str + + gateway6?: str + + mtu?: int + + name: str + + nameservers?: [str] + + network?: VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0Network + + routes?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0RoutesItems0] + + searchDomains?: [str] + + + check: + regex.match(str(name), r"^\w\w+$") + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0Network: + """ + Network is the name of the network resource to which this interface is connected. + If no network is provided, then this interface will be connected to the Namespace's default network. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + 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 Undefined, optional + 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 + name : str, default is Undefined, required + Name refers to a unique resource in the current namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names + """ + + + apiVersion?: str + + kind?: str + + name: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkInterfacesItems0RoutesItems0: + """ + VirtualMachineNetworkRouteSpec defines a static route for a guest. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IP4 address. + via : str, default is Undefined, required + Via is an IP4 address. + """ + + + metric: int + + to: str + + via: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkNetwork: + """ + Network is the optional name of the network resource to which this VM is connected. + Please note if the Interfaces field is non-empty then this field is ignored. + If networking is not disabled, no interfaces are defined, and this value is omitted, then the VM will be provided a single virtual network interface and connected to the Namespace's default network. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + 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 Undefined, optional + 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 + name : str, default is Undefined, required + Name refers to a unique resource in the current namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names + """ + + + apiVersion?: str + + kind?: str + + name: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecNetworkRoutesItems0: + """ + VirtualMachineNetworkRouteSpec defines a static route for a guest. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IP4 address. + via : str, default is Undefined, required + Via is an IP4 address. + """ + + + metric: int + + to: str + + via: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessGatesItems0: + """ + VirtualMachineReadinessGate contains the reference to a VM condition. + + Attributes + ---------- + conditionType : str, default is Undefined, required + ConditionType refers to a condition in the VM's condition list with matching type. + """ + + + conditionType: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbe: + """ + ReadinessProbe describes a probe used to determine the VM's ready state. + + Attributes + ---------- + guestHeartbeat : VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeGuestHeartbeat, default is Undefined, optional + guest heartbeat + guestInfo : [VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeGuestInfoItems0], default is Undefined, optional + GuestInfo specifies an action involving key/value pairs from GuestInfo. + The elements are evaluated with the logical AND operator, meaning all expressions must evaluate as true for the probe to succeed. + For example, a VM resource's probe definition could be specified as the following: + guestInfo: - key: ready value: true + With the above configuration in place, the VM would not be considered ready until the GuestInfo key "ready" was set to the value "true". + From within the guest operating system it is possible to set GuestInfo key/value pairs using the program "vmware-rpctool," which is included with VM Tools. For example, the following command will set the key "guestinfo.ready" to the value "true": + vmware-rpctool "info-set guestinfo.ready true" + Once executed, the VM's readiness probe will be signaled and the VM resource will be marked as ready. + periodSeconds : int, default is Undefined, optional + PeriodSeconds specifics how often (in seconds) to perform the probe. Defaults to 10 seconds. Minimum value is 1. + tcpSocket : VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeTCPSocket, default is Undefined, optional + tcp socket + timeoutSeconds : int, default is Undefined, optional + TimeoutSeconds specifies a number of seconds after which the probe times out. Defaults to 10 seconds. Minimum value is 1. + """ + + + guestHeartbeat?: VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeGuestHeartbeat + + guestInfo?: [VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeGuestInfoItems0] + + periodSeconds?: int + + tcpSocket?: VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeTCPSocket + + timeoutSeconds?: int + + + check: + periodSeconds >= 1 + timeoutSeconds <= 60 + timeoutSeconds >= 1 + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeGuestHeartbeat: + """ + GuestHeartbeat specifies an action involving the guest heartbeat status. + + Attributes + ---------- + thresholdStatus : str, default is "green", optional + ThresholdStatus is the value that the guest heartbeat status must be at or above to be considered successful. + """ + + + thresholdStatus?: "yellow" | "green" = "green" + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeGuestInfoItems0: + """ + GuestInfoAction describes a key from GuestInfo that must match the associated value expression. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the name of the GuestInfo key. + Values are automatically prefixed with "guestinfo." before being evaluated. Thus if the key "guestinfo.mykey" is provided, it will be evaluated as "guestinfo.guestinfo.mykey". + value : str, default is Undefined, optional + Value is a regular expression that is matched against the value of the specified key. + An empty value is the equivalent of "match any" or ".*". + All values must adhere to the RE2 regular expression syntax as documented at https://golang.org/s/re2syntax. Invalid values may be rejected or ignored depending on the implementation of this API. Either way, invalid values will not be considered when evaluating the ready state of a VM. + """ + + + key: str + + value?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecReadinessProbeTCPSocket: + """ + TCPSocket specifies an action involving a TCP port. + + Attributes + ---------- + host : str, default is Undefined, optional + Host is an optional host name to connect to. Host defaults to the VM IP. + port : int | str, default is Undefined, required + Port specifies a number or name of the port to access on the VM. If the format of port is a number, it must be in the range 1 to 65535. If the format of name is a string, it must be an IANA_SVC_NAME. + """ + + + host?: str + + port: int | str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecReserved: + """ + Reserved describes a set of VM configuration options reserved for system use. + Please note attempts to modify the value of this field by a DevOps user will result in a validation error. + + Attributes + ---------- + resourcePolicyName : str, default is Undefined, optional + ResourcePolicyName describes the name of a VirtualMachineSetResourcePolicy resource used to configure the VM's resource policy. + """ + + + resourcePolicyName?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0: + """ + VirtualMachineVolume represents a named volume in a VM. + + Attributes + ---------- + name : str, default is Undefined, required + Name represents the volume's name. Must be a DNS_LABEL and unique within the VM. + persistentVolumeClaim : VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0PersistentVolumeClaim, default is Undefined, optional + persistent volume claim + """ + + + name: str + + persistentVolumeClaim?: VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0PersistentVolumeClaim + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0PersistentVolumeClaim: + """ + PersistentVolumeClaim represents a reference to a PersistentVolumeClaim in the same namespace. + More information is available at https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims. + + Attributes + ---------- + claimName : str, default is Undefined, required + claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims + instanceVolumeClaim : VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0PersistentVolumeClaimInstanceVolumeClaim, default is Undefined, optional + instance volume claim + readOnly : bool, default is Undefined, optional + readOnly Will force the ReadOnly setting in VolumeMounts. Default false. + """ + + + claimName: str + + instanceVolumeClaim?: VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0PersistentVolumeClaimInstanceVolumeClaim + + readOnly?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSpecVolumesItems0PersistentVolumeClaimInstanceVolumeClaim: + """ + InstanceVolumeClaim is set if the PVC is backed by instance storage. + + Attributes + ---------- + size : int | str, default is Undefined, required + Size is the size of the requested instance storage volume. + storageClass : str, default is Undefined, required + StorageClass is the name of the Kubernetes StorageClass that provides the backing storage for this instance storage volume. + """ + + + size: int | str + + storageClass: str + + + check: + regex.match(str(size), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatus: + """ + VirtualMachineStatus defines the observed state of a VirtualMachine instance. + + Attributes + ---------- + biosUUID : str, default is Undefined, optional + BiosUUID describes a unique identifier provided by the underlying infrastructure provider that is exposed to the Guest OS BIOS as a unique hardware identifier. + changeBlockTracking : bool, default is Undefined, optional + ChangeBlockTracking describes the CBT enablement status on the VM. + class : VmoperatorVmwareComV1alpha2VirtualMachineStatusClass, default is Undefined, optional + class + conditions : [VmoperatorVmwareComV1alpha2VirtualMachineStatusConditionsItems0], default is Undefined, optional + Conditions describes the observed conditions of the VirtualMachine. + host : str, default is Undefined, optional + Host describes the hostname or IP address of the infrastructure host where the VM is executed. + image : VmoperatorVmwareComV1alpha2VirtualMachineStatusImage, default is Undefined, optional + image + instanceUUID : str, default is Undefined, optional + InstanceUUID describes the unique instance UUID provided by the underlying infrastructure provider, such as vSphere. + lastRestartTime : str, default is Undefined, optional + LastRestartTime describes the last time the VM was restarted. + network : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetwork, default is Undefined, optional + network + powerState : str, default is Undefined, optional + PowerState describes the observed power state of the VirtualMachine. + uniqueID : str, default is Undefined, optional + UniqueID describes a unique identifier that is provided by the underlying infrastructure provider, such as vSphere. + volumes : [VmoperatorVmwareComV1alpha2VirtualMachineStatusVolumesItems0], default is Undefined, optional + Volumes describes a list of current status information for each Volume that is desired to be attached to the VM. + zone : str, default is Undefined, optional + Zone describes the availability zone where the VirtualMachine has been scheduled. + Please note this field may be empty when the cluster is not zone-aware. + """ + + + biosUUID?: str + + changeBlockTracking?: bool + + class?: VmoperatorVmwareComV1alpha2VirtualMachineStatusClass + + conditions?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusConditionsItems0] + + host?: str + + image?: VmoperatorVmwareComV1alpha2VirtualMachineStatusImage + + instanceUUID?: str + + lastRestartTime?: str + + network?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetwork + + powerState?: "PoweredOff" | "PoweredOn" | "Suspended" + + uniqueID?: str + + volumes?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusVolumesItems0] + + zone?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusClass: + """ + Class is a reference to the VirtualMachineClass resource used to deploy this VM. + + Attributes + ---------- + apiVersion : str, default is Undefined, required + APIVersion defines the versioned schema of this representation of an object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is Undefined, 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 + name : str, default is Undefined, required + Name refers to a unique resource in the current namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names + """ + + + apiVersion: str + + kind: str + + name: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusConditionsItems0: + """ + Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` + // other fields } + + 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, required + message is a human readable message indicating details about the transition. This may be an empty string. + observedGeneration : int, default is Undefined, optional + observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + reason : str, default is Undefined, required + reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + """ + + + lastTransitionTime: str + + message: str + + observedGeneration?: int + + reason: str + + status: "True" | "False" | "Unknown" + + $type: str + + + check: + len(message) <= 32768 + observedGeneration >= 0 + len(reason) <= 1024 + len(reason) >= 1 + regex.match(str(reason), r"^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$") + len($type) <= 316 + regex.match(str($type), r"^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$") + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusImage: + """ + Image is a reference to the VirtualMachineImage resource used to deploy this VM. + + Attributes + ---------- + apiVersion : str, default is Undefined, required + APIVersion defines the versioned schema of this representation of an object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is Undefined, 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 + name : str, default is Undefined, required + Name refers to a unique resource in the current namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names + """ + + + apiVersion: str + + kind: str + + name: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetwork: + """ + Network describes the observed state of the VM's network configuration. Please note much of the network status information is only available if the guest has VM Tools installed. + + Attributes + ---------- + dhcp : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcp, default is Undefined, optional + dhcp + dns : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDNS, default is Undefined, optional + dns + interfaces : [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0], default is Undefined, optional + Interfaces describes the status of the VM's network interfaces. + ipRoutes : [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkIPRoutesItems0], default is Undefined, optional + IPRoutes contain the VM's routing tables for all address families. + kernelConfig : [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkKernelConfigItems0], default is Undefined, optional + KernelConfig describes the observed state of the VM's kernel IP configuration settings. + The key part contains a unique number while the value part contains the 'key=value' as provided by the underlying provider. For example, on Linux and/or BSD, the systcl -a output would be reported as: key='5', value='net.ipv4.tcp_keepalive_time = 7200'. + primaryIP4 : str, default is Undefined, optional + PrimaryIP4 describes the VM's primary IP4 address. + If the bootstrap provider is CloudInit then this value is set to the value of the VM's "guestinfo.local-ipv4" property. Please see https://bit.ly/3NJB534 for more information on how this value is calculated. + If the bootstrap provider is anything else then this field is set to the value of the infrastructure VM's "guest.ipAddress" field. Please see https://bit.ly/3Au0jM4 for more information. + primaryIP6 : str, default is Undefined, optional + PrimaryIP6 describes the VM's primary IP6 address. + If the bootstrap provider is CloudInit then this value is set to the value of the VM's "guestinfo.local-ipv6" property. Please see https://bit.ly/3NJB534 for more information on how this value is calculated. + If the bootstrap provider is anything else then this field is set to the value of the infrastructure VM's "guest.ipAddress" field. Please see https://bit.ly/3Au0jM4 for more information. + """ + + + dhcp?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcp + + dns?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDNS + + interfaces?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0] + + ipRoutes?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkIPRoutesItems0] + + kernelConfig?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkKernelConfigItems0] + + primaryIP4?: str + + primaryIP6?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDNS: + """ + DNS describes the VM's observed, client-side DNS configuration. + + Attributes + ---------- + dhcp : bool, default is Undefined, optional + DHCP indicates whether or not dynamic host control protocol (DHCP) was used to configure DNS configuration. + domainName : str, default is Undefined, optional + DomainName is the domain name portion of the DNS name. For example, the "domain.local" part of "my-vm.domain.local". + hostName : str, default is Undefined, optional + HostName is the host name portion of the DNS name. For example, the "my-vm" part of "my-vm.domain.local". + nameservers : [str], default is Undefined, optional + Nameservers is a list of the IP addresses for the DNS servers to use. + IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". + IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of domains in which to search for hosts, in the order of preference. + """ + + + dhcp?: bool + + domainName?: str + + hostName?: str + + nameservers?: [str] + + searchDomains?: [str] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcp: + """ + DHCP describes the VM's observed, client-side, system-wide DHCP options. + + Attributes + ---------- + ip4 : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp4, default is Undefined, optional + ip4 + ip6 : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp6, default is Undefined, optional + ip6 + """ + + + ip4?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp4 + + ip6?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp6 + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp4: + """ + IP4 describes the observed state of the IP4 DHCP client settings. + + Attributes + ---------- + config : [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp4ConfigItems0], default is Undefined, optional + Config describes platform-dependent settings for the DHCP client. + The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: key='1', value='timeout 60;' key='2', value='reboot 10;'. The output reported per interface would be: key='1', value='prepend domain-name-servers 192.0.2.1;' key='2', value='require subnet-mask, domain-name-servers;'. + enabled : bool, default is Undefined, optional + Enabled reports the status of the DHCP client services. + """ + + + config?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp4ConfigItems0] + + enabled?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp4ConfigItems0: + """ + KeyValuePair is useful when wanting to realize a map as a list of key/value pairs. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key part of the key/value pair. + value : str, default is Undefined, optional + Value is the optional value part of the key/value pair. + """ + + + key: str + + value?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp6: + """ + IP6 describes the observed state of the IP6 DHCP client settings. + + Attributes + ---------- + config : [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp6ConfigItems0], default is Undefined, optional + Config describes platform-dependent settings for the DHCP client. + The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: key='1', value='timeout 60;' key='2', value='reboot 10;'. The output reported per interface would be: key='1', value='prepend domain-name-servers 192.0.2.1;' key='2', value='require subnet-mask, domain-name-servers;'. + enabled : bool, default is Undefined, optional + Enabled reports the status of the DHCP client services. + """ + + + config?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp6ConfigItems0] + + enabled?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkDhcpIp6ConfigItems0: + """ + KeyValuePair is useful when wanting to realize a map as a list of key/value pairs. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key part of the key/value pair. + value : str, default is Undefined, optional + Value is the optional value part of the key/value pair. + """ + + + key: str + + value?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkIPRoutesItems0: + """ + VirtualMachineNetworkIPRouteStatus describes the observed state of a guest network's IP routes. + + Attributes + ---------- + gateway : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkIPRoutesItems0Gateway, default is Undefined, required + gateway + networkAddress : str, default is Undefined, required + NetworkAddress is the IP4 or IP6 address of the destination network. + Addresses include the network's prefix length, ex. 192.168.0.0/24 or 2001:DB8:101::230:6eff:fe04:d9ff::/64. + IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373. + """ + + + gateway: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkIPRoutesItems0Gateway + + networkAddress: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkIPRoutesItems0Gateway: + """ + Gateway describes where to send the packets to next. + + Attributes + ---------- + address : str, default is Undefined, optional + Address is the IP4 or IP6 address of the gateway. + device : str, default is Undefined, optional + Device is the name of the device in the guest for which this gateway applies. + """ + + + address?: str + + device?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0: + """ + VirtualMachineNetworkInterfaceStatus describes the observed state of a VM's network interface. + + Attributes + ---------- + dns : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0DNS, default is Undefined, optional + dns + ip : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IP, default is Undefined, optional + ip + name : str, default is Undefined, required + Name describes the unique name of this network interface, used to distinguish it from other network interfaces attached to this VM. + Please note this name is not related to the name of the device as it is surfaced inside of the guest. + """ + + + dns?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0DNS + + ip?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IP + + name: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0DNS: + """ + DNS describes the observed state of the interface's DNS configuration. + + Attributes + ---------- + dhcp : bool, default is Undefined, optional + DHCP indicates whether or not dynamic host control protocol (DHCP) was used to configure DNS configuration. + domainName : str, default is Undefined, optional + DomainName is the domain name portion of the DNS name. For example, the "domain.local" part of "my-vm.domain.local". + hostName : str, default is Undefined, optional + HostName is the host name portion of the DNS name. For example, the "my-vm" part of "my-vm.domain.local". + nameservers : [str], default is Undefined, optional + Nameservers is a list of the IP addresses for the DNS servers to use. + IP4 addresses are specified using dotted decimal notation. For example, "192.0.2.1". + IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of domains in which to search for hosts, in the order of preference. + """ + + + dhcp?: bool + + domainName?: str + + hostName?: str + + nameservers?: [str] + + searchDomains?: [str] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IP: + """ + IP describes the observed state of the interface's IP configuration. + + Attributes + ---------- + addresses : [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPAddressesItems0], default is Undefined, optional + Addresses describes observed IP addresses for this interface. + autoConfigurationEnabled : bool, default is Undefined, optional + AutoConfigurationEnabled describes whether or not ICMPv6 router solicitation requests are enabled or disabled from a given interface. + These requests acquire an IP6 address and default gateway route from zero-to-many routers on the connected network. + If not set then ICMPv6 is not available on this VM. + dhcp : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcp, default is Undefined, optional + dhcp + macAddr : str, default is Undefined, optional + MACAddr describes the observed MAC address for this interface. + """ + + + addresses?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPAddressesItems0] + + autoConfigurationEnabled?: bool + + dhcp?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcp + + macAddr?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPAddressesItems0: + """ + VirtualMachineNetworkInterfaceIPAddrStatus describes information about a specific IP address. + + Attributes + ---------- + address : str, default is Undefined, required + Address is an IP4 or IP6 address and their network prefix length. + An IP4 address is specified using dotted decimal notation. For example, "192.0.2.1". + IP6 addresses are 128-bit addresses represented as eight fields of up to four hexadecimal digits. A colon separates each field (:). For example, 2001:DB8:101::230:6eff:fe04:d9ff. The address can also consist of the symbol '::' to represent multiple 16-bit groups of contiguous 0's only once in an address as described in RFC 2373. + lifetime : str, default is Undefined, optional + Lifetime describes when this address will expire. + origin : str, default is Undefined, optional + Origin describes how this address was configured. + state : str, default is Undefined, optional + State describes the state of this IP address. + """ + + + address: str + + lifetime?: str + + origin?: "dhcp" | "linklayer" | "manual" | "other" | "random" + + state?: "deprecated" | "duplicate" | "inaccessible" | "invalid" | "preferred" | "tentative" | "unknown" + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcp: + """ + DHCP describes the VM's observed, client-side, interface-specific DHCP options. + + Attributes + ---------- + ip4 : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp4, default is Undefined, optional + ip4 + ip6 : VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp6, default is Undefined, optional + ip6 + """ + + + ip4?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp4 + + ip6?: VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp6 + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp4: + """ + IP4 describes the observed state of the IP4 DHCP client settings. + + Attributes + ---------- + config : [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp4ConfigItems0], default is Undefined, optional + Config describes platform-dependent settings for the DHCP client. + The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: key='1', value='timeout 60;' key='2', value='reboot 10;'. The output reported per interface would be: key='1', value='prepend domain-name-servers 192.0.2.1;' key='2', value='require subnet-mask, domain-name-servers;'. + enabled : bool, default is Undefined, optional + Enabled reports the status of the DHCP client services. + """ + + + config?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp4ConfigItems0] + + enabled?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp4ConfigItems0: + """ + KeyValuePair is useful when wanting to realize a map as a list of key/value pairs. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key part of the key/value pair. + value : str, default is Undefined, optional + Value is the optional value part of the key/value pair. + """ + + + key: str + + value?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp6: + """ + IP6 describes the observed state of the IP6 DHCP client settings. + + Attributes + ---------- + config : [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp6ConfigItems0], default is Undefined, optional + Config describes platform-dependent settings for the DHCP client. + The key part is a unique number while the value part is the platform specific configuration command. For example on Linux and BSD systems using the file dhclient.conf output would be reported at system scope: key='1', value='timeout 60;' key='2', value='reboot 10;'. The output reported per interface would be: key='1', value='prepend domain-name-servers 192.0.2.1;' key='2', value='require subnet-mask, domain-name-servers;'. + enabled : bool, default is Undefined, optional + Enabled reports the status of the DHCP client services. + """ + + + config?: [VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp6ConfigItems0] + + enabled?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkInterfacesItems0IPDhcpIp6ConfigItems0: + """ + KeyValuePair is useful when wanting to realize a map as a list of key/value pairs. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key part of the key/value pair. + value : str, default is Undefined, optional + Value is the optional value part of the key/value pair. + """ + + + key: str + + value?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusNetworkKernelConfigItems0: + """ + KeyValuePair is useful when wanting to realize a map as a list of key/value pairs. + + Attributes + ---------- + key : str, default is Undefined, required + Key is the key part of the key/value pair. + value : str, default is Undefined, optional + Value is the optional value part of the key/value pair. + """ + + + key: str + + value?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineStatusVolumesItems0: + """ + VirtualMachineVolumeStatus defines the observed state of a VirtualMachineVolume instance. + + Attributes + ---------- + attached : bool, default is Undefined, optional + Attached represents whether a volume has been successfully attached to the VirtualMachine or not. + diskUUID : str, default is Undefined, optional + DiskUUID represents the underlying virtual disk UUID and is present when attachment succeeds. + error : str, default is Undefined, optional + Error represents the last error seen when attaching or detaching a volume. Error will be empty if attachment succeeds. + name : str, default is Undefined, required + Name is the name of the attached volume. + """ + + + attached?: bool + + diskUUID?: str + + error?: str + + name: str + + diff --git a/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_class.k b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_class.k new file mode 100644 index 00000000..710dbdbc --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_class.k @@ -0,0 +1,341 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema VirtualMachineClass: + """ + VirtualMachineClass is the schema for the virtualmachineclasses API and represents the desired state and observed status of a virtualmachineclasses resource. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha2", 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 "VirtualMachineClass", 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 : VmoperatorVmwareComV1alpha2VirtualMachineClassSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha2VirtualMachineClassStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha2" = "vmoperator.vmware.com/v1alpha2" + + kind: "VirtualMachineClass" = "VirtualMachineClass" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha2VirtualMachineClassSpec + + status?: VmoperatorVmwareComV1alpha2VirtualMachineClassStatus + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpec: + """ + VirtualMachineClassSpec defines the desired state of VirtualMachineClass. + + Attributes + ---------- + configSpec : any, default is Undefined, optional + ConfigSpec describes additional configuration information for a VirtualMachine. The contents of this field are the VirtualMachineConfigSpec data object (https://bit.ly/3HDtiRu) marshaled to JSON using the discriminator field "_typeName" to preserve type information. + controllerName : str, default is Undefined, optional + ControllerName describes the name of the controller responsible for reconciling VirtualMachine resources that are realized from this VirtualMachineClass. + When omitted, controllers reconciling VirtualMachine resources determine the default controller name from the environment variable DEFAULT_VM_CLASS_CONTROLLER_NAME. If this environment variable is not defined or empty, it defaults to vmoperator.vmware.com/vsphere. + Once a non-empty value is assigned to this field, attempts to set this field to an empty value will be silently ignored. + description : str, default is Undefined, optional + Description describes the configuration of the VirtualMachineClass which is not related to virtual hardware or infrastructure policy. This field is used to address remaining specs about this VirtualMachineClass. + hardware : VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardware, default is Undefined, optional + hardware + policies : VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPolicies, default is Undefined, optional + policies + """ + + + configSpec?: any + + controllerName?: str + + description?: str + + hardware?: VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardware + + policies?: VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPolicies + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardware: + """ + Hardware describes the configuration of the VirtualMachineClass attributes related to virtual hardware. The configuration specified in this field is used to customize the virtual hardware characteristics of any VirtualMachine associated with this VirtualMachineClass. + + Attributes + ---------- + cpus : int, default is Undefined, optional + cpus + devices : VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevices, default is Undefined, optional + devices + instanceStorage : VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareInstanceStorage, default is Undefined, optional + instance storage + memory : int | str, default is Undefined, optional + memory + """ + + + cpus?: int + + devices?: VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevices + + instanceStorage?: VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareInstanceStorage + + memory?: int | str + + + check: + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevices: + """ + VirtualDevices contains information about the virtual devices associated with a VirtualMachineClass. + + Attributes + ---------- + dynamicDirectPathIODevices : [VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevicesDynamicDirectPathIODevicesItems0], default is Undefined, optional + dynamic direct path i o devices + vgpuDevices : [VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevicesVgpuDevicesItems0], default is Undefined, optional + vgpu devices + """ + + + dynamicDirectPathIODevices?: [VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevicesDynamicDirectPathIODevicesItems0] + + vgpuDevices?: [VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevicesVgpuDevicesItems0] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevicesDynamicDirectPathIODevicesItems0: + """ + DynamicDirectPathIODevice contains the configuration corresponding to a Dynamic DirectPath I/O device. + + Attributes + ---------- + customLabel : str, default is Undefined, optional + custom label + deviceID : int, default is Undefined, required + device ID + vendorID : int, default is Undefined, required + vendor ID + """ + + + customLabel?: str + + deviceID: int + + vendorID: int + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareDevicesVgpuDevicesItems0: + """ + VGPUDevice contains the configuration corresponding to a vGPU device. + + Attributes + ---------- + profileName : str, default is Undefined, required + profile name + """ + + + profileName: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareInstanceStorage: + """ + InstanceStorage provides information used to configure instance storage volumes for a VirtualMachine. + + Attributes + ---------- + storageClass : str, default is Undefined, optional + StorageClass refers to the name of a StorageClass resource used to provide the storage for the configured instance storage volumes. The value of this field has no relationship to or bearing on the field virtualMachine.spec.storageClass. Please note the referred StorageClass must be available in the same namespace as the VirtualMachineClass that uses it for configuring instance storage. + volumes : [VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareInstanceStorageVolumesItems0], default is Undefined, optional + Volumes describes instance storage volumes created for a VirtualMachine instance that use this VirtualMachineClass. + """ + + + storageClass?: str + + volumes?: [VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareInstanceStorageVolumesItems0] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecHardwareInstanceStorageVolumesItems0: + """ + InstanceStorageVolume contains information required to create an instance storage volume on a VirtualMachine. + + Attributes + ---------- + size : int | str, default is Undefined, required + size + """ + + + size: int | str + + + check: + regex.match(str(size), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPolicies: + """ + Policies describes the configuration of the VirtualMachineClass attributes related to virtual infrastructure policy. The configuration specified in this field is used to customize various policies related to infrastructure resource consumption. + + Attributes + ---------- + resources : VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResources, default is Undefined, optional + resources + """ + + + resources?: VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResources + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResources: + """ + VirtualMachineClassResources describes the virtual hardware resource reservations and limits configuration to be used by a VirtualMachineClass. + + Attributes + ---------- + limits : VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResourcesLimits, default is Undefined, optional + limits + requests : VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResourcesRequests, default is Undefined, optional + requests + """ + + + limits?: VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResourcesLimits + + requests?: VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResourcesRequests + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResourcesLimits: + """ + VirtualMachineResourceSpec describes a virtual hardware policy specification. + + Attributes + ---------- + cpu : int | str, default is Undefined, optional + cpu + memory : int | str, default is Undefined, optional + memory + """ + + + cpu?: int | str + + memory?: int | str + + + check: + regex.match(str(cpu), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if cpu + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassSpecPoliciesResourcesRequests: + """ + VirtualMachineResourceSpec describes a virtual hardware policy specification. + + Attributes + ---------- + cpu : int | str, default is Undefined, optional + cpu + memory : int | str, default is Undefined, optional + memory + """ + + + cpu?: int | str + + memory?: int | str + + + check: + regex.match(str(cpu), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if cpu + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassStatus: + """ + VirtualMachineClassStatus defines the observed state of VirtualMachineClass. + + Attributes + ---------- + capabilities : [str], default is Undefined, optional + Capabilities describes the class's observed capabilities. + The capabilities are discerned when VM Operator reconciles a class and inspects its specification. Well-known capabilities include: + * instance-storage * nvidia-gpu * sriov-net + In addition to "nvidia-gpu", a capability is added for every nVidia profile name associated with the class. + Every capability is also added to the resource's labels as VirtualMachineClassCapabilityLabel + Value. For example, if the capability is "nvidia-gpu" then the following label will be added to the resource: capability.class.vmoperator.vmware.com/nvidia-gpu. + conditions : [VmoperatorVmwareComV1alpha2VirtualMachineClassStatusConditionsItems0], default is Undefined, optional + Conditions describes the observed conditions of the VirtualMachineClass. + ready : bool, default is Undefined, optional + Ready describes whether the class's hardware can be realized in the cluster. + This field is only set to true if all of the class resource's conditions have Status=True. + """ + + + capabilities?: [str] + + conditions?: [VmoperatorVmwareComV1alpha2VirtualMachineClassStatusConditionsItems0] + + ready?: bool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineClassStatusConditionsItems0: + """ + Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` + // other fields } + + 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, required + message is a human readable message indicating details about the transition. This may be an empty string. + observedGeneration : int, default is Undefined, optional + observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + reason : str, default is Undefined, required + reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + """ + + + lastTransitionTime: str + + message: str + + observedGeneration?: int + + reason: str + + status: "True" | "False" | "Unknown" + + $type: str + + + check: + len(message) <= 32768 + observedGeneration >= 0 + len(reason) <= 1024 + len(reason) >= 1 + regex.match(str(reason), r"^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$") + len($type) <= 316 + regex.match(str($type), r"^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$") + + diff --git a/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_image.k b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_image.k new file mode 100644 index 00000000..a86fdb61 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_image.k @@ -0,0 +1,243 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema VirtualMachineImage: + """ + VirtualMachineImage is the schema for the virtualmachineimages API. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha2", 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 "VirtualMachineImage", 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 : VmoperatorVmwareComV1alpha2VirtualMachineImageSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha2VirtualMachineImageStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha2" = "vmoperator.vmware.com/v1alpha2" + + kind: "VirtualMachineImage" = "VirtualMachineImage" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha2VirtualMachineImageSpec + + status?: VmoperatorVmwareComV1alpha2VirtualMachineImageStatus + + +schema VmoperatorVmwareComV1alpha2VirtualMachineImageSpec: + """ + VirtualMachineImageSpec defines the desired state of VirtualMachineImage. + + Attributes + ---------- + providerRef : VmoperatorVmwareComV1alpha2VirtualMachineImageSpecProviderRef, default is Undefined, optional + provider ref + """ + + + providerRef?: VmoperatorVmwareComV1alpha2VirtualMachineImageSpecProviderRef + + +schema VmoperatorVmwareComV1alpha2VirtualMachineImageSpecProviderRef: + """ + ProviderRef is a reference to the resource that contains the source of this image's information. + + Attributes + ---------- + apiVersion : str, default is Undefined, required + APIVersion defines the versioned schema of this representation of an object. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + kind : str, default is Undefined, 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 + name : str, default is Undefined, required + Name refers to a unique resource in the current namespace. More info: http://kubernetes.io/docs/user-guide/identifiers#names + """ + + + apiVersion: str + + kind: str + + name: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineImageStatus: + """ + VirtualMachineImageStatus defines the observed state of VirtualMachineImage. + + Attributes + ---------- + capabilities : [str], default is Undefined, optional + Capabilities describes the image's observed capabilities. + The capabilities are discerned when VM Operator reconciles an image. If the source of an image is an OVF in Content Library, then the capabilities are parsed from the OVF property capabilities.image.vmoperator.vmware.com as a comma-separated list of values. Well-known capabilities include: + * cloud-init * nvidia-gpu * sriov-net + Every capability is also added to the resource's labels as VirtualMachineImageCapabilityLabel + Value. For example, if the capability is "cloud-init" then the following label will be added to the resource: capability.image.vmoperator.vmware.com/cloud-init. + conditions : [VmoperatorVmwareComV1alpha2VirtualMachineImageStatusConditionsItems0], default is Undefined, optional + Conditions describes the observed conditions for this image. + firmware : str, default is Undefined, optional + Firmware describe the firmware type used by this image, ex. BIOS, EFI. + hardwareVersion : int, default is Undefined, optional + HardwareVersion describes the observed hardware version of this image. + name : str, default is Undefined, optional + Name describes the observed, "friendly" name for this image. + osInfo : VmoperatorVmwareComV1alpha2VirtualMachineImageStatusOsInfo, default is Undefined, optional + os info + ovfProperties : [VmoperatorVmwareComV1alpha2VirtualMachineImageStatusOvfPropertiesItems0], default is Undefined, optional + OVFProperties describes the observed OVF properties defined for this image. + productInfo : VmoperatorVmwareComV1alpha2VirtualMachineImageStatusProductInfo, default is Undefined, optional + product info + providerContentVersion : str, default is Undefined, optional + ProviderContentVersion describes the content version from the provider item that this image corresponds to. If the provider of this image is a Content Library, this will be the version of the corresponding Content Library item. + """ + + + capabilities?: [str] + + conditions?: [VmoperatorVmwareComV1alpha2VirtualMachineImageStatusConditionsItems0] + + firmware?: str + + hardwareVersion?: int + + name?: str + + osInfo?: VmoperatorVmwareComV1alpha2VirtualMachineImageStatusOsInfo + + ovfProperties?: [VmoperatorVmwareComV1alpha2VirtualMachineImageStatusOvfPropertiesItems0] + + productInfo?: VmoperatorVmwareComV1alpha2VirtualMachineImageStatusProductInfo + + providerContentVersion?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineImageStatusConditionsItems0: + """ + Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` + // other fields } + + 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, required + message is a human readable message indicating details about the transition. This may be an empty string. + observedGeneration : int, default is Undefined, optional + observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + reason : str, default is Undefined, required + reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + """ + + + lastTransitionTime: str + + message: str + + observedGeneration?: int + + reason: str + + status: "True" | "False" | "Unknown" + + $type: str + + + check: + len(message) <= 32768 + observedGeneration >= 0 + len(reason) <= 1024 + len(reason) >= 1 + regex.match(str(reason), r"^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$") + len($type) <= 316 + regex.match(str($type), r"^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$") + + +schema VmoperatorVmwareComV1alpha2VirtualMachineImageStatusOsInfo: + """ + OSInfo describes the observed operating system information for this image. + The OS information is also added to the image resource's labels. Please refer to VirtualMachineImageOSInfo for more information. + + Attributes + ---------- + id : str, default is Undefined, optional + ID describes the operating system ID. + This value is also added to the image resource's labels as VirtualMachineImageOSIDLabel. + $type : str, default is Undefined, optional + Type describes the operating system type. + This value is also added to the image resource's labels as VirtualMachineImageOSTypeLabel. + version : str, default is Undefined, optional + Version describes the operating system version. + This value is also added to the image resource's labels as VirtualMachineImageOSVersionLabel. + """ + + + id?: str + + $type?: str + + version?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineImageStatusOvfPropertiesItems0: + """ + OVFProperty describes an OVF property associated with an image. OVF properties may be used in conjunction with the vAppConfig bootstrap provider to customize a VM during its creation. + + Attributes + ---------- + default : str, default is Undefined, optional + Default describes the OVF property's default value. + key : str, default is Undefined, required + Key describes the OVF property's key. + $type : str, default is Undefined, required + Type describes the OVF property's type. + """ + + + default?: str + + key: str + + $type: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineImageStatusProductInfo: + """ + ProductInfo describes the observed product information for this image. + + Attributes + ---------- + fullVersion : str, default is Undefined, optional + FullVersion describes the long-form version of the image. + product : str, default is Undefined, optional + Product is a general descriptor for the image. + vendor : str, default is Undefined, optional + Vendor describes the organization/user that produced the image. + version : str, default is Undefined, optional + Version describes the short-form version of the image. + """ + + + fullVersion?: str + + product?: str + + vendor?: str + + version?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_publish_request.k b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_publish_request.k new file mode 100644 index 00000000..f3b994a1 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_publish_request.k @@ -0,0 +1,337 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema VirtualMachinePublishRequest: + """ + VirtualMachinePublishRequest defines the information necessary to publish a VirtualMachine as a VirtualMachineImage to an image registry. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha2", 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 "VirtualMachinePublishRequest", 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 : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha2" = "vmoperator.vmware.com/v1alpha2" + + kind: "VirtualMachinePublishRequest" = "VirtualMachinePublishRequest" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpec + + status?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatus + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpec: + """ + VirtualMachinePublishRequestSpec defines the desired state of a VirtualMachinePublishRequest. + All the fields in this spec are optional. This is especially useful when a DevOps persona wants to publish a VM without doing anything more than applying a VirtualMachinePublishRequest resource that has the same name as said VM in the same namespace as said VM. + + Attributes + ---------- + source : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecSource, default is Undefined, optional + source + target : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTarget, default is Undefined, optional + target + ttlSecondsAfterFinished : int, default is Undefined, optional + TTLSecondsAfterFinished is the time-to-live duration for how long this resource will be allowed to exist once the publication operation completes. After the TTL expires, the resource will be automatically deleted without the user having to take any direct action. + If this field is unset then the request resource will not be automatically deleted. If this field is set to zero then the request resource is eligible for deletion immediately after it finishes. + """ + + + source?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecSource + + target?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTarget + + ttlSecondsAfterFinished?: int + + + check: + ttlSecondsAfterFinished >= 0 + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecSource: + """ + Source is the source of the publication request, ex. a VirtualMachine resource. + If this value is omitted then the publication controller checks to see if there is a resource with the same name as this VirtualMachinePublishRequest resource, an API version equal to spec.source.apiVersion, and a kind equal to spec.source.kind. If such a resource exists, then it is the source of the publication. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", optional + APIVersion is the API version of the referenced object. + kind : str, default is "VirtualMachine", optional + Kind is the kind of referenced object. + name : str, default is Undefined, optional + Name is the name of the referenced object. + If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. + """ + + + apiVersion?: str = "vmoperator.vmware.com/v1alpha1" + + kind?: str = "VirtualMachine" + + name?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTarget: + """ + Target is the target of the publication request, ex. item information and a ContentLibrary resource. + If this value is omitted, the controller uses spec.source.name + "-image" as the name of the published item. Additionally, when omitted the controller attempts to identify the target location by matching a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, w/ the label "imageregistry.vmware.com/default". + Please note that while optional, if a VirtualMachinePublishRequest sans target information is applied to a namespace without a default publication target, then the VirtualMachinePublishRequest resource will be marked in error. + + Attributes + ---------- + item : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTargetItem, default is Undefined, optional + item + location : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTargetLocation, default is Undefined, optional + location + """ + + + item?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTargetItem + + location?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTargetLocation + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTargetItem: + """ + Item contains information about the name of the object to which the VM is published. + Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. + + Attributes + ---------- + description : str, default is Undefined, optional + Description is the description to assign to the published object. + name : str, default is Undefined, optional + Name is the name of the published object. + If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. + If omitted then the controller will use spec.source.name + "-image". + """ + + + description?: str + + name?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestSpecTargetLocation: + """ + Location contains information about the location to which to publish the VM. + + Attributes + ---------- + apiVersion : str, default is "imageregistry.vmware.com/v1alpha1", optional + APIVersion is the API version of the referenced object. + kind : str, default is "ContentLibrary", optional + Kind is the kind of referenced object. + name : str, default is Undefined, optional + Name is the name of the referenced object. + Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. + A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label "imageregistry.vmware.com/default". + """ + + + apiVersion?: str = "imageregistry.vmware.com/v1alpha1" + + kind?: str = "ContentLibrary" + + name?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatus: + """ + VirtualMachinePublishRequestStatus defines the observed state of a VirtualMachinePublishRequest. + + Attributes + ---------- + attempts : int, default is Undefined, optional + Attempts represents the number of times the request to publish the VM has been attempted. + completionTime : str, default is Undefined, optional + CompletionTime represents time when the request was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. + The value of this field should be equal to the value of the LastTransitionTime for the status condition Type=Complete. + conditions : [VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusConditionsItems0], default is Undefined, optional + Conditions is a list of the latest, available observations of the request's current state. + imageName : str, default is Undefined, optional + ImageName is the name of the VirtualMachineImage resource that is eventually realized in the same namespace as the VM and publication request after the publication operation completes. + This field will not be set until the VirtualMachineImage resource is realized. + lastAttemptTime : str, default is Undefined, optional + LastAttemptTime represents the time when the latest request was sent. + ready : bool, default is Undefined, optional + Ready is set to true only when the VM has been published successfully and the new VirtualMachineImage resource is ready. + Readiness is determined by waiting until there is status condition Type=Complete and ensuring it and all other status conditions present have a Status=True. The conditions present will be: + * SourceValid * TargetValid * Uploaded * ImageAvailable * Complete + sourceRef : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusSourceRef, default is Undefined, optional + source ref + startTime : str, default is Undefined, optional + StartTime represents time when the request was acknowledged by the controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. + targetRef : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRef, default is Undefined, optional + target ref + """ + + + attempts?: int + + completionTime?: str + + conditions?: [VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusConditionsItems0] + + imageName?: str + + lastAttemptTime?: str + + ready?: bool + + sourceRef?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusSourceRef + + startTime?: str + + targetRef?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRef + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusConditionsItems0: + """ + Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, + type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` + // other fields } + + 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, required + message is a human readable message indicating details about the transition. This may be an empty string. + observedGeneration : int, default is Undefined, optional + observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + reason : str, default is Undefined, required + reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + 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. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + """ + + + lastTransitionTime: str + + message: str + + observedGeneration?: int + + reason: str + + status: "True" | "False" | "Unknown" + + $type: str + + + check: + len(message) <= 32768 + observedGeneration >= 0 + len(reason) <= 1024 + len(reason) >= 1 + regex.match(str(reason), r"^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$") + len($type) <= 316 + regex.match(str($type), r"^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$") + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusSourceRef: + """ + SourceRef is the reference to the source of the publication request, ex. a VirtualMachine resource. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha1", optional + APIVersion is the API version of the referenced object. + kind : str, default is "VirtualMachine", optional + Kind is the kind of referenced object. + name : str, default is Undefined, optional + Name is the name of the referenced object. + If omitted this value defaults to the name of the VirtualMachinePublishRequest resource. + """ + + + apiVersion?: str = "vmoperator.vmware.com/v1alpha1" + + kind?: str = "VirtualMachine" + + name?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRef: + """ + TargetRef is the reference to the target of the publication request, ex. item information and a ContentLibrary resource. + + Attributes + ---------- + item : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRefItem, default is Undefined, optional + item + location : VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRefLocation, default is Undefined, optional + location + """ + + + item?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRefItem + + location?: VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRefLocation + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRefItem: + """ + Item contains information about the name of the object to which the VM is published. + Please note this value is optional and if omitted, the controller will use spec.source.name + "-image" as the name of the published item. + + Attributes + ---------- + description : str, default is Undefined, optional + Description is the description to assign to the published object. + name : str, default is Undefined, optional + Name is the name of the published object. + If the spec.target.location.apiVersion equals imageregistry.vmware.com/v1alpha1 and the spec.target.location.kind equals ContentLibrary, then this should be the name that will show up in vCenter Content Library, not the custom resource name in the namespace. + If omitted then the controller will use spec.source.name + "-image". + """ + + + description?: str + + name?: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachinePublishRequestStatusTargetRefLocation: + """ + Location contains information about the location to which to publish the VM. + + Attributes + ---------- + apiVersion : str, default is "imageregistry.vmware.com/v1alpha1", optional + APIVersion is the API version of the referenced object. + kind : str, default is "ContentLibrary", optional + Kind is the kind of referenced object. + name : str, default is Undefined, optional + Name is the name of the referenced object. + Please note an error will be returned if this field is not set in a namespace that lacks a default publication target. + A default publication target is a resource with an API version equal to spec.target.location.apiVersion, a kind equal to spec.target.location.kind, and has the label "imageregistry.vmware.com/default". + """ + + + apiVersion?: str = "imageregistry.vmware.com/v1alpha1" + + kind?: str = "ContentLibrary" + + name?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_service.k b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_service.k new file mode 100644 index 00000000..43cf1c12 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_service.k @@ -0,0 +1,147 @@ +""" +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 VirtualMachineService: + """ + VirtualMachineService is the Schema for the virtualmachineservices API. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha2", 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 "VirtualMachineService", 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 : VmoperatorVmwareComV1alpha2VirtualMachineServiceSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha2VirtualMachineServiceStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha2" = "vmoperator.vmware.com/v1alpha2" + + kind: "VirtualMachineService" = "VirtualMachineService" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha2VirtualMachineServiceSpec + + status?: VmoperatorVmwareComV1alpha2VirtualMachineServiceStatus + + +schema VmoperatorVmwareComV1alpha2VirtualMachineServiceSpec: + """ + VirtualMachineServiceSpec defines the desired state of VirtualMachineService. + + Attributes + ---------- + clusterIp : str, default is Undefined, optional + clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are "None", empty string (""), or a valid IP address. "None" can be specified for headless services when proxying is not required. Only applies to types ClusterIP and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies + externalName : str, default is Undefined, optional + externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName. + loadBalancerIP : str, default is Undefined, optional + Only applies to VirtualMachineService Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying load balancer provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the provider does not support the feature. + loadBalancerSourceRanges : [str], default is Undefined, optional + LoadBalancerSourceRanges is an array of IP addresses in the format of CIDRs, for example: 103.21.244.0/22 and 10.0.0.0/24. If specified and supported by the load balancer provider, this will restrict ingress traffic to the specified client IPs. This field will be ignored if the provider does not support the feature. + ports : [VmoperatorVmwareComV1alpha2VirtualMachineServiceSpecPortsItems0], default is Undefined, optional + Ports specifies a list of VirtualMachineServicePort to expose with this VirtualMachineService. Each of these ports will be an accessible network entry point to access this service by. + selector : {str:str}, default is Undefined, optional + Selector specifies a map of key-value pairs, also known as a Label Selector, that is used to match this VirtualMachineService with the set of VirtualMachines that should back this VirtualMachineService. + $type : str, default is Undefined, required + Type specifies a desired VirtualMachineServiceType for this VirtualMachineService. Supported types are ClusterIP, LoadBalancer, ExternalName. + """ + + + clusterIp?: str + + externalName?: str + + loadBalancerIP?: str + + loadBalancerSourceRanges?: [str] + + ports?: [VmoperatorVmwareComV1alpha2VirtualMachineServiceSpecPortsItems0] + + selector?: {str:str} + + $type: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineServiceSpecPortsItems0: + """ + VirtualMachineServicePort describes the specification of a service port to be exposed by a VirtualMachineService. This VirtualMachineServicePort specification includes attributes that define the external and internal representation of the service port. + + Attributes + ---------- + name : str, default is Undefined, required + Name describes the name to be used to identify this VirtualMachineServicePort. + port : int, default is Undefined, required + Port describes the external port that will be exposed by the service. + $protocol : str, default is Undefined, required + Protocol describes the Layer 4 transport protocol for this port. Supports "TCP", "UDP", and "SCTP". + targetPort : int, default is Undefined, required + TargetPort describes the internal port open on a VirtualMachine that should be mapped to the external Port. + """ + + + name: str + + port: int + + $protocol: str + + targetPort: int + + +schema VmoperatorVmwareComV1alpha2VirtualMachineServiceStatus: + """ + VirtualMachineServiceStatus defines the observed state of VirtualMachineService. + + Attributes + ---------- + loadBalancer : VmoperatorVmwareComV1alpha2VirtualMachineServiceStatusLoadBalancer, default is Undefined, optional + load balancer + """ + + + loadBalancer?: VmoperatorVmwareComV1alpha2VirtualMachineServiceStatusLoadBalancer + + +schema VmoperatorVmwareComV1alpha2VirtualMachineServiceStatusLoadBalancer: + """ + LoadBalancer contains the current status of the load balancer, if one is present. + + Attributes + ---------- + ingress : [VmoperatorVmwareComV1alpha2VirtualMachineServiceStatusLoadBalancerIngressItems0], default is Undefined, optional + Ingress is a list containing ingress addresses for the load balancer. Traffic intended for the service should be sent to any of these ingress points. + """ + + + ingress?: [VmoperatorVmwareComV1alpha2VirtualMachineServiceStatusLoadBalancerIngressItems0] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineServiceStatusLoadBalancerIngressItems0: + """ + LoadBalancerIngress represents the status of a load balancer ingress point: traffic intended for the service should be sent to an ingress point. IP or Hostname may both be set in this structure. It is up to the consumer to determine which field should be used when accessing this LoadBalancer. + + Attributes + ---------- + hostname : str, default is Undefined, optional + Hostname is set for load balancer ingress points that are specified by a DNS address. + ip : str, default is Undefined, optional + IP is set for load balancer ingress points that are specified by an IP address. + """ + + + hostname?: str + + ip?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_set_resource_policy.k b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_set_resource_policy.k new file mode 100644 index 00000000..cd6fc9f1 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_set_resource_policy.k @@ -0,0 +1,164 @@ +""" +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 regex +import k8s.apimachinery.pkg.apis.meta.v1 + + +schema VirtualMachineSetResourcePolicy: + """ + VirtualMachineSetResourcePolicy is the Schema for the virtualmachinesetresourcepolicies API. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha2", 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 "VirtualMachineSetResourcePolicy", 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 : VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicyStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha2" = "vmoperator.vmware.com/v1alpha2" + + kind: "VirtualMachineSetResourcePolicy" = "VirtualMachineSetResourcePolicy" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpec + + status?: VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicyStatus + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpec: + """ + VirtualMachineSetResourcePolicySpec defines the desired state of VirtualMachineSetResourcePolicy. + + Attributes + ---------- + clusterModuleGroups : [str], default is Undefined, optional + cluster module groups + folder : str, default is Undefined, optional + folder + resourcePool : VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePool, default is Undefined, optional + resource pool + """ + + + clusterModuleGroups?: [str] + + folder?: str + + resourcePool?: VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePool + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePool: + """ + ResourcePoolSpec defines a Logical Grouping of workloads that share resource policies. + + Attributes + ---------- + limits : VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePoolLimits, default is Undefined, optional + limits + name : str, default is Undefined, optional + Name describes the name of the ResourcePool grouping. + reservations : VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePoolReservations, default is Undefined, optional + reservations + """ + + + limits?: VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePoolLimits + + name?: str + + reservations?: VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePoolReservations + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePoolLimits: + """ + Limits describes the limit to resources available to the ResourcePool. + + Attributes + ---------- + cpu : int | str, default is Undefined, optional + cpu + memory : int | str, default is Undefined, optional + memory + """ + + + cpu?: int | str + + memory?: int | str + + + check: + regex.match(str(cpu), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if cpu + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicySpecResourcePoolReservations: + """ + Reservations describes the guaranteed resources reserved for the ResourcePool. + + Attributes + ---------- + cpu : int | str, default is Undefined, optional + cpu + memory : int | str, default is Undefined, optional + memory + """ + + + cpu?: int | str + + memory?: int | str + + + check: + regex.match(str(cpu), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if cpu + regex.match(str(memory), r"^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$") if memory + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicyStatus: + """ + VirtualMachineSetResourcePolicyStatus defines the observed state of VirtualMachineSetResourcePolicy. + + Attributes + ---------- + clustermodules : [VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicyStatusClustermodulesItems0], default is Undefined, optional + clustermodules + """ + + + clustermodules?: [VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicyStatusClustermodulesItems0] + + +schema VmoperatorVmwareComV1alpha2VirtualMachineSetResourcePolicyStatusClustermodulesItems0: + """ + VSphereClusterModuleStatus describes the observed state of a vSphere cluster module. + + Attributes + ---------- + clusterMoID : str, default is Undefined, required + cluster mo ID + groupName : str, default is Undefined, required + group name + moduleUUID : str, default is Undefined, required + module UUID + """ + + + clusterMoID: str + + groupName: str + + moduleUUID: str + + diff --git a/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_web_console_request.k b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_web_console_request.k new file mode 100644 index 00000000..148f984c --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha2/vmoperator_vmware_com_v1alpha2_virtual_machine_web_console_request.k @@ -0,0 +1,74 @@ +""" +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 VirtualMachineWebConsoleRequest: + """ + VirtualMachineWebConsoleRequest allows the creation of a one-time, web console connection to a VM. + + Attributes + ---------- + apiVersion : str, default is "vmoperator.vmware.com/v1alpha2", 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 "VirtualMachineWebConsoleRequest", 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 : VmoperatorVmwareComV1alpha2VirtualMachineWebConsoleRequestSpec, default is Undefined, optional + spec + status : VmoperatorVmwareComV1alpha2VirtualMachineWebConsoleRequestStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmoperator.vmware.com/v1alpha2" = "vmoperator.vmware.com/v1alpha2" + + kind: "VirtualMachineWebConsoleRequest" = "VirtualMachineWebConsoleRequest" + + metadata?: v1.ObjectMeta + + spec?: VmoperatorVmwareComV1alpha2VirtualMachineWebConsoleRequestSpec + + status?: VmoperatorVmwareComV1alpha2VirtualMachineWebConsoleRequestStatus + + +schema VmoperatorVmwareComV1alpha2VirtualMachineWebConsoleRequestSpec: + """ + VirtualMachineWebConsoleRequestSpec describes the desired state for a web console request to a VM. + + Attributes + ---------- + name : str, default is Undefined, required + Name is the name of a VM in the same Namespace as this web console request. + """ + + + name: str + + +schema VmoperatorVmwareComV1alpha2VirtualMachineWebConsoleRequestStatus: + """ + VirtualMachineWebConsoleRequestStatus describes the observed state of the request. + + Attributes + ---------- + expiryTime : str, default is Undefined, optional + ExpiryTime is the time at which access via this request will expire. + proxyAddr : str, default is Undefined, optional + ProxyAddr describes the host address and optional port used to access the VM's web console. + The value could be a DNS entry, IPv4, or IPv6 address, followed by an optional port. For example, valid values include: + DNS * host.com * host.com:6443 + IPv4 * 1.2.3.4 * 1.2.3.4:6443 + IPv6 * 1234:1234:1234:1234:1234:1234:1234:1234 * [1234:1234:1234:1234:1234:1234:1234:1234]:6443 * 1234:1234:1234:0000:0000:0000:1234:1234 * 1234:1234:1234::::1234:1234 * [1234:1234:1234::::1234:1234]:6443 + In other words, the field may be set to any value that is parsable by Go's https://pkg.go.dev/net#ResolveIPAddr and https://pkg.go.dev/net#ParseIP functions. + """ + + + expiryTime?: str + + proxyAddr?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_h_a_proxy_load_balancer.k b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_h_a_proxy_load_balancer.k new file mode 100644 index 00000000..14c4c710 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_h_a_proxy_load_balancer.k @@ -0,0 +1,296 @@ +""" +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 HAProxyLoadBalancer: + """ + HAProxyLoadBalancer is the Schema for the haproxyloadbalancers API + Deprecated: This type will be removed in v1alpha4. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha3", 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 "HAProxyLoadBalancer", 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 : InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha3" = "infrastructure.cluster.x-k8s.io/v1alpha3" + + kind: "HAProxyLoadBalancer" = "HAProxyLoadBalancer" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpec + + status?: InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerStatus + + +schema InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpec: + """ + HAProxyLoadBalancerSpec defines the desired state of HAProxyLoadBalancer. + + Attributes + ---------- + user : InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecUser, default is Undefined, optional + user + virtualMachineConfiguration : InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfiguration, default is Undefined, required + virtual machine configuration + """ + + + user?: InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecUser + + virtualMachineConfiguration: InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfiguration + + +schema InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecUser: + """ + SSHUser specifies the name of a user that is granted remote access to the deployed VM. + + Attributes + ---------- + authorizedKeys : [str], default is Undefined, required + AuthorizedKeys is one or more public SSH keys that grant remote access. + name : str, default is Undefined, required + Name is the name of the SSH user. + """ + + + authorizedKeys: [str] + + name: str + + +schema InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfiguration: + """ + VirtualMachineConfiguration is information used to deploy a load balancer VM. + + Attributes + ---------- + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + folder?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP6 is false. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + deviceName?: str + + dhcp4?: bool + + dhcp6?: bool + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerSpecVirtualMachineConfigurationNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha3HAProxyLoadBalancerStatus: + """ + HAProxyLoadBalancerStatus defines the observed state of HAProxyLoadBalancer. + + Attributes + ---------- + address : str, default is Undefined, optional + Address is the IP address or DNS name of the load balancer. + This field is required as part of the Portable Load Balancer model and is inspected via an unstructured reader by other controllers to determine the status of the load balancer. + ready : bool, default is Undefined, optional + Ready indicates whether or not the load balancer is ready. + This field is required as part of the Portable Load Balancer model and is inspected via an unstructured reader by other controllers to determine the status of the load balancer. + """ + + + address?: str + + ready?: bool + + diff --git a/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_cluster.k b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_cluster.k new file mode 100644 index 00000000..8001333c --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_cluster.k @@ -0,0 +1,516 @@ +""" +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 VSphereCluster: + """ + VSphereCluster is the Schema for the vsphereclusters API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha3", 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 "VSphereCluster", 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 : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha3" = "infrastructure.cluster.x-k8s.io/v1alpha3" + + kind: "VSphereCluster" = "VSphereCluster" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpec + + status?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatus + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpec: + """ + VSphereClusterSpec defines the desired state of VSphereCluster + + Attributes + ---------- + cloudProviderConfiguration : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfiguration, default is Undefined, optional + cloud provider configuration + controlPlaneEndpoint : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecControlPlaneEndpoint, default is Undefined, optional + control plane endpoint + identityRef : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecIdentityRef, default is Undefined, optional + identity ref + insecure : bool, default is Undefined, optional + Insecure is a flag that controls whether or not to validate the vSphere server's certificate. DEPRECATED: will be removed in v1alpha4 + loadBalancerRef : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecLoadBalancerRef, default is Undefined, optional + load balancer ref + server : str, default is Undefined, optional + Server is the address of the vSphere endpoint. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When provided, Insecure should not be set to true + """ + + + cloudProviderConfiguration?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfiguration + + controlPlaneEndpoint?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecControlPlaneEndpoint + + identityRef?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecIdentityRef + + insecure?: bool + + loadBalancerRef?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecLoadBalancerRef + + server?: str + + thumbprint?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfiguration: + """ + CloudProviderConfiguration holds the cluster-wide configuration for the DEPRECATED: will be removed in v1alpha4 vSphere cloud provider. + + Attributes + ---------- + disk : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationDisk, default is Undefined, optional + disk + global : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationGlobal, default is Undefined, optional + global + labels : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationLabels, default is Undefined, optional + labels + network : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationNetwork, default is Undefined, optional + network + providerConfig : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfig, default is Undefined, optional + provider config + virtualCenter : {str:InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationVirtualCenterAnon}, default is Undefined, optional + VCenter is a list of vCenter configurations. + workspace : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationWorkspace, default is Undefined, optional + workspace + """ + + + disk?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationDisk + + global?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationGlobal + + labels?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationLabels + + network?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationNetwork + + providerConfig?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfig + + virtualCenter?: {str:InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationVirtualCenterAnon} + + workspace?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationWorkspace + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationDisk: + """ + Disk is the vSphere cloud provider's disk configuration. + + Attributes + ---------- + scsiControllerType : str, default is Undefined, optional + SCSIControllerType defines SCSI controller to be used. + """ + + + scsiControllerType?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationGlobal: + """ + Global is the vSphere cloud provider's global configuration. + + Attributes + ---------- + apiBindPort : str, default is Undefined, optional + APIBindPort configures the vSphere cloud controller manager API port. Defaults to 43001. + apiDisable : bool, default is Undefined, optional + APIDisable disables the vSphere cloud controller manager API. Defaults to true. + caFile : str, default is Undefined, optional + CAFile Specifies the path to a CA certificate in PEM format. If not configured, the system's CA certificates will be used. + datacenters : str, default is Undefined, optional + Datacenters is a CSV string of the datacenters in which VMs are located. + insecure : bool, default is Undefined, optional + Insecure is a flag that disables TLS peer verification. + password : str, default is Undefined, optional + Password is the password used to access a vSphere endpoint. + port : str, default is Undefined, optional + Port is the port on which the vSphere endpoint is listening. Defaults to 443. + roundTripperCount : int, default is Undefined, optional + RoundTripperCount specifies the SOAP round tripper count (retries = RoundTripper - 1) + secretName : str, default is Undefined, optional + SecretName is the name of the Kubernetes secret in which the vSphere credentials are located. + secretNamespace : str, default is Undefined, optional + SecretNamespace is the namespace for SecretName. + secretsDirectory : str, default is Undefined, optional + SecretsDirectory is a directory in which secrets may be found. This may used in the event that: 1. It is not desirable to use the K8s API to watch changes to secrets 2. The cloud controller manager is not running in a K8s environment, such as DC/OS. For example, the container storage interface (CSI) is container orcehstrator (CO) agnostic, and should support non-K8s COs. Defaults to /etc/cloud/credentials. + serviceAccount : str, default is Undefined, optional + ServiceAccount is the Kubernetes service account used to launch the cloud controller manager. Defaults to cloud-controller-manager. + thumbprint : str, default is Undefined, optional + Thumbprint is the cryptographic thumbprint of the vSphere endpoint's certificate. + username : str, default is Undefined, optional + Username is the username used to access a vSphere endpoint. + """ + + + apiBindPort?: str + + apiDisable?: bool + + caFile?: str + + datacenters?: str + + insecure?: bool + + password?: str + + port?: str + + roundTripperCount?: int + + secretName?: str + + secretNamespace?: str + + secretsDirectory?: str + + serviceAccount?: str + + thumbprint?: str + + username?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationLabels: + """ + Labels is the vSphere cloud provider's zone and region configuration. + + Attributes + ---------- + region : str, default is Undefined, optional + Region is the region in which VMs are created/located. + zone : str, default is Undefined, optional + Zone is the zone in which VMs are created/located. + """ + + + region?: str + + zone?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationNetwork: + """ + Network is the vSphere cloud provider's network configuration. + + Attributes + ---------- + name : str, default is Undefined, optional + Name is the name of the network to which VMs are connected. + """ + + + name?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfig: + """ + CPIProviderConfig contains extra information used to configure the vSphere cloud provider. + + Attributes + ---------- + cloud : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfigCloud, default is Undefined, optional + cloud + storage : InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfigStorage, default is Undefined, optional + storage + """ + + + cloud?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfigCloud + + storage?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfigStorage + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfigCloud: + """ + infrastructure clusterx k8s io v1alpha3 v sphere cluster spec cloud provider configuration provider config cloud + + Attributes + ---------- + controllerImage : str, default is Undefined, optional + controller image + extraArgs : {str:str}, default is Undefined, optional + ExtraArgs passes through extra arguments to the cloud provider. The arguments here are passed to the cloud provider daemonset specification + """ + + + controllerImage?: str + + extraArgs?: {str:str} + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationProviderConfigStorage: + """ + infrastructure clusterx k8s io v1alpha3 v sphere cluster spec cloud provider configuration provider config storage + + Attributes + ---------- + attacherImage : str, default is Undefined, optional + attacher image + controllerImage : str, default is Undefined, optional + controller image + livenessProbeImage : str, default is Undefined, optional + liveness probe image + metadataSyncerImage : str, default is Undefined, optional + metadata syncer image + nodeDriverImage : str, default is Undefined, optional + node driver image + provisionerImage : str, default is Undefined, optional + provisioner image + registrarImage : str, default is Undefined, optional + registrar image + """ + + + attacherImage?: str + + controllerImage?: str + + livenessProbeImage?: str + + metadataSyncerImage?: str + + nodeDriverImage?: str + + provisionerImage?: str + + registrarImage?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationVirtualCenterAnon: + """ + CPIVCenterConfig is a vSphere cloud provider's vCenter configuration. + + Attributes + ---------- + datacenters : str, default is Undefined, optional + Datacenters is a CSV string of the datacenters in which VMs are located. + password : str, default is Undefined, optional + Password is the password used to access a vSphere endpoint. + port : str, default is Undefined, optional + Port is the port on which the vSphere endpoint is listening. Defaults to 443. + roundTripperCount : int, default is Undefined, optional + RoundTripperCount specifies the SOAP round tripper count (retries = RoundTripper - 1) + thumbprint : str, default is Undefined, optional + Thumbprint is the cryptographic thumbprint of the vSphere endpoint's certificate. + username : str, default is Undefined, optional + Username is the username used to access a vSphere endpoint. + """ + + + datacenters?: str + + password?: str + + port?: str + + roundTripperCount?: int + + thumbprint?: str + + username?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecCloudProviderConfigurationWorkspace: + """ + Workspace is the vSphere cloud provider's workspace configuration. + + Attributes + ---------- + datacenter : str, default is Undefined, optional + Datacenter is the datacenter in which VMs are created/located. + datastore : str, default is Undefined, optional + Datastore is the datastore in which VMs are created/located. + folder : str, default is Undefined, optional + Folder is the folder in which VMs are created/located. + resourcePool : str, default is Undefined, optional + ResourcePool is the resource pool in which VMs are created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere endpoint. + """ + + + datacenter?: str + + datastore?: str + + folder?: str + + resourcePool?: str + + server?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecControlPlaneEndpoint: + """ + ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. + + Attributes + ---------- + host : str, default is Undefined, required + The hostname on which the API server is serving. + port : int, default is Undefined, required + The port on which the API server is serving. + """ + + + host: str + + port: int + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecIdentityRef: + """ + IdentityRef is a reference to either a Secret or VSphereClusterIdentity that contains the identity to use when reconciling the cluster. + + Attributes + ---------- + kind : str, default is Undefined, required + Kind of the identity. Can either be VSphereClusterIdentity or Secret + name : str, default is Undefined, required + Name of the identity. + """ + + + kind: "VSphereClusterIdentity" | "Secret" + + name: str + + + check: + len(name) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterSpecLoadBalancerRef: + """ + LoadBalancerRef may be used to enable a control plane load balancer for this cluster. When a LoadBalancerRef is provided, the VSphereCluster.Status.Ready field will not be true until the referenced resource is Status.Ready and has a non-empty Status.Address value. DEPRECATED: will be removed in v1alpha4 + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + fieldPath : str, default is Undefined, optional + If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + kind : str, default is Undefined, optional + Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + namespace : str, default is Undefined, optional + Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + resourceVersion : str, default is Undefined, optional + Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + uid : str, default is Undefined, optional + UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + """ + + + apiVersion?: str + + fieldPath?: str + + kind?: str + + name?: str + + namespace?: str + + resourceVersion?: str + + uid?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatus: + """ + VSphereClusterStatus defines the observed state of VSphereClusterSpec + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereCluster. + failureDomains : {str:InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatusFailureDomainsAnon}, default is Undefined, optional + FailureDomains is a list of failure domain objects synced from the infrastructure provider. + ready : bool, default is Undefined, optional + ready + """ + + + conditions?: [InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatusConditionsItems0] + + failureDomains?: {str:InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatusFailureDomainsAnon} + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterStatusFailureDomainsAnon: + """ + FailureDomainSpec is the Schema for Cluster API failure domains. It allows controllers to understand how many failure domains a cluster can optionally span across. + + Attributes + ---------- + attributes : {str:str}, default is Undefined, optional + Attributes is a free form map of attributes an infrastructure provider might use or require. + controlPlane : bool, default is Undefined, optional + ControlPlane determines if this failure domain is suitable for use by control plane machines. + """ + + + attributes?: {str:str} + + controlPlane?: bool + + diff --git a/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_cluster_identity.k b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_cluster_identity.k new file mode 100644 index 00000000..6579d87a --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_cluster_identity.k @@ -0,0 +1,166 @@ +""" +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 VSphereClusterIdentity: + """ + VSphereClusterIdentity defines the account to be used for reconciling clusters + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha3", 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 "VSphereClusterIdentity", 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 : InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentityStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha3" = "infrastructure.cluster.x-k8s.io/v1alpha3" + + kind: "VSphereClusterIdentity" = "VSphereClusterIdentity" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpec + + status?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentityStatus + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpec: + """ + infrastructure clusterx k8s io v1alpha3 v sphere cluster identity spec + + Attributes + ---------- + allowedNamespaces : InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespaces, default is Undefined, optional + allowed namespaces + secretName : str, default is Undefined, optional + SecretName references a Secret inside the controller namespace with the credentials to use + """ + + + allowedNamespaces?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespaces + + secretName?: str + + + check: + len(secretName) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespaces: + """ + AllowedNamespaces is used to identify which namespaces are allowed to use this account. Namespaces can be selected with a label selector. If this object is nil, no namespaces will be allowed + + Attributes + ---------- + selector : InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespacesSelector, default is Undefined, optional + selector + """ + + + selector?: InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespacesSelector + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespacesSelector: + """ + Selector is a standard Kubernetes LabelSelector. A label query over a set of resources. + + Attributes + ---------- + matchExpressions : [InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0], 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?: [InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0] + + matchLabels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0: + """ + 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 InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentityStatus: + """ + infrastructure clusterx k8s io v1alpha3 v sphere cluster identity status + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentityStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereCluster. + ready : bool, default is Undefined, optional + ready + """ + + + conditions?: [InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentityStatusConditionsItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereClusterIdentityStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + diff --git a/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_deployment_zone.k b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_deployment_zone.k new file mode 100644 index 00000000..9544c69c --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_deployment_zone.k @@ -0,0 +1,134 @@ +""" +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 VSphereDeploymentZone: + """ + VSphereDeploymentZone is the Schema for the vspheredeploymentzones API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha3", 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 "VSphereDeploymentZone", 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 : InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha3" = "infrastructure.cluster.x-k8s.io/v1alpha3" + + kind: "VSphereDeploymentZone" = "VSphereDeploymentZone" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneSpec + + status?: InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneStatus + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneSpec: + """ + VSphereDeploymentZoneSpec defines the desired state of VSphereDeploymentZone + + Attributes + ---------- + controlPlane : bool, default is Undefined, optional + ControlPlane determines if this failure domain is suitable for use by control plane machines. + failureDomain : str, default is Undefined, optional + failureDomain is the name of the VSphereFailureDomain used for this VSphereDeploymentZone + placementConstraint : InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneSpecPlacementConstraint, default is Undefined, required + placement constraint + server : str, default is Undefined, optional + Server is the address of the vSphere endpoint. + """ + + + controlPlane?: bool + + failureDomain?: str + + placementConstraint: InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneSpecPlacementConstraint + + server?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneSpecPlacementConstraint: + """ + PlacementConstraint encapsulates the placement constraints used within this deployment zone. + + Attributes + ---------- + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + """ + + + folder?: str + + resourcePool?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneStatus: + """ + infrastructure clusterx k8s io v1alpha3 v sphere deployment zone status + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereMachine. + ready : bool, default is Undefined, optional + Ready is true when the VSphereDeploymentZone resource is ready. If set to false, it will be ignored by VSphereClusters + """ + + + conditions?: [InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneStatusConditionsItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereDeploymentZoneStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + diff --git a/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_failure_domain.k b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_failure_domain.k new file mode 100644 index 00000000..899cc811 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_failure_domain.k @@ -0,0 +1,156 @@ +""" +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 VSphereFailureDomain: + """ + VSphereFailureDomain is the Schema for the vspherefailuredomains API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha3", 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 "VSphereFailureDomain", 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 : InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha3" = "infrastructure.cluster.x-k8s.io/v1alpha3" + + kind: "VSphereFailureDomain" = "VSphereFailureDomain" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpec + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpec: + """ + VSphereFailureDomainSpec defines the desired state of VSphereFailureDomain + + Attributes + ---------- + region : InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecRegion, default is Undefined, required + region + topology : InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecTopology, default is Undefined, required + topology + zone : InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecZone, default is Undefined, required + zone + """ + + + region: InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecRegion + + topology: InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecTopology + + zone: InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecZone + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecRegion: + """ + Region defines the name and type of a region + + Attributes + ---------- + autoConfigure : bool, default is Undefined, optional + AutoConfigure tags the Type which is specified in the Topology + name : str, default is Undefined, required + Name is the name of the tag that represents this failure domain + tagCategory : str, default is Undefined, required + TagCategory is the category used for the tag + $type : str, default is Undefined, required + Type is the type of failure domain, the current values are "Datacenter", "ComputeCluster" and "HostGroup" + """ + + + autoConfigure?: bool + + name: str + + tagCategory: str + + $type: "Datacenter" | "ComputeCluster" | "HostGroup" + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecTopology: + """ + Topology is the what describes a given failure domain using vSphere constructs + + Attributes + ---------- + computeCluster : str, default is Undefined, optional + ComputeCluster as the failure domain + datacenter : str, default is Undefined, required + The underlying infrastructure for this failure domain Datacenter as the failure domain + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + hosts : InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecTopologyHosts, default is Undefined, optional + hosts + networks : [str], default is Undefined, optional + Networks is the list of networks within this failure domain + """ + + + computeCluster?: str + + datacenter: str + + datastore?: str + + hosts?: InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecTopologyHosts + + networks?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecTopologyHosts: + """ + Hosts has information required for placement of machines on VSphere hosts. + + Attributes + ---------- + hostGroupName : str, default is Undefined, required + HostGroupName is the name of the Host group + vmGroupName : str, default is Undefined, required + VMGroupName is the name of the VM group + """ + + + hostGroupName: str + + vmGroupName: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereFailureDomainSpecZone: + """ + Zone defines the name and type of a zone + + Attributes + ---------- + autoConfigure : bool, default is Undefined, optional + AutoConfigure tags the Type which is specified in the Topology + name : str, default is Undefined, required + Name is the name of the tag that represents this failure domain + tagCategory : str, default is Undefined, required + TagCategory is the category used for the tag + $type : str, default is Undefined, required + Type is the type of failure domain, the current values are "Datacenter", "ComputeCluster" and "HostGroup" + """ + + + autoConfigure?: bool + + name: str + + tagCategory: str + + $type: "Datacenter" | "ComputeCluster" | "HostGroup" + + diff --git a/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_machine.k b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_machine.k new file mode 100644 index 00000000..0b963fd6 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_machine.k @@ -0,0 +1,364 @@ +""" +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 VSphereMachine: + """ + VSphereMachine is the Schema for the vspheremachines API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha3", 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 "VSphereMachine", 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 : InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha3" = "infrastructure.cluster.x-k8s.io/v1alpha3" + + kind: "VSphereMachine" = "VSphereMachine" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpec + + status?: InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatus + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpec: + """ + VSphereMachineSpec defines the desired state of VSphereMachine + + Attributes + ---------- + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + failureDomain : str, default is Undefined, optional + FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. For this infrastructure provider, the name is equivalent to the name of the VSphereDeploymentZone. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + providerID : str, default is Undefined, optional + ProviderID is the virtual machine's BIOS UUID formated as vsphere://12345678-1234-1234-1234-123456789abc + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + failureDomain?: str + + folder?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + providerID?: str + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP6 is false. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + deviceName?: str + + dhcp4?: bool + + dhcp6?: bool + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatus: + """ + VSphereMachineStatus defines the observed state of VSphereMachine + + Attributes + ---------- + addresses : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusAddressesItems0], default is Undefined, optional + Addresses contains the VSphere instance associated addresses. + conditions : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereMachine. + failureMessage : str, default is Undefined, optional + FailureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. + Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + failureReason : str, default is Undefined, optional + FailureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. + Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + network : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusNetworkItems0], default is Undefined, optional + Network returns the network status for each of the machine's configured network interfaces. + ready : bool, default is Undefined, optional + Ready is true when the provider resource is ready. + """ + + + addresses?: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusAddressesItems0] + + conditions?: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusConditionsItems0] + + failureMessage?: str + + failureReason?: str + + network?: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusNetworkItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusAddressesItems0: + """ + MachineAddress contains information for the node's address. + + Attributes + ---------- + address : str, default is Undefined, required + The machine address. + $type : str, default is Undefined, required + Machine address type, one of Hostname, ExternalIP or InternalIP. + """ + + + address: str + + $type: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineStatusNetworkItems0: + """ + NetworkStatus provides information about one of a VM's networks. + + Attributes + ---------- + connected : bool, default is Undefined, optional + Connected is a flag that indicates whether this network is currently connected to the VM. + ipAddrs : [str], default is Undefined, optional + IPAddrs is one or more IP addresses reported by vm-tools. + macAddr : str, default is Undefined, required + MACAddr is the MAC address of the network device. + networkName : str, default is Undefined, optional + NetworkName is the name of the network. + """ + + + connected?: bool + + ipAddrs?: [str] + + macAddr: str + + networkName?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_machine_template.k b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_machine_template.k new file mode 100644 index 00000000..1bc97342 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_machine_template.k @@ -0,0 +1,351 @@ +""" +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 VSphereMachineTemplate: + """ + VSphereMachineTemplate is the Schema for the vspheremachinetemplates API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha3", 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 "VSphereMachineTemplate", 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 : InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha3" = "infrastructure.cluster.x-k8s.io/v1alpha3" + + kind: "VSphereMachineTemplate" = "VSphereMachineTemplate" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpec + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpec: + """ + VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate + + Attributes + ---------- + template : InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplate, default is Undefined, required + template + """ + + + template: InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplate + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplate: + """ + VSphereMachineTemplateResource describes the data needed to create a VSphereMachine from a template + + Attributes + ---------- + metadata : InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateMetadata, default is Undefined, optional + metadata + spec : InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpec, default is Undefined, required + spec + """ + + + metadata?: InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateMetadata + + spec: InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpec + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateMetadata: + """ + Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + + Attributes + ---------- + annotations : {str:str}, default is Undefined, optional + Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + generateName : str, default is Undefined, optional + GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. + If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). + Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency + Deprecated: This field has no function and is going to be removed in a next release. + labels : {str:str}, default is Undefined, optional + Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + name : str, default is Undefined, optional + Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names + Deprecated: This field has no function and is going to be removed in a next release. + namespace : str, default is Undefined, optional + Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. + Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces + Deprecated: This field has no function and is going to be removed in a next release. + ownerReferences : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateMetadataOwnerReferencesItems0], default is Undefined, optional + List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller. + Deprecated: This field has no function and is going to be removed in a next release. + """ + + + annotations?: {str:str} + + generateName?: str + + labels?: {str:str} + + name?: str + + namespace?: str + + ownerReferences?: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateMetadataOwnerReferencesItems0] + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateMetadataOwnerReferencesItems0: + """ + OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field. + + Attributes + ---------- + apiVersion : str, default is Undefined, required + API version of the referent. + blockOwnerDeletion : bool, default is Undefined, optional + If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. + controller : bool, default is Undefined, optional + If true, this reference points to the managing controller. + kind : str, default is Undefined, required + Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + name : str, default is Undefined, required + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + uid : str, default is Undefined, required + UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + """ + + + apiVersion: str + + blockOwnerDeletion?: bool + + controller?: bool + + kind: str + + name: str + + uid: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpec: + """ + Spec is the specification of the desired behavior of the machine. + + Attributes + ---------- + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + failureDomain : str, default is Undefined, optional + FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. For this infrastructure provider, the name is equivalent to the name of the VSphereDeploymentZone. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + providerID : str, default is Undefined, optional + ProviderID is the virtual machine's BIOS UUID formated as vsphere://12345678-1234-1234-1234-123456789abc + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + failureDomain?: str + + folder?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + providerID?: str + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP6 is false. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + deviceName?: str + + dhcp4?: bool + + dhcp6?: bool + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + diff --git a/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_vm.k b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_vm.k new file mode 100644 index 00000000..c4251886 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha3/infrastructure_clusterx_k8s_io_v1alpha3_v_sphere_vm.k @@ -0,0 +1,400 @@ +""" +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 VSphereVM: + """ + VSphereVM is the Schema for the vspherevms API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha3", 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 "VSphereVM", 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 : InfrastructureClusterxK8sIoV1alpha3VSphereVMSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha3VSphereVMStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha3" = "infrastructure.cluster.x-k8s.io/v1alpha3" + + kind: "VSphereVM" = "VSphereVM" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha3VSphereVMSpec + + status?: InfrastructureClusterxK8sIoV1alpha3VSphereVMStatus + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMSpec: + """ + VSphereVMSpec defines the desired state of VSphereVM. + + Attributes + ---------- + biosUUID : str, default is Undefined, optional + BiosUUID is the the VM's BIOS UUID that is assigned at runtime after the VM has been created. This field is required at runtime for other controllers that read this CRD as unstructured data. + bootstrapRef : InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecBootstrapRef, default is Undefined, optional + bootstrap ref + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + biosUUID?: str + + bootstrapRef?: InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecBootstrapRef + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + folder?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecBootstrapRef: + """ + BootstrapRef is a reference to a bootstrap provider-specific resource that holds configuration details. This field is optional in case no bootstrap data is required to create a VM. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + fieldPath : str, default is Undefined, optional + If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + kind : str, default is Undefined, optional + Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + namespace : str, default is Undefined, optional + Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + resourceVersion : str, default is Undefined, optional + Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + uid : str, default is Undefined, optional + UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + """ + + + apiVersion?: str + + fieldPath?: str + + kind?: str + + name?: str + + namespace?: str + + resourceVersion?: str + + uid?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP6 is false. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + deviceName?: str + + dhcp4?: bool + + dhcp6?: bool + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMStatus: + """ + VSphereVMStatus defines the observed state of VSphereVM + + Attributes + ---------- + addresses : [str], default is Undefined, optional + Addresses is a list of the VM's IP addresses. This field is required at runtime for other controllers that read this CRD as unstructured data. + cloneMode : str, default is Undefined, optional + CloneMode is the type of clone operation used to clone this VM. Since LinkedMode is the default but fails gracefully if the source of the clone has no snapshots, this field may be used to determine the actual type of clone operation used to create this VM. + conditions : [InfrastructureClusterxK8sIoV1alpha3VSphereVMStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereVM. + failureMessage : str, default is Undefined, optional + FailureMessage will be set in the event that there is a terminal problem reconciling the vspherevm and will contain a more verbose string suitable for logging and human consumption. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the vm. + Any transient errors that occur during the reconciliation of vspherevms can be added as events to the vspherevm object and/or logged in the controller's output. + failureReason : str, default is Undefined, optional + FailureReason will be set in the event that there is a terminal problem reconciling the vspherevm and will contain a succinct value suitable for vm interpretation. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the vm. + Any transient errors that occur during the reconciliation of vspherevms can be added as events to the vspherevm object and/or logged in the controller's output. + network : [InfrastructureClusterxK8sIoV1alpha3VSphereVMStatusNetworkItems0], default is Undefined, optional + Network returns the network status for each of the machine's configured network interfaces. + ready : bool, default is Undefined, optional + Ready is true when the provider resource is ready. This field is required at runtime for other controllers that read this CRD as unstructured data. + retryAfter : str, default is Undefined, optional + RetryAfter tracks the time we can retry queueing a task + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which the VM was cloned if LinkedMode is enabled. + taskRef : str, default is Undefined, optional + TaskRef is a managed object reference to a Task related to the machine. This value is set automatically at runtime and should not be set or modified by users. + """ + + + addresses?: [str] + + cloneMode?: str + + conditions?: [InfrastructureClusterxK8sIoV1alpha3VSphereVMStatusConditionsItems0] + + failureMessage?: str + + failureReason?: str + + network?: [InfrastructureClusterxK8sIoV1alpha3VSphereVMStatusNetworkItems0] + + ready?: bool + + retryAfter?: str + + snapshot?: str + + taskRef?: str + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1alpha3VSphereVMStatusNetworkItems0: + """ + NetworkStatus provides information about one of a VM's networks. + + Attributes + ---------- + connected : bool, default is Undefined, optional + Connected is a flag that indicates whether this network is currently connected to the VM. + ipAddrs : [str], default is Undefined, optional + IPAddrs is one or more IP addresses reported by vm-tools. + macAddr : str, default is Undefined, required + MACAddr is the MAC address of the network device. + networkName : str, default is Undefined, optional + NetworkName is the name of the network. + """ + + + connected?: bool + + ipAddrs?: [str] + + macAddr: str + + networkName?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster.k b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster.k new file mode 100644 index 00000000..a2551364 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster.k @@ -0,0 +1,178 @@ +""" +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 VSphereCluster: + """ + VSphereCluster is the Schema for the vsphereclusters API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha4", 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 "VSphereCluster", 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 : InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha4" = "infrastructure.cluster.x-k8s.io/v1alpha4" + + kind: "VSphereCluster" = "VSphereCluster" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpec + + status?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatus + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpec: + """ + VSphereClusterSpec defines the desired state of VSphereCluster + + Attributes + ---------- + controlPlaneEndpoint : InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpecControlPlaneEndpoint, default is Undefined, optional + control plane endpoint + identityRef : InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpecIdentityRef, default is Undefined, optional + identity ref + server : str, default is Undefined, optional + Server is the address of the vSphere endpoint. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate + """ + + + controlPlaneEndpoint?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpecControlPlaneEndpoint + + identityRef?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpecIdentityRef + + server?: str + + thumbprint?: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpecControlPlaneEndpoint: + """ + ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. + + Attributes + ---------- + host : str, default is Undefined, required + The hostname on which the API server is serving. + port : int, default is Undefined, required + The port on which the API server is serving. + """ + + + host: str + + port: int + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterSpecIdentityRef: + """ + IdentityRef is a reference to either a Secret or VSphereClusterIdentity that contains the identity to use when reconciling the cluster. + + Attributes + ---------- + kind : str, default is Undefined, required + Kind of the identity. Can either be VSphereClusterIdentity or Secret + name : str, default is Undefined, required + Name of the identity. + """ + + + kind: "VSphereClusterIdentity" | "Secret" + + name: str + + + check: + len(name) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatus: + """ + VSphereClusterStatus defines the observed state of VSphereClusterSpec + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereCluster. + failureDomains : {str:InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatusFailureDomainsAnon}, default is Undefined, optional + FailureDomains is a list of failure domain objects synced from the infrastructure provider. + ready : bool, default is Undefined, optional + ready + """ + + + conditions?: [InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatusConditionsItems0] + + failureDomains?: {str:InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatusFailureDomainsAnon} + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterStatusFailureDomainsAnon: + """ + FailureDomainSpec is the Schema for Cluster API failure domains. It allows controllers to understand how many failure domains a cluster can optionally span across. + + Attributes + ---------- + attributes : {str:str}, default is Undefined, optional + Attributes is a free form map of attributes an infrastructure provider might use or require. + controlPlane : bool, default is Undefined, optional + ControlPlane determines if this failure domain is suitable for use by control plane machines. + """ + + + attributes?: {str:str} + + controlPlane?: bool + + diff --git a/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster_identity.k b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster_identity.k new file mode 100644 index 00000000..4f2e83a3 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster_identity.k @@ -0,0 +1,166 @@ +""" +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 VSphereClusterIdentity: + """ + VSphereClusterIdentity defines the account to be used for reconciling clusters + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha4", 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 "VSphereClusterIdentity", 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 : InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentityStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha4" = "infrastructure.cluster.x-k8s.io/v1alpha4" + + kind: "VSphereClusterIdentity" = "VSphereClusterIdentity" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpec + + status?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentityStatus + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpec: + """ + infrastructure clusterx k8s io v1alpha4 v sphere cluster identity spec + + Attributes + ---------- + allowedNamespaces : InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespaces, default is Undefined, optional + allowed namespaces + secretName : str, default is Undefined, optional + SecretName references a Secret inside the controller namespace with the credentials to use + """ + + + allowedNamespaces?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespaces + + secretName?: str + + + check: + len(secretName) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespaces: + """ + AllowedNamespaces is used to identify which namespaces are allowed to use this account. Namespaces can be selected with a label selector. If this object is nil, no namespaces will be allowed + + Attributes + ---------- + selector : InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespacesSelector, default is Undefined, optional + selector + """ + + + selector?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespacesSelector + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespacesSelector: + """ + Selector is a standard Kubernetes LabelSelector. A label query over a set of resources. + + Attributes + ---------- + matchExpressions : [InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0], 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?: [InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0] + + matchLabels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0: + """ + 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 InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentityStatus: + """ + infrastructure clusterx k8s io v1alpha4 v sphere cluster identity status + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentityStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereCluster. + ready : bool, default is Undefined, optional + ready + """ + + + conditions?: [InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentityStatusConditionsItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterIdentityStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + diff --git a/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster_template.k b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster_template.k new file mode 100644 index 00000000..802f28e7 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_cluster_template.k @@ -0,0 +1,128 @@ +""" +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 VSphereClusterTemplate: + """ + VSphereClusterTemplate is the Schema for the vsphereclustertemplates API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha4", 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 "VSphereClusterTemplate", 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 : InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha4" = "infrastructure.cluster.x-k8s.io/v1alpha4" + + kind: "VSphereClusterTemplate" = "VSphereClusterTemplate" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpec + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpec: + """ + VSphereClusterTemplateSpec defines the desired state of VSphereClusterTemplate + + Attributes + ---------- + template : InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplate, default is Undefined, required + template + """ + + + template: InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplate + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplate: + """ + infrastructure clusterx k8s io v1alpha4 v sphere cluster template spec template + + Attributes + ---------- + spec : InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpec, default is Undefined, required + spec + """ + + + spec: InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpec + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpec: + """ + VSphereClusterSpec defines the desired state of VSphereCluster + + Attributes + ---------- + controlPlaneEndpoint : InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint, default is Undefined, optional + control plane endpoint + identityRef : InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpecIdentityRef, default is Undefined, optional + identity ref + server : str, default is Undefined, optional + Server is the address of the vSphere endpoint. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate + """ + + + controlPlaneEndpoint?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint + + identityRef?: InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpecIdentityRef + + server?: str + + thumbprint?: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint: + """ + ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. + + Attributes + ---------- + host : str, default is Undefined, required + The hostname on which the API server is serving. + port : int, default is Undefined, required + The port on which the API server is serving. + """ + + + host: str + + port: int + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereClusterTemplateSpecTemplateSpecIdentityRef: + """ + IdentityRef is a reference to either a Secret or VSphereClusterIdentity that contains the identity to use when reconciling the cluster. + + Attributes + ---------- + kind : str, default is Undefined, required + Kind of the identity. Can either be VSphereClusterIdentity or Secret + name : str, default is Undefined, required + Name of the identity. + """ + + + kind: "VSphereClusterIdentity" | "Secret" + + name: str + + + check: + len(name) >= 1 + + diff --git a/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_deployment_zone.k b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_deployment_zone.k new file mode 100644 index 00000000..22f8b208 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_deployment_zone.k @@ -0,0 +1,134 @@ +""" +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 VSphereDeploymentZone: + """ + VSphereDeploymentZone is the Schema for the vspheredeploymentzones API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha4", 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 "VSphereDeploymentZone", 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 : InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha4" = "infrastructure.cluster.x-k8s.io/v1alpha4" + + kind: "VSphereDeploymentZone" = "VSphereDeploymentZone" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneSpec + + status?: InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneStatus + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneSpec: + """ + VSphereDeploymentZoneSpec defines the desired state of VSphereDeploymentZone + + Attributes + ---------- + controlPlane : bool, default is Undefined, optional + ControlPlane determines if this failure domain is suitable for use by control plane machines. + failureDomain : str, default is Undefined, optional + FailureDomain is the name of the VSphereFailureDomain used for this VSphereDeploymentZone + placementConstraint : InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneSpecPlacementConstraint, default is Undefined, required + placement constraint + server : str, default is Undefined, optional + Server is the address of the vSphere endpoint. + """ + + + controlPlane?: bool + + failureDomain?: str + + placementConstraint: InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneSpecPlacementConstraint + + server?: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneSpecPlacementConstraint: + """ + PlacementConstraint encapsulates the placement constraints used within this deployment zone. + + Attributes + ---------- + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + """ + + + folder?: str + + resourcePool?: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneStatus: + """ + infrastructure clusterx k8s io v1alpha4 v sphere deployment zone status + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereMachine. + ready : bool, default is Undefined, optional + Ready is true when the VSphereDeploymentZone resource is ready. If set to false, it will be ignored by VSphereClusters + """ + + + conditions?: [InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneStatusConditionsItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereDeploymentZoneStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + diff --git a/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_failure_domain.k b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_failure_domain.k new file mode 100644 index 00000000..fc4cfa10 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_failure_domain.k @@ -0,0 +1,156 @@ +""" +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 VSphereFailureDomain: + """ + VSphereFailureDomain is the Schema for the vspherefailuredomains API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha4", 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 "VSphereFailureDomain", 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 : InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha4" = "infrastructure.cluster.x-k8s.io/v1alpha4" + + kind: "VSphereFailureDomain" = "VSphereFailureDomain" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpec + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpec: + """ + VSphereFailureDomainSpec defines the desired state of VSphereFailureDomain + + Attributes + ---------- + region : InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecRegion, default is Undefined, required + region + topology : InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecTopology, default is Undefined, required + topology + zone : InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecZone, default is Undefined, required + zone + """ + + + region: InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecRegion + + topology: InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecTopology + + zone: InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecZone + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecRegion: + """ + Region defines the name and type of a region + + Attributes + ---------- + autoConfigure : bool, default is Undefined, optional + AutoConfigure tags the Type which is specified in the Topology + name : str, default is Undefined, required + Name is the name of the tag that represents this failure domain + tagCategory : str, default is Undefined, required + TagCategory is the category used for the tag + $type : str, default is Undefined, required + Type is the type of failure domain, the current values are "Datacenter", "ComputeCluster" and "HostGroup" + """ + + + autoConfigure?: bool + + name: str + + tagCategory: str + + $type: "Datacenter" | "ComputeCluster" | "HostGroup" + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecTopology: + """ + Topology describes a given failure domain using vSphere constructs + + Attributes + ---------- + computeCluster : str, default is Undefined, optional + ComputeCluster as the failure domain + datacenter : str, default is Undefined, required + The underlying infrastructure for this failure domain Datacenter as the failure domain + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + hosts : InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecTopologyHosts, default is Undefined, optional + hosts + networks : [str], default is Undefined, optional + Networks is the list of networks within this failure domain + """ + + + computeCluster?: str + + datacenter: str + + datastore?: str + + hosts?: InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecTopologyHosts + + networks?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecTopologyHosts: + """ + Hosts has information required for placement of machines on VSphere hosts. + + Attributes + ---------- + hostGroupName : str, default is Undefined, required + HostGroupName is the name of the Host group + vmGroupName : str, default is Undefined, required + VMGroupName is the name of the VM group + """ + + + hostGroupName: str + + vmGroupName: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereFailureDomainSpecZone: + """ + Zone defines the name and type of a zone + + Attributes + ---------- + autoConfigure : bool, default is Undefined, optional + AutoConfigure tags the Type which is specified in the Topology + name : str, default is Undefined, required + Name is the name of the tag that represents this failure domain + tagCategory : str, default is Undefined, required + TagCategory is the category used for the tag + $type : str, default is Undefined, required + Type is the type of failure domain, the current values are "Datacenter", "ComputeCluster" and "HostGroup" + """ + + + autoConfigure?: bool + + name: str + + tagCategory: str + + $type: "Datacenter" | "ComputeCluster" | "HostGroup" + + diff --git a/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_machine.k b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_machine.k new file mode 100644 index 00000000..0773bcec --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_machine.k @@ -0,0 +1,364 @@ +""" +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 VSphereMachine: + """ + VSphereMachine is the Schema for the vspheremachines API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha4", 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 "VSphereMachine", 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 : InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha4" = "infrastructure.cluster.x-k8s.io/v1alpha4" + + kind: "VSphereMachine" = "VSphereMachine" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpec + + status?: InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatus + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpec: + """ + VSphereMachineSpec defines the desired state of VSphereMachine + + Attributes + ---------- + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + failureDomain : str, default is Undefined, optional + FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. For this infrastructure provider, the name is equivalent to the name of the VSphereDeploymentZone. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + providerID : str, default is Undefined, optional + ProviderID is the virtual machine's BIOS UUID formated as vsphere://12345678-1234-1234-1234-123456789abc + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + failureDomain?: str + + folder?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + providerID?: str + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP6 is false. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + deviceName?: str + + dhcp4?: bool + + dhcp6?: bool + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatus: + """ + VSphereMachineStatus defines the observed state of VSphereMachine + + Attributes + ---------- + addresses : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusAddressesItems0], default is Undefined, optional + Addresses contains the VSphere instance associated addresses. + conditions : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereMachine. + failureMessage : str, default is Undefined, optional + FailureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. + Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + failureReason : str, default is Undefined, optional + FailureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. + Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + network : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusNetworkItems0], default is Undefined, optional + Network returns the network status for each of the machine's configured network interfaces. + ready : bool, default is Undefined, optional + Ready is true when the provider resource is ready. + """ + + + addresses?: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusAddressesItems0] + + conditions?: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusConditionsItems0] + + failureMessage?: str + + failureReason?: str + + network?: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusNetworkItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusAddressesItems0: + """ + MachineAddress contains information for the node's address. + + Attributes + ---------- + address : str, default is Undefined, required + The machine address. + $type : str, default is Undefined, required + Machine address type, one of Hostname, ExternalIP or InternalIP. + """ + + + address: str + + $type: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineStatusNetworkItems0: + """ + NetworkStatus provides information about one of a VM's networks. + + Attributes + ---------- + connected : bool, default is Undefined, optional + Connected is a flag that indicates whether this network is currently connected to the VM. + ipAddrs : [str], default is Undefined, optional + IPAddrs is one or more IP addresses reported by vm-tools. + macAddr : str, default is Undefined, required + MACAddr is the MAC address of the network device. + networkName : str, default is Undefined, optional + NetworkName is the name of the network. + """ + + + connected?: bool + + ipAddrs?: [str] + + macAddr: str + + networkName?: str + + diff --git a/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_machine_template.k b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_machine_template.k new file mode 100644 index 00000000..2876e047 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_machine_template.k @@ -0,0 +1,294 @@ +""" +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 VSphereMachineTemplate: + """ + VSphereMachineTemplate is the Schema for the vspheremachinetemplates API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha4", 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 "VSphereMachineTemplate", 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 : InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha4" = "infrastructure.cluster.x-k8s.io/v1alpha4" + + kind: "VSphereMachineTemplate" = "VSphereMachineTemplate" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpec + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpec: + """ + VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate + + Attributes + ---------- + template : InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplate, default is Undefined, required + template + """ + + + template: InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplate + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplate: + """ + VSphereMachineTemplateResource describes the data needed to create a VSphereMachine from a template + + Attributes + ---------- + metadata : InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateMetadata, default is Undefined, optional + metadata + spec : InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpec, default is Undefined, required + spec + """ + + + metadata?: InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateMetadata + + spec: InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpec + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateMetadata: + """ + Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + + Attributes + ---------- + annotations : {str:str}, default is Undefined, optional + Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + labels : {str:str}, default is Undefined, optional + Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + """ + + + annotations?: {str:str} + + labels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpec: + """ + Spec is the specification of the desired behavior of the machine. + + Attributes + ---------- + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + failureDomain : str, default is Undefined, optional + FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. For this infrastructure provider, the name is equivalent to the name of the VSphereDeploymentZone. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + providerID : str, default is Undefined, optional + ProviderID is the virtual machine's BIOS UUID formated as vsphere://12345678-1234-1234-1234-123456789abc + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + failureDomain?: str + + folder?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + providerID?: str + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP6 is false. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + deviceName?: str + + dhcp4?: bool + + dhcp6?: bool + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + diff --git a/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_vm.k b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_vm.k new file mode 100644 index 00000000..b7e96111 --- /dev/null +++ b/cluster-api-provider-vsphere/v1alpha4/infrastructure_clusterx_k8s_io_v1alpha4_v_sphere_vm.k @@ -0,0 +1,400 @@ +""" +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 VSphereVM: + """ + VSphereVM is the Schema for the vspherevms API + Deprecated: This type will be removed in one of the next releases. + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1alpha4", 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 "VSphereVM", 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 : InfrastructureClusterxK8sIoV1alpha4VSphereVMSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1alpha4VSphereVMStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1alpha4" = "infrastructure.cluster.x-k8s.io/v1alpha4" + + kind: "VSphereVM" = "VSphereVM" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1alpha4VSphereVMSpec + + status?: InfrastructureClusterxK8sIoV1alpha4VSphereVMStatus + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMSpec: + """ + VSphereVMSpec defines the desired state of VSphereVM. + + Attributes + ---------- + biosUUID : str, default is Undefined, optional + BiosUUID is the the VM's BIOS UUID that is assigned at runtime after the VM has been created. This field is required at runtime for other controllers that read this CRD as unstructured data. + bootstrapRef : InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecBootstrapRef, default is Undefined, optional + bootstrap ref + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + biosUUID?: str + + bootstrapRef?: InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecBootstrapRef + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + folder?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecBootstrapRef: + """ + BootstrapRef is a reference to a bootstrap provider-specific resource that holds configuration details. This field is optional in case no bootstrap data is required to create a VM. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + fieldPath : str, default is Undefined, optional + If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + kind : str, default is Undefined, optional + Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + namespace : str, default is Undefined, optional + Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + resourceVersion : str, default is Undefined, optional + Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + uid : str, default is Undefined, optional + UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + """ + + + apiVersion?: str + + fieldPath?: str + + kind?: str + + name?: str + + namespace?: str + + resourceVersion?: str + + uid?: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP6 is false. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + deviceName?: str + + dhcp4?: bool + + dhcp6?: bool + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMStatus: + """ + VSphereVMStatus defines the observed state of VSphereVM + + Attributes + ---------- + addresses : [str], default is Undefined, optional + Addresses is a list of the VM's IP addresses. This field is required at runtime for other controllers that read this CRD as unstructured data. + cloneMode : str, default is Undefined, optional + CloneMode is the type of clone operation used to clone this VM. Since LinkedMode is the default but fails gracefully if the source of the clone has no snapshots, this field may be used to determine the actual type of clone operation used to create this VM. + conditions : [InfrastructureClusterxK8sIoV1alpha4VSphereVMStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereVM. + failureMessage : str, default is Undefined, optional + FailureMessage will be set in the event that there is a terminal problem reconciling the vspherevm and will contain a more verbose string suitable for logging and human consumption. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the vm. + Any transient errors that occur during the reconciliation of vspherevms can be added as events to the vspherevm object and/or logged in the controller's output. + failureReason : str, default is Undefined, optional + FailureReason will be set in the event that there is a terminal problem reconciling the vspherevm and will contain a succinct value suitable for vm interpretation. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the vm. + Any transient errors that occur during the reconciliation of vspherevms can be added as events to the vspherevm object and/or logged in the controller's output. + network : [InfrastructureClusterxK8sIoV1alpha4VSphereVMStatusNetworkItems0], default is Undefined, optional + Network returns the network status for each of the machine's configured network interfaces. + ready : bool, default is Undefined, optional + Ready is true when the provider resource is ready. This field is required at runtime for other controllers that read this CRD as unstructured data. + retryAfter : str, default is Undefined, optional + RetryAfter tracks the time we can retry queueing a task + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which the VM was cloned if LinkedMode is enabled. + taskRef : str, default is Undefined, optional + TaskRef is a managed object reference to a Task related to the machine. This value is set automatically at runtime and should not be set or modified by users. + """ + + + addresses?: [str] + + cloneMode?: str + + conditions?: [InfrastructureClusterxK8sIoV1alpha4VSphereVMStatusConditionsItems0] + + failureMessage?: str + + failureReason?: str + + network?: [InfrastructureClusterxK8sIoV1alpha4VSphereVMStatusNetworkItems0] + + ready?: bool + + retryAfter?: str + + snapshot?: str + + taskRef?: str + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, optional + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1alpha4VSphereVMStatusNetworkItems0: + """ + NetworkStatus provides information about one of a VM's networks. + + Attributes + ---------- + connected : bool, default is Undefined, optional + Connected is a flag that indicates whether this network is currently connected to the VM. + ipAddrs : [str], default is Undefined, optional + IPAddrs is one or more IP addresses reported by vm-tools. + macAddr : str, default is Undefined, required + MACAddr is the MAC address of the network device. + networkName : str, default is Undefined, optional + NetworkName is the name of the network. + """ + + + connected?: bool + + ipAddrs?: [str] + + macAddr: str + + networkName?: str + + diff --git a/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster.k b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster.k new file mode 100644 index 00000000..03c2511c --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster.k @@ -0,0 +1,251 @@ +""" +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 VSphereCluster: + """ + VSphereCluster is the Schema for the vsphereclusters API + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereCluster", 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 : InfrastructureClusterxK8sIoV1beta1VSphereClusterSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1beta1VSphereClusterStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta1" = "infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereCluster" = "VSphereCluster" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1VSphereClusterSpec + + status?: InfrastructureClusterxK8sIoV1beta1VSphereClusterStatus + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterSpec: + """ + VSphereClusterSpec defines the desired state of VSphereCluster + + Attributes + ---------- + clusterModules : [InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecClusterModulesItems0], default is Undefined, optional + ClusterModules hosts information regarding the anti-affinity vSphere constructs for each of the objects responsible for creation of VM objects belonging to the cluster. + controlPlaneEndpoint : InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecControlPlaneEndpoint, default is Undefined, optional + control plane endpoint + failureDomainSelector : InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecFailureDomainSelector, default is Undefined, optional + failure domain selector + identityRef : InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecIdentityRef, default is Undefined, optional + identity ref + server : str, default is Undefined, optional + Server is the address of the vSphere endpoint. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate + """ + + + clusterModules?: [InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecClusterModulesItems0] + + controlPlaneEndpoint?: InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecControlPlaneEndpoint + + failureDomainSelector?: InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecFailureDomainSelector + + identityRef?: InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecIdentityRef + + server?: str + + thumbprint?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecClusterModulesItems0: + """ + ClusterModule holds the anti affinity construct `ClusterModule` identifier in use by the VMs owned by the object referred by the TargetObjectName field. + + Attributes + ---------- + controlPlane : bool, default is Undefined, required + ControlPlane indicates whether the referred object is responsible for control plane nodes. Currently, only the KubeadmControlPlane objects have this flag set to true. Only a single object in the slice can have this value set to true. + moduleUUID : str, default is Undefined, required + ModuleUUID is the unique identifier of the `ClusterModule` used by the object. + targetObjectName : str, default is Undefined, required + TargetObjectName points to the object that uses the Cluster Module information to enforce anti-affinity amongst its descendant VM objects. + """ + + + controlPlane: bool + + moduleUUID: str + + targetObjectName: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecControlPlaneEndpoint: + """ + ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. + + Attributes + ---------- + host : str, default is Undefined, required + The hostname on which the API server is serving. + port : int, default is Undefined, required + The port on which the API server is serving. + """ + + + host: str + + port: int + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecFailureDomainSelector: + """ + FailureDomainSelector is the label selector to use for failure domain selection for the control plane nodes of the cluster. If not set (`nil`), selecting failure domains will be disabled. An empty value (`{}`) selects all existing failure domains. A valid selector will select all failure domains which match the selector. + + Attributes + ---------- + matchExpressions : [InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecFailureDomainSelectorMatchExpressionsItems0], 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?: [InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecFailureDomainSelectorMatchExpressionsItems0] + + matchLabels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecFailureDomainSelectorMatchExpressionsItems0: + """ + 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 InfrastructureClusterxK8sIoV1beta1VSphereClusterSpecIdentityRef: + """ + IdentityRef is a reference to either a Secret or VSphereClusterIdentity that contains the identity to use when reconciling the cluster. + + Attributes + ---------- + kind : str, default is Undefined, required + Kind of the identity. Can either be VSphereClusterIdentity or Secret + name : str, default is Undefined, required + Name of the identity. + """ + + + kind: "VSphereClusterIdentity" | "Secret" + + name: str + + + check: + len(name) >= 1 + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterStatus: + """ + VSphereClusterStatus defines the observed state of VSphereClusterSpec + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1beta1VSphereClusterStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereCluster. + failureDomains : {str:InfrastructureClusterxK8sIoV1beta1VSphereClusterStatusFailureDomainsAnon}, default is Undefined, optional + FailureDomains is a list of failure domain objects synced from the infrastructure provider. + ready : bool, default is Undefined, optional + ready + vCenterVersion : str, default is Undefined, optional + VCenterVersion defines the version of the vCenter server defined in the spec. + """ + + + conditions?: [InfrastructureClusterxK8sIoV1beta1VSphereClusterStatusConditionsItems0] + + failureDomains?: {str:InfrastructureClusterxK8sIoV1beta1VSphereClusterStatusFailureDomainsAnon} + + ready?: bool + + vCenterVersion?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, required + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterStatusFailureDomainsAnon: + """ + FailureDomainSpec is the Schema for Cluster API failure domains. It allows controllers to understand how many failure domains a cluster can optionally span across. + + Attributes + ---------- + attributes : {str:str}, default is Undefined, optional + Attributes is a free form map of attributes an infrastructure provider might use or require. + controlPlane : bool, default is Undefined, optional + ControlPlane determines if this failure domain is suitable for use by control plane machines. + """ + + + attributes?: {str:str} + + controlPlane?: bool + + diff --git a/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_identity.k b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_identity.k new file mode 100644 index 00000000..c3885750 --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_identity.k @@ -0,0 +1,165 @@ +""" +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 VSphereClusterIdentity: + """ + VSphereClusterIdentity defines the account to be used for reconciling clusters + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereClusterIdentity", 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 : InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentityStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta1" = "infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereClusterIdentity" = "VSphereClusterIdentity" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpec + + status?: InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentityStatus + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpec: + """ + infrastructure clusterx k8s io v1beta1 v sphere cluster identity spec + + Attributes + ---------- + allowedNamespaces : InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespaces, default is Undefined, optional + allowed namespaces + secretName : str, default is Undefined, optional + SecretName references a Secret inside the controller namespace with the credentials to use + """ + + + allowedNamespaces?: InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespaces + + secretName?: str + + + check: + len(secretName) >= 1 + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespaces: + """ + AllowedNamespaces is used to identify which namespaces are allowed to use this account. Namespaces can be selected with a label selector. If this object is nil, no namespaces will be allowed + + Attributes + ---------- + selector : InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespacesSelector, default is Undefined, optional + selector + """ + + + selector?: InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespacesSelector + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespacesSelector: + """ + Selector is a standard Kubernetes LabelSelector. A label query over a set of resources. + + Attributes + ---------- + matchExpressions : [InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0], 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?: [InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0] + + matchLabels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentitySpecAllowedNamespacesSelectorMatchExpressionsItems0: + """ + 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 InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentityStatus: + """ + infrastructure clusterx k8s io v1beta1 v sphere cluster identity status + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentityStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereCluster. + ready : bool, default is Undefined, optional + ready + """ + + + conditions?: [InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentityStatusConditionsItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterIdentityStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, required + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + diff --git a/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_template.k b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_template.k new file mode 100644 index 00000000..e86e79f9 --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_template.k @@ -0,0 +1,197 @@ +""" +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 VSphereClusterTemplate: + """ + VSphereClusterTemplate is the Schema for the vsphereclustertemplates API + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereClusterTemplate", 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 : InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta1" = "infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereClusterTemplate" = "VSphereClusterTemplate" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpec + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpec: + """ + VSphereClusterTemplateSpec defines the desired state of VSphereClusterTemplate + + Attributes + ---------- + template : InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplate, default is Undefined, required + template + """ + + + template: InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplate + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplate: + """ + infrastructure clusterx k8s io v1beta1 v sphere cluster template spec template + + Attributes + ---------- + spec : InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpec, default is Undefined, required + spec + """ + + + spec: InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpec + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpec: + """ + VSphereClusterSpec defines the desired state of VSphereCluster + + Attributes + ---------- + clusterModules : [InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecClusterModulesItems0], default is Undefined, optional + ClusterModules hosts information regarding the anti-affinity vSphere constructs for each of the objects responsible for creation of VM objects belonging to the cluster. + controlPlaneEndpoint : InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint, default is Undefined, optional + control plane endpoint + failureDomainSelector : InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecFailureDomainSelector, default is Undefined, optional + failure domain selector + identityRef : InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecIdentityRef, default is Undefined, optional + identity ref + server : str, default is Undefined, optional + Server is the address of the vSphere endpoint. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate + """ + + + clusterModules?: [InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecClusterModulesItems0] + + controlPlaneEndpoint?: InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint + + failureDomainSelector?: InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecFailureDomainSelector + + identityRef?: InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecIdentityRef + + server?: str + + thumbprint?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecClusterModulesItems0: + """ + ClusterModule holds the anti affinity construct `ClusterModule` identifier in use by the VMs owned by the object referred by the TargetObjectName field. + + Attributes + ---------- + controlPlane : bool, default is Undefined, required + ControlPlane indicates whether the referred object is responsible for control plane nodes. Currently, only the KubeadmControlPlane objects have this flag set to true. Only a single object in the slice can have this value set to true. + moduleUUID : str, default is Undefined, required + ModuleUUID is the unique identifier of the `ClusterModule` used by the object. + targetObjectName : str, default is Undefined, required + TargetObjectName points to the object that uses the Cluster Module information to enforce anti-affinity amongst its descendant VM objects. + """ + + + controlPlane: bool + + moduleUUID: str + + targetObjectName: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint: + """ + ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. + + Attributes + ---------- + host : str, default is Undefined, required + The hostname on which the API server is serving. + port : int, default is Undefined, required + The port on which the API server is serving. + """ + + + host: str + + port: int + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecFailureDomainSelector: + """ + FailureDomainSelector is the label selector to use for failure domain selection for the control plane nodes of the cluster. If not set (`nil`), selecting failure domains will be disabled. An empty value (`{}`) selects all existing failure domains. A valid selector will select all failure domains which match the selector. + + Attributes + ---------- + matchExpressions : [InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecFailureDomainSelectorMatchExpressionsItems0], 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?: [InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecFailureDomainSelectorMatchExpressionsItems0] + + matchLabels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecFailureDomainSelectorMatchExpressionsItems0: + """ + 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 InfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecIdentityRef: + """ + IdentityRef is a reference to either a Secret or VSphereClusterIdentity that contains the identity to use when reconciling the cluster. + + Attributes + ---------- + kind : str, default is Undefined, required + Kind of the identity. Can either be VSphereClusterIdentity or Secret + name : str, default is Undefined, required + Name of the identity. + """ + + + kind: "VSphereClusterIdentity" | "Secret" + + name: str + + + check: + len(name) >= 1 + + diff --git a/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_deployment_zone.k b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_deployment_zone.k new file mode 100644 index 00000000..52f73a24 --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_deployment_zone.k @@ -0,0 +1,133 @@ +""" +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 VSphereDeploymentZone: + """ + VSphereDeploymentZone is the Schema for the vspheredeploymentzones API + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereDeploymentZone", 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 : InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta1" = "infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereDeploymentZone" = "VSphereDeploymentZone" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneSpec + + status?: InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneStatus + + +schema InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneSpec: + """ + VSphereDeploymentZoneSpec defines the desired state of VSphereDeploymentZone + + Attributes + ---------- + controlPlane : bool, default is Undefined, optional + ControlPlane determines if this failure domain is suitable for use by control plane machines. + failureDomain : str, default is Undefined, optional + FailureDomain is the name of the VSphereFailureDomain used for this VSphereDeploymentZone + placementConstraint : InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneSpecPlacementConstraint, default is Undefined, required + placement constraint + server : str, default is Undefined, optional + Server is the address of the vSphere endpoint. + """ + + + controlPlane?: bool + + failureDomain?: str + + placementConstraint: InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneSpecPlacementConstraint + + server?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneSpecPlacementConstraint: + """ + PlacementConstraint encapsulates the placement constraints used within this deployment zone. + + Attributes + ---------- + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + """ + + + folder?: str + + resourcePool?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneStatus: + """ + infrastructure clusterx k8s io v1beta1 v sphere deployment zone status + + Attributes + ---------- + conditions : [InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereMachine. + ready : bool, default is Undefined, optional + Ready is true when the VSphereDeploymentZone resource is ready. If set to false, it will be ignored by VSphereClusters + """ + + + conditions?: [InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneStatusConditionsItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1beta1VSphereDeploymentZoneStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, required + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + diff --git a/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_failure_domain.k b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_failure_domain.k new file mode 100644 index 00000000..feaf00ea --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_failure_domain.k @@ -0,0 +1,157 @@ +""" +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 VSphereFailureDomain: + """ + VSphereFailureDomain is the Schema for the vspherefailuredomains API + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereFailureDomain", 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 : InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta1" = "infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereFailureDomain" = "VSphereFailureDomain" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpec + + +schema InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpec: + """ + VSphereFailureDomainSpec defines the desired state of VSphereFailureDomain + + Attributes + ---------- + region : InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecRegion, default is Undefined, required + region + topology : InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecTopology, default is Undefined, required + topology + zone : InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecZone, default is Undefined, required + zone + """ + + + region: InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecRegion + + topology: InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecTopology + + zone: InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecZone + + +schema InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecRegion: + """ + Region defines the name and type of a region + + Attributes + ---------- + autoConfigure : bool, default is Undefined, optional + AutoConfigure tags the Type which is specified in the Topology + Deprecated: This field is going to be removed in a future release. + name : str, default is Undefined, required + Name is the name of the tag that represents this failure domain + tagCategory : str, default is Undefined, required + TagCategory is the category used for the tag + $type : str, default is Undefined, required + Type is the type of failure domain, the current values are "Datacenter", "ComputeCluster" and "HostGroup" + """ + + + autoConfigure?: bool + + name: str + + tagCategory: str + + $type: "Datacenter" | "ComputeCluster" | "HostGroup" + + +schema InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecTopology: + """ + Topology describes a given failure domain using vSphere constructs + + Attributes + ---------- + computeCluster : str, default is Undefined, optional + ComputeCluster as the failure domain + datacenter : str, default is Undefined, required + Datacenter as the failure domain. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + hosts : InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecTopologyHosts, default is Undefined, optional + hosts + networks : [str], default is Undefined, optional + Networks is the list of networks within this failure domain + """ + + + computeCluster?: str + + datacenter: str + + datastore?: str + + hosts?: InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecTopologyHosts + + networks?: [str] + + +schema InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecTopologyHosts: + """ + Hosts has information required for placement of machines on VSphere hosts. + + Attributes + ---------- + hostGroupName : str, default is Undefined, required + HostGroupName is the name of the Host group + vmGroupName : str, default is Undefined, required + VMGroupName is the name of the VM group + """ + + + hostGroupName: str + + vmGroupName: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereFailureDomainSpecZone: + """ + Zone defines the name and type of a zone + + Attributes + ---------- + autoConfigure : bool, default is Undefined, optional + AutoConfigure tags the Type which is specified in the Topology + Deprecated: This field is going to be removed in a future release. + name : str, default is Undefined, required + Name is the name of the tag that represents this failure domain + tagCategory : str, default is Undefined, required + TagCategory is the category used for the tag + $type : str, default is Undefined, required + Type is the type of failure domain, the current values are "Datacenter", "ComputeCluster" and "HostGroup" + """ + + + autoConfigure?: bool + + name: str + + tagCategory: str + + $type: "Datacenter" | "ComputeCluster" | "HostGroup" + + diff --git a/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine.k b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine.k new file mode 100644 index 00000000..6ce66705 --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine.k @@ -0,0 +1,539 @@ +""" +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 VSphereMachine: + """ + VSphereMachine is the Schema for the vspheremachines API + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereMachine", 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 : InfrastructureClusterxK8sIoV1beta1VSphereMachineSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1beta1VSphereMachineStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta1" = "infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereMachine" = "VSphereMachine" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1VSphereMachineSpec + + status?: InfrastructureClusterxK8sIoV1beta1VSphereMachineStatus + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpec: + """ + VSphereMachineSpec defines the desired state of VSphereMachine + + Attributes + ---------- + additionalDisksGiB : [int], default is Undefined, optional + AdditionalDisksGiB holds the sizes of additional disks of the virtual machine, in GiB Defaults to the eponymous property value in the template from which the virtual machine is cloned. + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. Defaults to * which selects the default datacenter. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + failureDomain : str, default is Undefined, optional + FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. For this infrastructure provider, the name is equivalent to the name of the VSphereDeploymentZone. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + guestSoftPowerOffTimeout : str, default is Undefined, optional + GuestSoftPowerOffTimeout sets the wait timeout for shutdown in the VM guest. The VM will be powered off forcibly after the timeout if the VM is still up and running when the PowerOffMode is set to trySoft. + This parameter only applies when the PowerOffMode is set to trySoft. + If omitted, the timeout defaults to 5 minutes. + hardwareVersion : str, default is Undefined, optional + HardwareVersion is the hardware version of the virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. Check the compatibility with the ESXi version before setting the value. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + os : str, default is Undefined, optional + OS is the Operating System of the virtual machine Defaults to Linux + pciDevices : [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecPciDevicesItems0], default is Undefined, optional + PciDevices is the list of pci devices used by the virtual machine. + powerOffMode : str, default is "hard", optional + PowerOffMode describes the desired behavior when powering off a VM. + There are three, supported power off modes: hard, soft, and trySoft. The first mode, hard, is the equivalent of a physical system's power cord being ripped from the wall. The soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully shut down the VM. Its variant, trySoft, first attempts a graceful shutdown, and if that fails or the VM is not in a powered off state after reaching the GuestSoftPowerOffTimeout, the VM is halted. + If omitted, the mode defaults to hard. + providerID : str, default is Undefined, optional + ProviderID is the virtual machine's BIOS UUID formated as vsphere://12345678-1234-1234-1234-123456789abc + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + tagIDs : [str], default is Undefined, optional + TagIDs is an optional set of tags to add to an instance. Specified tagIDs must use URN-notation instead of display names. + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + additionalDisksGiB?: [int] + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + failureDomain?: str + + folder?: str + + guestSoftPowerOffTimeout?: str + + hardwareVersion?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + os?: str + + pciDevices?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecPciDevicesItems0] + + powerOffMode?: "hard" | "soft" | "trySoft" = "hard" + + providerID?: str + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + tagIDs?: [str] + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + addressesFromPools : [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0AddressesFromPoolsItems0], default is Undefined, optional + AddressesFromPools is a list of IPAddressPools that should be assigned to IPAddressClaims. The machine's cloud-init metadata will be populated with IPAddresses fulfilled by an IPAM provider. + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp4Overrides : InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0Dhcp4Overrides, default is Undefined, optional + dhcp4 overrides + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + dhcp6Overrides : InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0Dhcp6Overrides, default is Undefined, optional + dhcp6 overrides + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + addressesFromPools?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0AddressesFromPoolsItems0] + + deviceName?: str + + dhcp4?: bool + + dhcp4Overrides?: InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0Dhcp4Overrides + + dhcp6?: bool + + dhcp6Overrides?: InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0Dhcp6Overrides + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0AddressesFromPoolsItems0: + """ + TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace. + + Attributes + ---------- + apiGroup : str, default is Undefined, optional + APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + kind : str, default is Undefined, required + Kind is the type of resource being referenced + name : str, default is Undefined, required + Name is the name of resource being referenced + """ + + + apiGroup?: str + + kind: str + + name: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0Dhcp4Overrides: + """ + DHCP4Overrides allows for the control over several DHCP behaviors. Overrides will only be applied when the corresponding DHCP flag is set. Only configured values will be sent, omitted values will default to distribution defaults. Dependent on support in the network stack for your distribution. For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides) + + Attributes + ---------- + hostname : str, default is Undefined, optional + Hostname is the name which will be sent to the DHCP server instead of the machine's hostname. + routeMetric : int, default is Undefined, optional + RouteMetric is used to prioritize routes for devices. A lower metric for an interface will have a higher priority. + sendHostname : bool, default is Undefined, optional + SendHostname when `true`, the hostname of the machine will be sent to the DHCP server. + useDNS : bool, default is Undefined, optional + UseDNS when `true`, the DNS servers in the DHCP server will be used and take precedence. + useDomains : str, default is Undefined, optional + UseDomains can take the values `true`, `false`, or `route`. When `true`, the domain name from the DHCP server will be used as the DNS search domain for this device. When `route`, the domain name from the DHCP response will be used for routing DNS only, not for searching. + useHostname : bool, default is Undefined, optional + UseHostname when `true`, the hostname from the DHCP server will be set as the transient hostname of the machine. + useMTU : bool, default is Undefined, optional + UseMTU when `true`, the MTU from the DHCP server will be set as the MTU of the device. + useNTP : bool, default is Undefined, optional + UseNTP when `true`, the NTP servers from the DHCP server will be used by systemd-timesyncd and take precedence. + useRoutes : str, default is Undefined, optional + UseRoutes when `true`, the routes from the DHCP server will be installed in the routing table. + """ + + + hostname?: str + + routeMetric?: int + + sendHostname?: bool + + useDNS?: bool + + useDomains?: str + + useHostname?: bool + + useMTU?: bool + + useNTP?: bool + + useRoutes?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0Dhcp6Overrides: + """ + DHCP6Overrides allows for the control over several DHCP behaviors. Overrides will only be applied when the corresponding DHCP flag is set. Only configured values will be sent, omitted values will default to distribution defaults. Dependent on support in the network stack for your distribution. For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides) + + Attributes + ---------- + hostname : str, default is Undefined, optional + Hostname is the name which will be sent to the DHCP server instead of the machine's hostname. + routeMetric : int, default is Undefined, optional + RouteMetric is used to prioritize routes for devices. A lower metric for an interface will have a higher priority. + sendHostname : bool, default is Undefined, optional + SendHostname when `true`, the hostname of the machine will be sent to the DHCP server. + useDNS : bool, default is Undefined, optional + UseDNS when `true`, the DNS servers in the DHCP server will be used and take precedence. + useDomains : str, default is Undefined, optional + UseDomains can take the values `true`, `false`, or `route`. When `true`, the domain name from the DHCP server will be used as the DNS search domain for this device. When `route`, the domain name from the DHCP response will be used for routing DNS only, not for searching. + useHostname : bool, default is Undefined, optional + UseHostname when `true`, the hostname from the DHCP server will be set as the transient hostname of the machine. + useMTU : bool, default is Undefined, optional + UseMTU when `true`, the MTU from the DHCP server will be set as the MTU of the device. + useNTP : bool, default is Undefined, optional + UseNTP when `true`, the NTP servers from the DHCP server will be used by systemd-timesyncd and take precedence. + useRoutes : str, default is Undefined, optional + UseRoutes when `true`, the routes from the DHCP server will be installed in the routing table. + """ + + + hostname?: str + + routeMetric?: int + + sendHostname?: bool + + useDNS?: bool + + useDomains?: str + + useHostname?: bool + + useMTU?: bool + + useNTP?: bool + + useRoutes?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineSpecPciDevicesItems0: + """ + PCIDeviceSpec defines virtual machine's PCI configuration + + Attributes + ---------- + deviceId : int, default is Undefined, optional + DeviceID is the device ID of a virtual machine's PCI, in integer. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + vendorId : int, default is Undefined, optional + VendorId is the vendor ID of a virtual machine's PCI, in integer. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + """ + + + deviceId?: int + + vendorId?: int + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineStatus: + """ + VSphereMachineStatus defines the observed state of VSphereMachine + + Attributes + ---------- + addresses : [InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusAddressesItems0], default is Undefined, optional + Addresses contains the VSphere instance associated addresses. + conditions : [InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereMachine. + failureMessage : str, default is Undefined, optional + FailureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. + Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + failureReason : str, default is Undefined, optional + FailureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. + Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + network : [InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusNetworkItems0], default is Undefined, optional + Network returns the network status for each of the machine's configured network interfaces. + ready : bool, default is Undefined, optional + Ready is true when the provider resource is ready. + """ + + + addresses?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusAddressesItems0] + + conditions?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusConditionsItems0] + + failureMessage?: str + + failureReason?: str + + network?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusNetworkItems0] + + ready?: bool + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusAddressesItems0: + """ + MachineAddress contains information for the node's address. + + Attributes + ---------- + address : str, default is Undefined, required + The machine address. + $type : str, default is Undefined, required + Machine address type, one of Hostname, ExternalIP, InternalIP, ExternalDNS or InternalDNS. + """ + + + address: str + + $type: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, required + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineStatusNetworkItems0: + """ + NetworkStatus provides information about one of a VM's networks. + + Attributes + ---------- + connected : bool, default is Undefined, optional + Connected is a flag that indicates whether this network is currently connected to the VM. + ipAddrs : [str], default is Undefined, optional + IPAddrs is one or more IP addresses reported by vm-tools. + macAddr : str, default is Undefined, required + MACAddr is the MAC address of the network device. + networkName : str, default is Undefined, optional + NetworkName is the name of the network. + """ + + + connected?: bool + + ipAddrs?: [str] + + macAddr: str + + networkName?: str + + diff --git a/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine_template.k b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine_template.k new file mode 100644 index 00000000..7299ddec --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine_template.k @@ -0,0 +1,469 @@ +""" +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 VSphereMachineTemplate: + """ + VSphereMachineTemplate is the Schema for the vspheremachinetemplates API + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereMachineTemplate", 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 : InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpec, default is Undefined, optional + spec + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta1" = "infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereMachineTemplate" = "VSphereMachineTemplate" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpec + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpec: + """ + VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate + + Attributes + ---------- + template : InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplate, default is Undefined, required + template + """ + + + template: InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplate + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplate: + """ + VSphereMachineTemplateResource describes the data needed to create a VSphereMachine from a template + + Attributes + ---------- + metadata : InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateMetadata, default is Undefined, optional + metadata + spec : InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpec, default is Undefined, required + spec + """ + + + metadata?: InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateMetadata + + spec: InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpec + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateMetadata: + """ + Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + + Attributes + ---------- + annotations : {str:str}, default is Undefined, optional + Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + labels : {str:str}, default is Undefined, optional + Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + """ + + + annotations?: {str:str} + + labels?: {str:str} + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpec: + """ + Spec is the specification of the desired behavior of the machine. + + Attributes + ---------- + additionalDisksGiB : [int], default is Undefined, optional + AdditionalDisksGiB holds the sizes of additional disks of the virtual machine, in GiB Defaults to the eponymous property value in the template from which the virtual machine is cloned. + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. Defaults to * which selects the default datacenter. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + failureDomain : str, default is Undefined, optional + FailureDomain is the failure domain unique identifier this Machine should be attached to, as defined in Cluster API. For this infrastructure provider, the name is equivalent to the name of the VSphereDeploymentZone. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + guestSoftPowerOffTimeout : str, default is Undefined, optional + GuestSoftPowerOffTimeout sets the wait timeout for shutdown in the VM guest. The VM will be powered off forcibly after the timeout if the VM is still up and running when the PowerOffMode is set to trySoft. + This parameter only applies when the PowerOffMode is set to trySoft. + If omitted, the timeout defaults to 5 minutes. + hardwareVersion : str, default is Undefined, optional + HardwareVersion is the hardware version of the virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. Check the compatibility with the ESXi version before setting the value. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + os : str, default is Undefined, optional + OS is the Operating System of the virtual machine Defaults to Linux + pciDevices : [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecPciDevicesItems0], default is Undefined, optional + PciDevices is the list of pci devices used by the virtual machine. + powerOffMode : str, default is "hard", optional + PowerOffMode describes the desired behavior when powering off a VM. + There are three, supported power off modes: hard, soft, and trySoft. The first mode, hard, is the equivalent of a physical system's power cord being ripped from the wall. The soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully shut down the VM. Its variant, trySoft, first attempts a graceful shutdown, and if that fails or the VM is not in a powered off state after reaching the GuestSoftPowerOffTimeout, the VM is halted. + If omitted, the mode defaults to hard. + providerID : str, default is Undefined, optional + ProviderID is the virtual machine's BIOS UUID formated as vsphere://12345678-1234-1234-1234-123456789abc + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + tagIDs : [str], default is Undefined, optional + TagIDs is an optional set of tags to add to an instance. Specified tagIDs must use URN-notation instead of display names. + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + additionalDisksGiB?: [int] + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + failureDomain?: str + + folder?: str + + guestSoftPowerOffTimeout?: str + + hardwareVersion?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + os?: str + + pciDevices?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecPciDevicesItems0] + + powerOffMode?: "hard" | "soft" | "trySoft" = "hard" + + providerID?: str + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + tagIDs?: [str] + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + addressesFromPools : [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0AddressesFromPoolsItems0], default is Undefined, optional + AddressesFromPools is a list of IPAddressPools that should be assigned to IPAddressClaims. The machine's cloud-init metadata will be populated with IPAddresses fulfilled by an IPAM provider. + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp4Overrides : InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0Dhcp4Overrides, default is Undefined, optional + dhcp4 overrides + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + dhcp6Overrides : InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0Dhcp6Overrides, default is Undefined, optional + dhcp6 overrides + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + addressesFromPools?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0AddressesFromPoolsItems0] + + deviceName?: str + + dhcp4?: bool + + dhcp4Overrides?: InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0Dhcp4Overrides + + dhcp6?: bool + + dhcp6Overrides?: InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0Dhcp6Overrides + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0AddressesFromPoolsItems0: + """ + TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace. + + Attributes + ---------- + apiGroup : str, default is Undefined, optional + APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + kind : str, default is Undefined, required + Kind is the type of resource being referenced + name : str, default is Undefined, required + Name is the name of resource being referenced + """ + + + apiGroup?: str + + kind: str + + name: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0Dhcp4Overrides: + """ + DHCP4Overrides allows for the control over several DHCP behaviors. Overrides will only be applied when the corresponding DHCP flag is set. Only configured values will be sent, omitted values will default to distribution defaults. Dependent on support in the network stack for your distribution. For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides) + + Attributes + ---------- + hostname : str, default is Undefined, optional + Hostname is the name which will be sent to the DHCP server instead of the machine's hostname. + routeMetric : int, default is Undefined, optional + RouteMetric is used to prioritize routes for devices. A lower metric for an interface will have a higher priority. + sendHostname : bool, default is Undefined, optional + SendHostname when `true`, the hostname of the machine will be sent to the DHCP server. + useDNS : bool, default is Undefined, optional + UseDNS when `true`, the DNS servers in the DHCP server will be used and take precedence. + useDomains : str, default is Undefined, optional + UseDomains can take the values `true`, `false`, or `route`. When `true`, the domain name from the DHCP server will be used as the DNS search domain for this device. When `route`, the domain name from the DHCP response will be used for routing DNS only, not for searching. + useHostname : bool, default is Undefined, optional + UseHostname when `true`, the hostname from the DHCP server will be set as the transient hostname of the machine. + useMTU : bool, default is Undefined, optional + UseMTU when `true`, the MTU from the DHCP server will be set as the MTU of the device. + useNTP : bool, default is Undefined, optional + UseNTP when `true`, the NTP servers from the DHCP server will be used by systemd-timesyncd and take precedence. + useRoutes : str, default is Undefined, optional + UseRoutes when `true`, the routes from the DHCP server will be installed in the routing table. + """ + + + hostname?: str + + routeMetric?: int + + sendHostname?: bool + + useDNS?: bool + + useDomains?: str + + useHostname?: bool + + useMTU?: bool + + useNTP?: bool + + useRoutes?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0Dhcp6Overrides: + """ + DHCP6Overrides allows for the control over several DHCP behaviors. Overrides will only be applied when the corresponding DHCP flag is set. Only configured values will be sent, omitted values will default to distribution defaults. Dependent on support in the network stack for your distribution. For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides) + + Attributes + ---------- + hostname : str, default is Undefined, optional + Hostname is the name which will be sent to the DHCP server instead of the machine's hostname. + routeMetric : int, default is Undefined, optional + RouteMetric is used to prioritize routes for devices. A lower metric for an interface will have a higher priority. + sendHostname : bool, default is Undefined, optional + SendHostname when `true`, the hostname of the machine will be sent to the DHCP server. + useDNS : bool, default is Undefined, optional + UseDNS when `true`, the DNS servers in the DHCP server will be used and take precedence. + useDomains : str, default is Undefined, optional + UseDomains can take the values `true`, `false`, or `route`. When `true`, the domain name from the DHCP server will be used as the DNS search domain for this device. When `route`, the domain name from the DHCP response will be used for routing DNS only, not for searching. + useHostname : bool, default is Undefined, optional + UseHostname when `true`, the hostname from the DHCP server will be set as the transient hostname of the machine. + useMTU : bool, default is Undefined, optional + UseMTU when `true`, the MTU from the DHCP server will be set as the MTU of the device. + useNTP : bool, default is Undefined, optional + UseNTP when `true`, the NTP servers from the DHCP server will be used by systemd-timesyncd and take precedence. + useRoutes : str, default is Undefined, optional + UseRoutes when `true`, the routes from the DHCP server will be installed in the routing table. + """ + + + hostname?: str + + routeMetric?: int + + sendHostname?: bool + + useDNS?: bool + + useDomains?: str + + useHostname?: bool + + useMTU?: bool + + useNTP?: bool + + useRoutes?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecPciDevicesItems0: + """ + PCIDeviceSpec defines virtual machine's PCI configuration + + Attributes + ---------- + deviceId : int, default is Undefined, optional + DeviceID is the device ID of a virtual machine's PCI, in integer. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + vendorId : int, default is Undefined, optional + VendorId is the vendor ID of a virtual machine's PCI, in integer. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + """ + + + deviceId?: int + + vendorId?: int + + diff --git a/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_vm.k b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_vm.k new file mode 100644 index 00000000..9ca453fb --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/infrastructure_clusterx_k8s_io_v1beta1_v_sphere_vm.k @@ -0,0 +1,587 @@ +""" +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 VSphereVM: + """ + VSphereVM is the Schema for the vspherevms API + + Attributes + ---------- + apiVersion : str, default is "infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereVM", 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 : InfrastructureClusterxK8sIoV1beta1VSphereVMSpec, default is Undefined, optional + spec + status : InfrastructureClusterxK8sIoV1beta1VSphereVMStatus, default is Undefined, optional + status + """ + + + apiVersion: "infrastructure.cluster.x-k8s.io/v1beta1" = "infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereVM" = "VSphereVM" + + metadata?: v1.ObjectMeta + + spec?: InfrastructureClusterxK8sIoV1beta1VSphereVMSpec + + status?: InfrastructureClusterxK8sIoV1beta1VSphereVMStatus + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpec: + """ + VSphereVMSpec defines the desired state of VSphereVM. + + Attributes + ---------- + additionalDisksGiB : [int], default is Undefined, optional + AdditionalDisksGiB holds the sizes of additional disks of the virtual machine, in GiB Defaults to the eponymous property value in the template from which the virtual machine is cloned. + biosUUID : str, default is Undefined, optional + BiosUUID is the the VM's BIOS UUID that is assigned at runtime after the VM has been created. This field is required at runtime for other controllers that read this CRD as unstructured data. + bootstrapRef : InfrastructureClusterxK8sIoV1beta1VSphereVMSpecBootstrapRef, default is Undefined, optional + bootstrap ref + cloneMode : str, default is Undefined, optional + CloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to LinkedClone, but fails gracefully to FullClone if the source of the clone operation has no snapshots. + customVMXKeys : {str:str}, default is Undefined, optional + CustomVMXKeys is a dictionary of advanced VMX options that can be set on VM Defaults to empty map + datacenter : str, default is Undefined, optional + Datacenter is the name or inventory path of the datacenter in which the virtual machine is created/located. Defaults to * which selects the default datacenter. + datastore : str, default is Undefined, optional + Datastore is the name or inventory path of the datastore in which the virtual machine is created/located. + diskGiB : int, default is Undefined, optional + DiskGiB is the size of a virtual machine's disk, in GiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + folder : str, default is Undefined, optional + Folder is the name or inventory path of the folder in which the virtual machine is created/located. + guestSoftPowerOffTimeout : str, default is Undefined, optional + GuestSoftPowerOffTimeout sets the wait timeout for shutdown in the VM guest. The VM will be powered off forcibly after the timeout if the VM is still up and running when the PowerOffMode is set to trySoft. + This parameter only applies when the PowerOffMode is set to trySoft. + If omitted, the timeout defaults to 5 minutes. + hardwareVersion : str, default is Undefined, optional + HardwareVersion is the hardware version of the virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. Check the compatibility with the ESXi version before setting the value. + memoryMiB : int, default is Undefined, optional + MemoryMiB is the size of a virtual machine's memory, in MiB. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + network : InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetwork, default is Undefined, required + network + numCPUs : int, default is Undefined, optional + NumCPUs is the number of virtual processors in a virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + numCoresPerSocket : int, default is Undefined, optional + NumCPUs is the number of cores among which to distribute CPUs in this virtual machine. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + os : str, default is Undefined, optional + OS is the Operating System of the virtual machine Defaults to Linux + pciDevices : [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecPciDevicesItems0], default is Undefined, optional + PciDevices is the list of pci devices used by the virtual machine. + powerOffMode : str, default is "hard", optional + PowerOffMode describes the desired behavior when powering off a VM. + There are three, supported power off modes: hard, soft, and trySoft. The first mode, hard, is the equivalent of a physical system's power cord being ripped from the wall. The soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully shut down the VM. Its variant, trySoft, first attempts a graceful shutdown, and if that fails or the VM is not in a powered off state after reaching the GuestSoftPowerOffTimeout, the VM is halted. + If omitted, the mode defaults to hard. + resourcePool : str, default is Undefined, optional + ResourcePool is the name or inventory path of the resource pool in which the virtual machine is created/located. + server : str, default is Undefined, optional + Server is the IP address or FQDN of the vSphere server on which the virtual machine is created/located. + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which to create a linked clone. This field is ignored if LinkedClone is not enabled. Defaults to the source's current snapshot. + storagePolicyName : str, default is Undefined, optional + StoragePolicyName of the storage policy to use with this Virtual Machine + tagIDs : [str], default is Undefined, optional + TagIDs is an optional set of tags to add to an instance. Specified tagIDs must use URN-notation instead of display names. + template : str, default is Undefined, required + Template is the name or inventory path of the template used to clone the virtual machine. + thumbprint : str, default is Undefined, optional + Thumbprint is the colon-separated SHA-1 checksum of the given vCenter server's host certificate When this is set to empty, this VirtualMachine would be created without TLS certificate validation of the communication between Cluster API Provider vSphere and the VMware vCenter server. + """ + + + additionalDisksGiB?: [int] + + biosUUID?: str + + bootstrapRef?: InfrastructureClusterxK8sIoV1beta1VSphereVMSpecBootstrapRef + + cloneMode?: str + + customVMXKeys?: {str:str} + + datacenter?: str + + datastore?: str + + diskGiB?: int + + folder?: str + + guestSoftPowerOffTimeout?: str + + hardwareVersion?: str + + memoryMiB?: int + + network: InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetwork + + numCPUs?: int + + numCoresPerSocket?: int + + os?: str + + pciDevices?: [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecPciDevicesItems0] + + powerOffMode?: "hard" | "soft" | "trySoft" = "hard" + + resourcePool?: str + + server?: str + + snapshot?: str + + storagePolicyName?: str + + tagIDs?: [str] + + template: str + + thumbprint?: str + + + check: + len(template) >= 1 + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecBootstrapRef: + """ + BootstrapRef is a reference to a bootstrap provider-specific resource that holds configuration details. This field is optional in case no bootstrap data is required to create a VM. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + fieldPath : str, default is Undefined, optional + If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + kind : str, default is Undefined, optional + Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + namespace : str, default is Undefined, optional + Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + resourceVersion : str, default is Undefined, optional + Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + uid : str, default is Undefined, optional + UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + """ + + + apiVersion?: str + + fieldPath?: str + + kind?: str + + name?: str + + namespace?: str + + resourceVersion?: str + + uid?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetwork: + """ + Network is the network configuration for this machine's VM. + + Attributes + ---------- + devices : [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0], default is Undefined, required + Devices is the list of network devices used by the virtual machine. TODO(akutz) Make sure at least one network matches the ClusterSpec.CloudProviderConfiguration.Network.Name + preferredAPIServerCidr : str, default is Undefined, optional + PreferredAPIServeCIDR is the preferred CIDR for the Kubernetes API server endpoint on this machine + routes : [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkRoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the virtual machine. + """ + + + devices: [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0] + + preferredAPIServerCidr?: str + + routes?: [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkRoutesItems0] + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0: + """ + NetworkDeviceSpec defines the network configuration for a virtual machine's network device. + + Attributes + ---------- + addressesFromPools : [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0AddressesFromPoolsItems0], default is Undefined, optional + AddressesFromPools is a list of IPAddressPools that should be assigned to IPAddressClaims. The machine's cloud-init metadata will be populated with IPAddresses fulfilled by an IPAM provider. + deviceName : str, default is Undefined, optional + DeviceName may be used to explicitly assign a name to the network device as it exists in the guest operating system. + dhcp4 : bool, default is Undefined, optional + DHCP4 is a flag that indicates whether or not to use DHCP for IPv4 on this device. If true then IPAddrs should not contain any IPv4 addresses. + dhcp4Overrides : InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0Dhcp4Overrides, default is Undefined, optional + dhcp4 overrides + dhcp6 : bool, default is Undefined, optional + DHCP6 is a flag that indicates whether or not to use DHCP for IPv6 on this device. If true then IPAddrs should not contain any IPv6 addresses. + dhcp6Overrides : InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0Dhcp6Overrides, default is Undefined, optional + dhcp6 overrides + gateway4 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. Required when DHCP4 is false. + gateway6 : str, default is Undefined, optional + Gateway4 is the IPv4 gateway used by this device. + ipAddrs : [str], default is Undefined, optional + IPAddrs is a list of one or more IPv4 and/or IPv6 addresses to assign to this device. IP addresses must also specify the segment length in CIDR notation. Required when DHCP4 and DHCP6 are both false. + macAddr : str, default is Undefined, optional + MACAddr is the MAC address used by this device. It is generally a good idea to omit this field and allow a MAC address to be generated. Please note that this value must use the VMware OUI to work with the in-tree vSphere cloud provider. + mtu : int, default is Undefined, optional + MTU is the device’s Maximum Transmission Unit size in bytes. + nameservers : [str], default is Undefined, optional + Nameservers is a list of IPv4 and/or IPv6 addresses used as DNS nameservers. Please note that Linux allows only three nameservers (https://linux.die.net/man/5/resolv.conf). + networkName : str, default is Undefined, required + NetworkName is the name of the vSphere network to which the device will be connected. + routes : [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0RoutesItems0], default is Undefined, optional + Routes is a list of optional, static routes applied to the device. + searchDomains : [str], default is Undefined, optional + SearchDomains is a list of search domains used when resolving IP addresses with DNS. + """ + + + addressesFromPools?: [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0AddressesFromPoolsItems0] + + deviceName?: str + + dhcp4?: bool + + dhcp4Overrides?: InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0Dhcp4Overrides + + dhcp6?: bool + + dhcp6Overrides?: InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0Dhcp6Overrides + + gateway4?: str + + gateway6?: str + + ipAddrs?: [str] + + macAddr?: str + + mtu?: int + + nameservers?: [str] + + networkName: str + + routes?: [InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0RoutesItems0] + + searchDomains?: [str] + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0AddressesFromPoolsItems0: + """ + TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace. + + Attributes + ---------- + apiGroup : str, default is Undefined, optional + APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + kind : str, default is Undefined, required + Kind is the type of resource being referenced + name : str, default is Undefined, required + Name is the name of resource being referenced + """ + + + apiGroup?: str + + kind: str + + name: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0Dhcp4Overrides: + """ + DHCP4Overrides allows for the control over several DHCP behaviors. Overrides will only be applied when the corresponding DHCP flag is set. Only configured values will be sent, omitted values will default to distribution defaults. Dependent on support in the network stack for your distribution. For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides) + + Attributes + ---------- + hostname : str, default is Undefined, optional + Hostname is the name which will be sent to the DHCP server instead of the machine's hostname. + routeMetric : int, default is Undefined, optional + RouteMetric is used to prioritize routes for devices. A lower metric for an interface will have a higher priority. + sendHostname : bool, default is Undefined, optional + SendHostname when `true`, the hostname of the machine will be sent to the DHCP server. + useDNS : bool, default is Undefined, optional + UseDNS when `true`, the DNS servers in the DHCP server will be used and take precedence. + useDomains : str, default is Undefined, optional + UseDomains can take the values `true`, `false`, or `route`. When `true`, the domain name from the DHCP server will be used as the DNS search domain for this device. When `route`, the domain name from the DHCP response will be used for routing DNS only, not for searching. + useHostname : bool, default is Undefined, optional + UseHostname when `true`, the hostname from the DHCP server will be set as the transient hostname of the machine. + useMTU : bool, default is Undefined, optional + UseMTU when `true`, the MTU from the DHCP server will be set as the MTU of the device. + useNTP : bool, default is Undefined, optional + UseNTP when `true`, the NTP servers from the DHCP server will be used by systemd-timesyncd and take precedence. + useRoutes : str, default is Undefined, optional + UseRoutes when `true`, the routes from the DHCP server will be installed in the routing table. + """ + + + hostname?: str + + routeMetric?: int + + sendHostname?: bool + + useDNS?: bool + + useDomains?: str + + useHostname?: bool + + useMTU?: bool + + useNTP?: bool + + useRoutes?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0Dhcp6Overrides: + """ + DHCP6Overrides allows for the control over several DHCP behaviors. Overrides will only be applied when the corresponding DHCP flag is set. Only configured values will be sent, omitted values will default to distribution defaults. Dependent on support in the network stack for your distribution. For more information see the netplan reference (https://netplan.io/reference#dhcp-overrides) + + Attributes + ---------- + hostname : str, default is Undefined, optional + Hostname is the name which will be sent to the DHCP server instead of the machine's hostname. + routeMetric : int, default is Undefined, optional + RouteMetric is used to prioritize routes for devices. A lower metric for an interface will have a higher priority. + sendHostname : bool, default is Undefined, optional + SendHostname when `true`, the hostname of the machine will be sent to the DHCP server. + useDNS : bool, default is Undefined, optional + UseDNS when `true`, the DNS servers in the DHCP server will be used and take precedence. + useDomains : str, default is Undefined, optional + UseDomains can take the values `true`, `false`, or `route`. When `true`, the domain name from the DHCP server will be used as the DNS search domain for this device. When `route`, the domain name from the DHCP response will be used for routing DNS only, not for searching. + useHostname : bool, default is Undefined, optional + UseHostname when `true`, the hostname from the DHCP server will be set as the transient hostname of the machine. + useMTU : bool, default is Undefined, optional + UseMTU when `true`, the MTU from the DHCP server will be set as the MTU of the device. + useNTP : bool, default is Undefined, optional + UseNTP when `true`, the NTP servers from the DHCP server will be used by systemd-timesyncd and take precedence. + useRoutes : str, default is Undefined, optional + UseRoutes when `true`, the routes from the DHCP server will be installed in the routing table. + """ + + + hostname?: str + + routeMetric?: int + + sendHostname?: bool + + useDNS?: bool + + useDomains?: str + + useHostname?: bool + + useMTU?: bool + + useNTP?: bool + + useRoutes?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkDevicesItems0RoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecNetworkRoutesItems0: + """ + NetworkRouteSpec defines a static network route. + + Attributes + ---------- + metric : int, default is Undefined, required + Metric is the weight/priority of the route. + to : str, default is Undefined, required + To is an IPv4 or IPv6 address. + via : str, default is Undefined, required + Via is an IPv4 or IPv6 address. + """ + + + metric: int + + to: str + + via: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMSpecPciDevicesItems0: + """ + PCIDeviceSpec defines virtual machine's PCI configuration + + Attributes + ---------- + deviceId : int, default is Undefined, optional + DeviceID is the device ID of a virtual machine's PCI, in integer. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + vendorId : int, default is Undefined, optional + VendorId is the vendor ID of a virtual machine's PCI, in integer. Defaults to the eponymous property value in the template from which the virtual machine is cloned. + """ + + + deviceId?: int + + vendorId?: int + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMStatus: + """ + VSphereVMStatus defines the observed state of VSphereVM + + Attributes + ---------- + addresses : [str], default is Undefined, optional + Addresses is a list of the VM's IP addresses. This field is required at runtime for other controllers that read this CRD as unstructured data. + cloneMode : str, default is Undefined, optional + CloneMode is the type of clone operation used to clone this VM. Since LinkedMode is the default but fails gracefully if the source of the clone has no snapshots, this field may be used to determine the actual type of clone operation used to create this VM. + conditions : [InfrastructureClusterxK8sIoV1beta1VSphereVMStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereVM. + failureMessage : str, default is Undefined, optional + FailureMessage will be set in the event that there is a terminal problem reconciling the vspherevm and will contain a more verbose string suitable for logging and human consumption. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the vm. + Any transient errors that occur during the reconciliation of vspherevms can be added as events to the vspherevm object and/or logged in the controller's output. + failureReason : str, default is Undefined, optional + FailureReason will be set in the event that there is a terminal problem reconciling the vspherevm and will contain a succinct value suitable for vm interpretation. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the vm. + Any transient errors that occur during the reconciliation of vspherevms can be added as events to the vspherevm object and/or logged in the controller's output. + host : str, default is Undefined, optional + Host describes the hostname or IP address of the infrastructure host that the VSphereVM is residing on. + moduleUUID : str, default is Undefined, optional + ModuleUUID is the unique identifier for the vCenter cluster module construct which is used to configure anti-affinity. Objects with the same ModuleUUID will be anti-affined, meaning that the vCenter DRS will best effort schedule the VMs on separate hosts. + network : [InfrastructureClusterxK8sIoV1beta1VSphereVMStatusNetworkItems0], default is Undefined, optional + Network returns the network status for each of the machine's configured network interfaces. + ready : bool, default is Undefined, optional + Ready is true when the provider resource is ready. This field is required at runtime for other controllers that read this CRD as unstructured data. + retryAfter : str, default is Undefined, optional + RetryAfter tracks the time we can retry queueing a task + snapshot : str, default is Undefined, optional + Snapshot is the name of the snapshot from which the VM was cloned if LinkedMode is enabled. + taskRef : str, default is Undefined, optional + TaskRef is a managed object reference to a Task related to the machine. This value is set automatically at runtime and should not be set or modified by users. + vmRef : str, default is Undefined, optional + VMRef is the the VM's Managed Object Reference on vSphere. It can be used by consumers to programatically get this VM representation on vSphere in case of the need to retrieve informations. This field is set once the machine is created and should not be changed + """ + + + addresses?: [str] + + cloneMode?: str + + conditions?: [InfrastructureClusterxK8sIoV1beta1VSphereVMStatusConditionsItems0] + + failureMessage?: str + + failureReason?: str + + host?: str + + moduleUUID?: str + + network?: [InfrastructureClusterxK8sIoV1beta1VSphereVMStatusNetworkItems0] + + ready?: bool + + retryAfter?: str + + snapshot?: str + + taskRef?: str + + vmRef?: str + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, required + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema InfrastructureClusterxK8sIoV1beta1VSphereVMStatusNetworkItems0: + """ + NetworkStatus provides information about one of a VM's networks. + + Attributes + ---------- + connected : bool, default is Undefined, optional + Connected is a flag that indicates whether this network is currently connected to the VM. + ipAddrs : [str], default is Undefined, optional + IPAddrs is one or more IP addresses reported by vm-tools. + macAddr : str, default is Undefined, required + MACAddr is the MAC address of the network device. + networkName : str, default is Undefined, optional + NetworkName is the name of the network. + """ + + + connected?: bool + + ipAddrs?: [str] + + macAddr: str + + networkName?: str + + diff --git a/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_provider_service_account.k b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_provider_service_account.k new file mode 100644 index 00000000..97cf106d --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_provider_service_account.k @@ -0,0 +1,127 @@ +""" +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 ProviderServiceAccount: + """ + ProviderServiceAccount is the schema for the ProviderServiceAccount API. + + Attributes + ---------- + apiVersion : str, default is "vmware.infrastructure.cluster.x-k8s.io/v1beta1", 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 "ProviderServiceAccount", 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 : VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpec, default is Undefined, optional + spec + """ + + + apiVersion: "vmware.infrastructure.cluster.x-k8s.io/v1beta1" = "vmware.infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "ProviderServiceAccount" = "ProviderServiceAccount" + + metadata?: v1.ObjectMeta + + spec?: VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpec + + +schema VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpec: + """ + ProviderServiceAccountSpec defines the desired state of ProviderServiceAccount. + + Attributes + ---------- + ref : VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpecRef, default is Undefined, required + ref + rules : [VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpecRulesItems0], default is Undefined, required + Rules specifies the privileges that need to be granted to the service account. + targetNamespace : str, default is Undefined, required + TargetNamespace is the namespace in the target cluster where the secret containing the generated service account token needs to be created. + targetSecretName : str, default is Undefined, required + TargetSecretName is the name of the secret in the target cluster that contains the generated service account token. + """ + + + ref: VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpecRef + + rules: [VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpecRulesItems0] + + targetNamespace: str + + targetSecretName: str + + +schema VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpecRef: + """ + Ref specifies the reference to the VSphereCluster for which the ProviderServiceAccount needs to be realized. + + Attributes + ---------- + apiVersion : str, default is Undefined, optional + API version of the referent. + fieldPath : str, default is Undefined, optional + If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + kind : str, default is Undefined, optional + Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + name : str, default is Undefined, optional + Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + namespace : str, default is Undefined, optional + Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + resourceVersion : str, default is Undefined, optional + Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + uid : str, default is Undefined, optional + UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + """ + + + apiVersion?: str + + fieldPath?: str + + kind?: str + + name?: str + + namespace?: str + + resourceVersion?: str + + uid?: str + + +schema VmwareInfrastructureClusterxK8sIoV1beta1ProviderServiceAccountSpecRulesItems0: + """ + PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to. + + Attributes + ---------- + apiGroups : [str], default is Undefined, optional + APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. "" represents the core API group and "*" represents all API groups. + nonResourceURLs : [str], default is Undefined, optional + NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both. + resourceNames : [str], default is Undefined, optional + ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. + resources : [str], default is Undefined, optional + Resources is a list of resources this rule applies to. '*' represents all resources. + verbs : [str], default is Undefined, required + Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs. + """ + + + apiGroups?: [str] + + nonResourceURLs?: [str] + + resourceNames?: [str] + + resources?: [str] + + verbs: [str] + + diff --git a/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster.k b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster.k new file mode 100644 index 00000000..04d01380 --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster.k @@ -0,0 +1,147 @@ +""" +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 VSphereCluster: + """ + VSphereCluster is the Schema for the VSphereClusters API + + Attributes + ---------- + apiVersion : str, default is "vmware.infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereCluster", 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 : VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterSpec, default is Undefined, optional + spec + status : VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmware.infrastructure.cluster.x-k8s.io/v1beta1" = "vmware.infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereCluster" = "VSphereCluster" + + metadata?: v1.ObjectMeta + + spec?: VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterSpec + + status?: VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatus + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterSpec: + """ + VSphereClusterSpec defines the desired state of VSphereCluster + + Attributes + ---------- + controlPlaneEndpoint : VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterSpecControlPlaneEndpoint, default is Undefined, required + control plane endpoint + """ + + + controlPlaneEndpoint: VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterSpecControlPlaneEndpoint + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterSpecControlPlaneEndpoint: + """ + APIEndpoint represents a reachable Kubernetes API endpoint. + + Attributes + ---------- + host : str, default is Undefined, required + The hostname on which the API server is serving. + port : int, default is Undefined, required + The port on which the API server is serving. + """ + + + host: str + + port: int + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatus: + """ + VSphereClusterStatus defines the observed state of VSphereClusterSpec + + Attributes + ---------- + conditions : [VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereCluster. + failureDomains : {str:VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatusFailureDomainsAnon}, default is Undefined, optional + FailureDomains is a list of failure domain objects synced from the infrastructure provider. + ready : bool, default is Undefined, optional + Ready indicates the infrastructure required to deploy this cluster is ready. + resourcePolicyName : str, default is Undefined, optional + ResourcePolicyName is the name of the VirtualMachineSetResourcePolicy for the cluster, if one exists + """ + + + conditions?: [VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatusConditionsItems0] + + failureDomains?: {str:VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatusFailureDomainsAnon} + + ready?: bool + + resourcePolicyName?: str + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, required + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterStatusFailureDomainsAnon: + """ + FailureDomainSpec is the Schema for Cluster API failure domains. It allows controllers to understand how many failure domains a cluster can optionally span across. + + Attributes + ---------- + attributes : {str:str}, default is Undefined, optional + Attributes is a free form map of attributes an infrastructure provider might use or require. + controlPlane : bool, default is Undefined, optional + ControlPlane determines if this failure domain is suitable for use by control plane machines. + """ + + + attributes?: {str:str} + + controlPlane?: bool + + diff --git a/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_template.k b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_template.k new file mode 100644 index 00000000..1ed610a7 --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_cluster_template.k @@ -0,0 +1,93 @@ +""" +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 VSphereClusterTemplate: + """ + VSphereClusterTemplate is the Schema for the vsphereclustertemplates API + + Attributes + ---------- + apiVersion : str, default is "vmware.infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereClusterTemplate", 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 : VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpec, default is Undefined, optional + spec + """ + + + apiVersion: "vmware.infrastructure.cluster.x-k8s.io/v1beta1" = "vmware.infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereClusterTemplate" = "VSphereClusterTemplate" + + metadata?: v1.ObjectMeta + + spec?: VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpec + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpec: + """ + VSphereClusterTemplateSpec defines the desired state of VSphereClusterTemplate + + Attributes + ---------- + template : VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplate, default is Undefined, required + template + """ + + + template: VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplate + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplate: + """ + vmware infrastructure clusterx k8s io v1beta1 v sphere cluster template spec template + + Attributes + ---------- + spec : VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpec, default is Undefined, required + spec + """ + + + spec: VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpec + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpec: + """ + VSphereClusterSpec defines the desired state of VSphereCluster + + Attributes + ---------- + controlPlaneEndpoint : VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint, default is Undefined, required + control plane endpoint + """ + + + controlPlaneEndpoint: VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereClusterTemplateSpecTemplateSpecControlPlaneEndpoint: + """ + APIEndpoint represents a reachable Kubernetes API endpoint. + + Attributes + ---------- + host : str, default is Undefined, required + The hostname on which the API server is serving. + port : int, default is Undefined, required + The port on which the API server is serving. + """ + + + host: str + + port: int + + diff --git a/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine.k b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine.k new file mode 100644 index 00000000..e39213fd --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine.k @@ -0,0 +1,200 @@ +""" +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 VSphereMachine: + """ + VSphereMachine is the Schema for the vspheremachines API + + Attributes + ---------- + apiVersion : str, default is "vmware.infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereMachine", 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 : VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineSpec, default is Undefined, optional + spec + status : VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatus, default is Undefined, optional + status + """ + + + apiVersion: "vmware.infrastructure.cluster.x-k8s.io/v1beta1" = "vmware.infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereMachine" = "VSphereMachine" + + metadata?: v1.ObjectMeta + + spec?: VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineSpec + + status?: VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatus + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineSpec: + """ + VSphereMachineSpec defines the desired state of VSphereMachine + + Attributes + ---------- + className : str, default is Undefined, required + ClassName is the name of the class used when specifying the underlying virtual machine + failureDomain : str, default is Undefined, optional + FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + imageName : str, default is Undefined, required + ImageName is the name of the base image used when specifying the underlying virtual machine + powerOffMode : str, default is "hard", optional + PowerOffMode describes the desired behavior when powering off a VM. + There are three, supported power off modes: hard, soft, and trySoft. The first mode, hard, is the equivalent of a physical system's power cord being ripped from the wall. The soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully shut down the VM. Its variant, trySoft, first attempts a graceful shutdown, and if that fails or the VM is not in a powered off state after reaching 5 minutes timeout, the VM is halted. + If omitted, the mode defaults to hard. + providerID : str, default is Undefined, optional + ProviderID is the virtual machine's BIOS UUID formated as vsphere://12345678-1234-1234-1234-123456789abc. This is required at runtime by CAPI. Do not remove this field. + storageClass : str, default is Undefined, optional + StorageClass is the name of the storage class used when specifying the underlying virtual machine. + volumes : [VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineSpecVolumesItems0], default is Undefined, optional + Volumes is the set of PVCs to be created and attached to the VSphereMachine + """ + + + className: str + + failureDomain?: str + + imageName: str + + powerOffMode?: "hard" | "soft" | "trySoft" = "hard" + + providerID?: str + + storageClass?: str + + volumes?: [VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineSpecVolumesItems0] + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineSpecVolumesItems0: + """ + VSphereMachineVolume defines a PVC attachment + + Attributes + ---------- + capacity : {str:int | str}, default is Undefined, required + Capacity is the PVC capacity + name : str, default is Undefined, required + Name is suffix used to name this PVC as: VSphereMachine.Name + "-" + Name + storageClass : str, default is Undefined, optional + StorageClass defaults to VSphereMachineSpec.StorageClass + """ + + + capacity: {str:int | str} + + name: str + + storageClass?: str + + + check: + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatus: + """ + VSphereMachineStatus defines the observed state of VSphereMachine + + Attributes + ---------- + addresses : [VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatusAddressesItems0], default is Undefined, optional + Addresses contains the instance associated addresses. + conditions : [VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatusConditionsItems0], default is Undefined, optional + Conditions defines current service state of the VSphereMachine. + failureMessage : str, default is Undefined, optional + FailureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. + Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + failureReason : str, default is Undefined, optional + FailureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. + This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. + Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + ready : bool, default is Undefined, optional + Ready is true when the provider resource is ready. This is required at runtime by CAPI. Do not remove this field. + vmID : str, default is Undefined, optional + ID is used to identify the virtual machine. + vmIp : str, default is Undefined, optional + IPAddr is the IP address used to access the virtual machine. + vmstatus : str, default is Undefined, optional + VMStatus is used to identify the virtual machine status. + """ + + + addresses?: [VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatusAddressesItems0] + + conditions?: [VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatusConditionsItems0] + + failureMessage?: str + + failureReason?: str + + ready?: bool + + vmID?: str + + vmIp?: str + + vmstatus?: str + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatusAddressesItems0: + """ + NodeAddress contains information for the node's address. + + Attributes + ---------- + address : str, default is Undefined, required + The node address. + $type : str, default is Undefined, required + Node address type, one of Hostname, ExternalIP or InternalIP. + """ + + + address: str + + $type: str + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineStatusConditionsItems0: + """ + Condition defines an observation of a Cluster API resource operational state. + + Attributes + ---------- + lastTransitionTime : str, default is Undefined, required + 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 + A human readable message indicating details about the transition. This field may be empty. + reason : str, default is Undefined, optional + 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 not 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 + + diff --git a/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine_template.k b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine_template.k new file mode 100644 index 00000000..57451e88 --- /dev/null +++ b/cluster-api-provider-vsphere/v1beta1/vmware_infrastructure_clusterx_k8s_io_v1beta1_v_sphere_machine_template.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 VSphereMachineTemplate: + """ + VSphereMachineTemplate is the Schema for the vspheremachinetemplates API + + Attributes + ---------- + apiVersion : str, default is "vmware.infrastructure.cluster.x-k8s.io/v1beta1", 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 "VSphereMachineTemplate", 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 : VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpec, default is Undefined, optional + spec + """ + + + apiVersion: "vmware.infrastructure.cluster.x-k8s.io/v1beta1" = "vmware.infrastructure.cluster.x-k8s.io/v1beta1" + + kind: "VSphereMachineTemplate" = "VSphereMachineTemplate" + + metadata?: v1.ObjectMeta + + spec?: VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpec + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpec: + """ + VSphereMachineTemplateSpec defines the desired state of VSphereMachineTemplate + + Attributes + ---------- + template : VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplate, default is Undefined, required + template + """ + + + template: VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplate + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplate: + """ + VSphereMachineTemplateResource describes the data needed to create a VSphereMachine from a template + + Attributes + ---------- + spec : VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpec, default is Undefined, required + spec + """ + + + spec: VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpec + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpec: + """ + Spec is the specification of the desired behavior of the machine. + + Attributes + ---------- + className : str, default is Undefined, required + ClassName is the name of the class used when specifying the underlying virtual machine + failureDomain : str, default is Undefined, optional + FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + imageName : str, default is Undefined, required + ImageName is the name of the base image used when specifying the underlying virtual machine + powerOffMode : str, default is "hard", optional + PowerOffMode describes the desired behavior when powering off a VM. + There are three, supported power off modes: hard, soft, and trySoft. The first mode, hard, is the equivalent of a physical system's power cord being ripped from the wall. The soft mode requires the VM's guest to have VM Tools installed and attempts to gracefully shut down the VM. Its variant, trySoft, first attempts a graceful shutdown, and if that fails or the VM is not in a powered off state after reaching 5 minutes timeout, the VM is halted. + If omitted, the mode defaults to hard. + providerID : str, default is Undefined, optional + ProviderID is the virtual machine's BIOS UUID formated as vsphere://12345678-1234-1234-1234-123456789abc. This is required at runtime by CAPI. Do not remove this field. + storageClass : str, default is Undefined, optional + StorageClass is the name of the storage class used when specifying the underlying virtual machine. + volumes : [VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecVolumesItems0], default is Undefined, optional + Volumes is the set of PVCs to be created and attached to the VSphereMachine + """ + + + className: str + + failureDomain?: str + + imageName: str + + powerOffMode?: "hard" | "soft" | "trySoft" = "hard" + + providerID?: str + + storageClass?: str + + volumes?: [VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecVolumesItems0] + + +schema VmwareInfrastructureClusterxK8sIoV1beta1VSphereMachineTemplateSpecTemplateSpecVolumesItems0: + """ + VSphereMachineVolume defines a PVC attachment + + Attributes + ---------- + capacity : {str:int | str}, default is Undefined, required + Capacity is the PVC capacity + name : str, default is Undefined, required + Name is suffix used to name this PVC as: VSphereMachine.Name + "-" + Name + storageClass : str, default is Undefined, optional + StorageClass defaults to VSphereMachineSpec.StorageClass + """ + + + capacity: {str:int | str} + + name: str + + storageClass?: str + + + check: + + diff --git a/scripts/crd_to_kcl.sh b/scripts/crd_to_kcl.sh new file mode 100755 index 00000000..25b5c068 --- /dev/null +++ b/scripts/crd_to_kcl.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +REPO_URL="$1" +REPO_URL_SUFFIX=$(echo $REPO_URL | sed -n 's|.*github.com/||p') +OWNER=$(echo $REPO_URL_SUFFIX | cut -d '/' -f 1) +REPO=$(echo $REPO_URL_SUFFIX | cut -d '/' -f 2) + +if [ -z "$OWNER" ] || [ -z "$REPO" ]; then + echo "Invalid GitHub repository URL." + exit 1 +fi +# Init the kcl module +kcl mod init $REPO +cd $REPO +# Get the Kubernetes CRD files +wget "https://doc.crds.dev/raw/github.com/$OWNER/$REPO" +mkdir -p crds +mv $REPO crds/$REPO.yaml +# Import Kubernetes CRD to KCL files +kcl import -m crd -s ./crds/** +rm -rf main.k +# Add the k8s dependency +kcl mod add k8s +rm -rf models/k8s + +models_dir="models" +regex="^(.*)_(v[0-9]+(alpha[0-9]+|beta[0-9]+)?)(.*)$" + +if [ ! -d "$models_dir" ]; then + echo "The directory '$models_dir' does not exist." + exit 1 +fi + +cd "$models_dir" + +for file in *; do + if [ -f "$file" ]; then + if [[ $file =~ $regex ]]; then + version="${BASH_REMATCH[2]}" + mkdir -p "../$version" + mv "$file" "../$version/" + else + echo "File '$file' does not contain a version number." + fi + fi +done + +cd - +echo "Files have been grouped by version." +rm -rf models +rm -rf crds +# Check KCL runs +for version_dir in *; do + if [ -d "$version_dir" ]; then + echo "Contents of '$version_dir':" + kcl run ./$version_dir + fi +done + +echo "Files have been grouped and listed by version."