apiVersion: v1
kind: Namespace
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-system
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cert-manager.io/inject-ca-from: capo-system/capo-serving-cert
    controller-gen.kubebuilder.io/version: v0.10.0
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
    cluster.x-k8s.io/v1alpha3: v1alpha3
    cluster.x-k8s.io/v1beta1: v1alpha4_v1alpha5_v1alpha6
  name: openstackclusters.infrastructure.cluster.x-k8s.io
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        caBundle: Cg==
        service:
          name: capo-webhook-service
          namespace: capo-system
          path: /convert
      conversionReviewVersions:
      - v1
      - v1beta1
  group: infrastructure.cluster.x-k8s.io
  names:
    categories:
    - cluster-api
    kind: OpenStackCluster
    listKind: OpenStackClusterList
    plural: openstackclusters
    shortNames:
    - osc
    singular: openstackcluster
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Cluster to which this OpenStackCluster belongs
      jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
      name: Cluster
      type: string
    - description: Cluster infrastructure is ready for OpenStack instances
      jsonPath: .status.ready
      name: Ready
      type: string
    - description: Network the cluster is using
      jsonPath: .status.network.id
      name: Network
      type: string
    - description: Subnet the cluster is using
      jsonPath: .status.network.subnet.id
      name: Subnet
      type: string
    - description: API Endpoint
      jsonPath: .spec.controlPlaneEndpoint.host
      name: Endpoint
      priority: 1
      type: string
    - description: Bastion floating IP
      jsonPath: .status.bastion.floatingIP
      name: Bastion
      type: string
    - description: Time duration since creation of OpenStackCluster
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha3
    schema:
      openAPIV3Schema:
        description: OpenStackCluster is the Schema for the openstackclusters 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: OpenStackClusterSpec defines the desired state of OpenStackCluster.
            properties:
              apiServerFloatingIP:
                description: APIServerFloatingIP is the floatingIP which will be associated
                  to the APIServer. The floatingIP will be created if it not already
                  exists.
                type: string
              apiServerLoadBalancerAdditionalPorts:
                description: APIServerLoadBalancerAdditionalPorts adds additional
                  ports to the APIServerLoadBalancer
                items:
                  type: integer
                type: array
              apiServerPort:
                description: APIServerPort is the port on which the listener on the
                  APIServer will be created
                type: integer
              bastion:
                description: "Bastion is the OpenStack instance to login the nodes
                  \n As a rolling update is not ideal during a bastion host session,
                  we prevent changes to a running bastion configuration. Set `enabled:
                  false` to make changes."
                properties:
                  availabilityZone:
                    type: string
                  enabled:
                    type: boolean
                  instance:
                    description: Instance for the bastion itself
                    properties:
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      cloudsSecret:
                        description: The name of the secret containing the openstack
                          credentials
                        properties:
                          name:
                            description: name is unique within a namespace to reference
                              a secret resource.
                            type: string
                          namespace:
                            description: namespace defines the space within which
                              the secret name must be unique.
                            type: string
                        type: object
                        x-kubernetes-map-type: atomic
                      configDrive:
                        description: Config Drive support
                        type: boolean
                      flavor:
                        description: The flavor reference for the flavor for your
                          server instance.
                        type: string
                      floatingIP:
                        description: The floatingIP which will be associated to the
                          machine, only used for master. The floatingIP should have
                          been created and haven't been associated.
                        type: string
                      image:
                        description: The name of the image to use for your server
                          instance. If the RootVolume is specified, this will be ignored
                          and use rootVolume directly.
                        type: string
                      instanceID:
                        description: InstanceID is the OpenStack instance ID for this
                          machine.
                        type: string
                      networks:
                        description: A networks object. Required parameter when there
                          are multiple networks defined for the tenant. When you do
                          not specify the networks parameter, the server attaches
                          to the only network created for the current tenant.
                        items:
                          properties:
                            filter:
                              description: Filters for optional network query
                              properties:
                                adminStateUp:
                                  type: boolean
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                shared:
                                  type: boolean
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                status:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            fixedIp:
                              description: A fixed IPv4 address for the NIC.
                              type: string
                            subnets:
                              description: Subnet within a network to use
                              items:
                                properties:
                                  filter:
                                    description: Filters for optional network query
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      enableDhcp:
                                        type: boolean
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      networkId:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      subnetpoolId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  uuid:
                                    description: The UUID of the network. Required
                                      if you omit the port attribute.
                                    type: string
                                type: object
                              type: array
                            uuid:
                              description: The UUID of the network. Required if you
                                omit the port attribute.
                              type: string
                          type: object
                        type: array
                      providerID:
                        description: ProviderID is the unique identifier as specified
                          by the cloud provider.
                        type: string
                      rootVolume:
                        description: The volume metadata to boot from
                        properties:
                          deviceType:
                            type: string
                          diskSize:
                            type: integer
                          sourceType:
                            type: string
                          sourceUUID:
                            type: string
                        type: object
                      securityGroups:
                        description: The names of the security groups to assign to
                          the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      serverGroupID:
                        description: The server group to assign the machine to
                        type: string
                      serverMetadata:
                        additionalProperties:
                          type: string
                        description: Metadata mapping. Allows you to create a map
                          of key value pairs to add to the server instance.
                        type: object
                      sshKeyName:
                        description: The ssh key to inject in the instance
                        type: string
                      subnet:
                        description: UUID, IP address of a port from this subnet will
                          be marked as AccessIPv4 on the created compute instance
                        type: string
                      tags:
                        description: Machine tags Requires Nova api 2.52 minimum!
                        items:
                          type: string
                        type: array
                      trunk:
                        description: Whether the server instance is created on a trunk
                          port or not.
                        type: boolean
                      userDataSecret:
                        description: The name of the secret containing the user data
                          (startup script in most cases)
                        properties:
                          name:
                            description: name is unique within a namespace to reference
                              a secret resource.
                            type: string
                          namespace:
                            description: namespace defines the space within which
                              the secret name must be unique.
                            type: string
                        type: object
                        x-kubernetes-map-type: atomic
                    required:
                    - flavor
                    type: object
                type: object
              cloudName:
                description: The name of the cloud to use from the clouds secret
                type: string
              cloudsSecret:
                description: The name of the secret containing the openstack credentials
                properties:
                  name:
                    description: name is unique within a namespace to reference a
                      secret resource.
                    type: string
                  namespace:
                    description: namespace defines the space within which the secret
                      name must be unique.
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              controlPlaneAvailabilityZones:
                description: ControlPlaneAvailabilityZones is the az to deploy control
                  plane to
                items:
                  type: string
                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
              disablePortSecurity:
                description: DisablePortSecurity disables the port security of the
                  network created for the Kubernetes cluster, which also disables
                  SecurityGroups
                type: boolean
              dnsNameservers:
                description: DNSNameservers is the list of nameservers for OpenStack
                  Subnet being created. Set this value when you need create a new
                  network/subnet while the access through DNS is required.
                items:
                  type: string
                type: array
              externalNetworkId:
                description: ExternalNetworkID is the ID of an external OpenStack
                  Network. This is necessary to get public internet to the VMs.
                type: string
              externalRouterIPs:
                description: ExternalRouterIPs is an array of externalIPs on the respective
                  subnets. This is necessary if the router needs a fixed ip in a specific
                  subnet.
                items:
                  properties:
                    fixedIP:
                      description: The FixedIP in the corresponding subnet
                      type: string
                    subnet:
                      description: The subnet in which the FixedIP is used for the
                        Gateway of this router
                      properties:
                        filter:
                          description: Filters for optional network query
                          properties:
                            cidr:
                              type: string
                            description:
                              type: string
                            enableDhcp:
                              type: boolean
                            gateway_ip:
                              type: string
                            id:
                              type: string
                            ipVersion:
                              type: integer
                            ipv6AddressMode:
                              type: string
                            ipv6RaMode:
                              type: string
                            limit:
                              type: integer
                            marker:
                              type: string
                            name:
                              type: string
                            networkId:
                              type: string
                            notTags:
                              type: string
                            notTagsAny:
                              type: string
                            projectId:
                              type: string
                            sortDir:
                              type: string
                            sortKey:
                              type: string
                            subnetpoolId:
                              type: string
                            tags:
                              type: string
                            tagsAny:
                              type: string
                            tenantId:
                              type: string
                          type: object
                        uuid:
                          description: The UUID of the network. Required if you omit
                            the port attribute.
                          type: string
                      type: object
                  required:
                  - subnet
                  type: object
                type: array
              managedAPIServerLoadBalancer:
                description: 'ManagedAPIServerLoadBalancer defines whether a LoadBalancer
                  for the APIServer should be created. If set to true the following
                  properties are mandatory: APIServerFloatingIP, APIServerPort'
                type: boolean
              managedSecurityGroups:
                description: 'ManagedSecurityGroups defines that kubernetes manages
                  the OpenStack security groups for now, that means that we''ll create
                  security group allows traffic to/from machines belonging to that
                  group based on Calico CNI plugin default network requirements: BGP
                  and IP-in-IP for master node(s) and worker node(s) respectively.
                  In the future, we could make this more flexible.'
                type: boolean
              network:
                description: If NodeCIDR cannot be set this can be used to detect
                  an existing network.
                properties:
                  adminStateUp:
                    type: boolean
                  description:
                    type: string
                  id:
                    type: string
                  limit:
                    type: integer
                  marker:
                    type: string
                  name:
                    type: string
                  notTags:
                    type: string
                  notTagsAny:
                    type: string
                  projectId:
                    type: string
                  shared:
                    type: boolean
                  sortDir:
                    type: string
                  sortKey:
                    type: string
                  status:
                    type: string
                  tags:
                    type: string
                  tagsAny:
                    type: string
                  tenantId:
                    type: string
                type: object
              nodeCidr:
                description: NodeCIDR is the OpenStack Subnet to be created. Cluster
                  actuator will create a network, a subnet with NodeCIDR, and a router
                  connected to this subnet. If you leave this empty, no network will
                  be created.
                type: string
              subnet:
                description: If NodeCIDR cannot be set this can be used to detect
                  an existing subnet.
                properties:
                  cidr:
                    type: string
                  description:
                    type: string
                  enableDhcp:
                    type: boolean
                  gateway_ip:
                    type: string
                  id:
                    type: string
                  ipVersion:
                    type: integer
                  ipv6AddressMode:
                    type: string
                  ipv6RaMode:
                    type: string
                  limit:
                    type: integer
                  marker:
                    type: string
                  name:
                    type: string
                  networkId:
                    type: string
                  notTags:
                    type: string
                  notTagsAny:
                    type: string
                  projectId:
                    type: string
                  sortDir:
                    type: string
                  sortKey:
                    type: string
                  subnetpoolId:
                    type: string
                  tags:
                    type: string
                  tagsAny:
                    type: string
                  tenantId:
                    type: string
                type: object
              tags:
                description: Tags for all resources in cluster
                items:
                  type: string
                type: array
              useOctavia:
                description: UseOctavia is weather LoadBalancer Service is Octavia
                  or not
                type: boolean
            type: object
          status:
            description: OpenStackClusterStatus defines the observed state of OpenStackCluster.
            properties:
              bastion:
                properties:
                  configDrive:
                    type: boolean
                  failureDomain:
                    type: string
                  flavor:
                    type: string
                  floatingIP:
                    type: string
                  id:
                    type: string
                  image:
                    type: string
                  ip:
                    type: string
                  metadata:
                    additionalProperties:
                      type: string
                    type: object
                  name:
                    type: string
                  networks:
                    items:
                      description: Network represents basic information about the
                        associated OpenStach Neutron Network.
                      properties:
                        apiServerLoadBalancer:
                          description: Be careful when using APIServerLoadBalancer,
                            because this field is optional and therefore not set in
                            all cases
                          properties:
                            id:
                              type: string
                            internalIP:
                              type: string
                            ip:
                              type: string
                            name:
                              type: string
                          required:
                          - id
                          - internalIP
                          - ip
                          - name
                          type: object
                        id:
                          type: string
                        name:
                          type: string
                        router:
                          description: Router represents basic information about the
                            associated OpenStack Neutron Router.
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            tags:
                              items:
                                type: string
                              type: array
                          required:
                          - id
                          - name
                          type: object
                        subnet:
                          description: Subnet represents basic information about the
                            associated OpenStack Neutron Subnet.
                          properties:
                            cidr:
                              type: string
                            id:
                              type: string
                            name:
                              type: string
                            tags:
                              items:
                                type: string
                              type: array
                          required:
                          - cidr
                          - id
                          - name
                          type: object
                        tags:
                          items:
                            type: string
                          type: array
                      required:
                      - id
                      - name
                      type: object
                    type: array
                  rootVolume:
                    properties:
                      deviceType:
                        type: string
                      diskSize:
                        type: integer
                      sourceType:
                        type: string
                      sourceUUID:
                        type: string
                    type: object
                  securigyGroups:
                    items:
                      type: string
                    type: array
                  serverGroupID:
                    type: string
                  sshKeyName:
                    type: string
                  state:
                    description: InstanceState describes the state of an OpenStack
                      instance.
                    type: string
                  subnet:
                    type: string
                  tags:
                    items:
                      type: string
                    type: array
                  trunk:
                    type: boolean
                  userData:
                    type: string
                type: object
              bastionSecurityGroup:
                description: SecurityGroup represents the basic information of the
                  associated OpenStack Neutron Security Group.
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
              controlPlaneSecurityGroup:
                description: 'ControlPlaneSecurityGroups contains all the information
                  about the OpenStack Security Group that needs to be applied to control
                  plane nodes. TODO: Maybe instead of two properties, we add a property
                  to the group?'
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
              externalNetwork:
                description: External Network contains information about the created
                  OpenStack external network.
                properties:
                  apiServerLoadBalancer:
                    description: Be careful when using APIServerLoadBalancer, because
                      this field is optional and therefore not set in all cases
                    properties:
                      id:
                        type: string
                      internalIP:
                        type: string
                      ip:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - internalIP
                    - ip
                    - name
                    type: object
                  id:
                    type: string
                  name:
                    type: string
                  router:
                    description: Router represents basic information about the associated
                      OpenStack Neutron Router.
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    - name
                    type: object
                  subnet:
                    description: Subnet represents basic information about the associated
                      OpenStack Neutron Subnet.
                    properties:
                      cidr:
                        type: string
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - cidr
                    - id
                    - name
                    type: object
                  tags:
                    items:
                      type: string
                    type: array
                required:
                - id
                - name
                type: object
              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 represent OpenStack availability zones
                type: object
              network:
                description: Network contains all information about the created OpenStack
                  Network. It includes Subnets and Router.
                properties:
                  apiServerLoadBalancer:
                    description: Be careful when using APIServerLoadBalancer, because
                      this field is optional and therefore not set in all cases
                    properties:
                      id:
                        type: string
                      internalIP:
                        type: string
                      ip:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - internalIP
                    - ip
                    - name
                    type: object
                  id:
                    type: string
                  name:
                    type: string
                  router:
                    description: Router represents basic information about the associated
                      OpenStack Neutron Router.
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    - name
                    type: object
                  subnet:
                    description: Subnet represents basic information about the associated
                      OpenStack Neutron Subnet.
                    properties:
                      cidr:
                        type: string
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - cidr
                    - id
                    - name
                    type: object
                  tags:
                    items:
                      type: string
                    type: array
                required:
                - id
                - name
                type: object
              ready:
                type: boolean
              workerSecurityGroup:
                description: WorkerSecurityGroup contains all the information about
                  the OpenStack Security Group that needs to be applied to worker
                  nodes.
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
            required:
            - ready
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: Cluster to which this OpenStackCluster belongs
      jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
      name: Cluster
      type: string
    - description: Cluster infrastructure is ready for OpenStack instances
      jsonPath: .status.ready
      name: Ready
      type: string
    - description: Network the cluster is using
      jsonPath: .status.network.id
      name: Network
      type: string
    - description: Subnet the cluster is using
      jsonPath: .status.network.subnet.id
      name: Subnet
      type: string
    - description: API Endpoint
      jsonPath: .spec.controlPlaneEndpoint.host
      name: Endpoint
      priority: 1
      type: string
    - description: Bastion address for breakglass access
      jsonPath: .status.bastion.floatingIP
      name: Bastion IP
      type: string
    - description: Time duration since creation of OpenStackCluster
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha4
    schema:
      openAPIV3Schema:
        description: OpenStackCluster is the Schema for the openstackclusters 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: OpenStackClusterSpec defines the desired state of OpenStackCluster.
            properties:
              allowAllInClusterTraffic:
                description: AllowAllInClusterTraffic is only used when managed security
                  groups are in use. If set to true, the rules for the managed security
                  groups are configured so that all ingress and egress between cluster
                  nodes is permitted, allowing CNIs other than Calico to be used.
                type: boolean
              apiServerFixedIP:
                description: APIServerFixedIP is the fixed IP which will be associated
                  with the API server. In the case where the API server has a floating
                  IP but not a managed load balancer, this field is not used. If a
                  managed load balancer is used and this field is not specified, a
                  fixed IP will be dynamically allocated for the load balancer. If
                  a managed load balancer is not used AND the API server floating
                  IP is disabled, this field MUST be specified and should correspond
                  to a pre-allocated port that holds the fixed IP to be used as a
                  VIP.
                type: string
              apiServerFloatingIP:
                description: APIServerFloatingIP is the floatingIP which will be associated
                  with the API server. The floatingIP will be created if it does not
                  already exist. If not specified, a new floatingIP is allocated.
                  This field is not used if DisableAPIServerFloatingIP is set to true.
                type: string
              apiServerLoadBalancerAdditionalPorts:
                description: APIServerLoadBalancerAdditionalPorts adds additional
                  ports to the APIServerLoadBalancer
                items:
                  type: integer
                type: array
              apiServerPort:
                description: APIServerPort is the port on which the listener on the
                  APIServer will be created
                type: integer
              bastion:
                description: "Bastion is the OpenStack instance to login the nodes
                  \n As a rolling update is not ideal during a bastion host session,
                  we prevent changes to a running bastion configuration. Set `enabled:
                  false` to make changes."
                properties:
                  availabilityZone:
                    type: string
                  enabled:
                    type: boolean
                  instance:
                    description: Instance for the bastion itself
                    properties:
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      configDrive:
                        description: Config Drive support
                        type: boolean
                      flavor:
                        description: The flavor reference for the flavor for your
                          server instance.
                        type: string
                      floatingIP:
                        description: The floatingIP which will be associated to the
                          machine, only used for master. The floatingIP should have
                          been created and haven't been associated.
                        type: string
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      image:
                        description: The name of the image to use for your server
                          instance. If the RootVolume is specified, this will be ignored
                          and use rootVolume directly.
                        type: string
                      instanceID:
                        description: InstanceID is the OpenStack instance ID for this
                          machine.
                        type: string
                      networks:
                        description: A networks object. Required parameter when there
                          are multiple networks defined for the tenant. When you do
                          not specify both networks and ports parameters, the server
                          attaches to the only network created for the current tenant.
                        items:
                          properties:
                            filter:
                              description: Filters for optional network query
                              properties:
                                adminStateUp:
                                  type: boolean
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                shared:
                                  type: boolean
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                status:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            fixedIP:
                              description: A fixed IPv4 address for the NIC.
                              type: string
                            subnets:
                              description: Subnet within a network to use
                              items:
                                properties:
                                  filter:
                                    description: Filters for optional subnet query
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      enableDhcp:
                                        type: boolean
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      networkId:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      subnetpoolId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  uuid:
                                    description: Optional UUID of the subnet. If specified
                                      this will not be validated prior to server creation.
                                      If specified, the enclosing `NetworkParam` must
                                      also be specified by UUID.
                                    type: string
                                type: object
                              type: array
                            uuid:
                              description: Optional UUID of the network. If specified
                                this will not be validated prior to server creation.
                                Required if `Subnets` specifies a subnet by UUID.
                              type: string
                          type: object
                        type: array
                      ports:
                        description: Ports to be attached to the server instance.
                          They are created if a port with the given name does not
                          already exist. When you do not specify both networks and
                          ports parameters, the server attaches to the only network
                          created for the current tenant.
                        items:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnetId:
                                    type: string
                                required:
                                - subnetId
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            networkId:
                              description: ID of the OpenStack network on which to
                                create the port. If unspecified, create the port on
                                the default cluster network.
                              type: string
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroups:
                              items:
                                type: string
                              type: array
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        type: array
                      providerID:
                        description: ProviderID is the unique identifier as specified
                          by the cloud provider.
                        type: string
                      rootVolume:
                        description: The volume metadata to boot from
                        properties:
                          deviceType:
                            type: string
                          diskSize:
                            type: integer
                          sourceType:
                            type: string
                          sourceUUID:
                            type: string
                        type: object
                      securityGroups:
                        description: The names of the security groups to assign to
                          the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      serverGroupID:
                        description: The server group to assign the machine to
                        type: string
                      serverMetadata:
                        additionalProperties:
                          type: string
                        description: Metadata mapping. Allows you to create a map
                          of key value pairs to add to the server instance.
                        type: object
                      sshKeyName:
                        description: The ssh key to inject in the instance
                        type: string
                      subnet:
                        description: UUID, IP address of a port from this subnet will
                          be marked as AccessIPv4 on the created compute instance
                        type: string
                      tags:
                        description: Machine tags Requires Nova api 2.52 minimum!
                        items:
                          type: string
                        type: array
                      trunk:
                        description: Whether the server instance is created on a trunk
                          port or not.
                        type: boolean
                    required:
                    - flavor
                    type: object
                type: object
              cloudName:
                description: The name of the cloud to use from the clouds secret
                type: string
              controlPlaneAvailabilityZones:
                description: ControlPlaneAvailabilityZones is the az to deploy control
                  plane to
                items:
                  type: string
                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
              disableAPIServerFloatingIP:
                description: DisableAPIServerFloatingIP determines whether or not
                  to attempt to attach a floating IP to the API server. This allows
                  for the creation of clusters when attaching a floating IP to the
                  API server (and hence, in many cases, exposing the API server to
                  the internet) is not possible or desirable, e.g. if using a shared
                  VLAN for communication between management and workload clusters
                  or when the management cluster is inside the project network. This
                  option requires that the API server use a VIP on the cluster network
                  so that the underlying machines can change without changing ControlPlaneEndpoint.Host.
                  When using a managed load balancer, this VIP will be managed automatically.
                  If not using a managed load balancer, cluster configuration will
                  fail without additional configuration to manage the VIP on the control
                  plane machines, which falls outside of the scope of this controller.
                type: boolean
              disablePortSecurity:
                description: DisablePortSecurity disables the port security of the
                  network created for the Kubernetes cluster, which also disables
                  SecurityGroups
                type: boolean
              dnsNameservers:
                description: DNSNameservers is the list of nameservers for OpenStack
                  Subnet being created. Set this value when you need create a new
                  network/subnet while the access through DNS is required.
                items:
                  type: string
                type: array
              externalNetworkId:
                description: ExternalNetworkID is the ID of an external OpenStack
                  Network. This is necessary to get public internet to the VMs.
                type: string
              externalRouterIPs:
                description: ExternalRouterIPs is an array of externalIPs on the respective
                  subnets. This is necessary if the router needs a fixed ip in a specific
                  subnet.
                items:
                  properties:
                    fixedIP:
                      description: The FixedIP in the corresponding subnet
                      type: string
                    subnet:
                      description: The subnet in which the FixedIP is used for the
                        Gateway of this router
                      properties:
                        filter:
                          description: Filters for optional subnet query
                          properties:
                            cidr:
                              type: string
                            description:
                              type: string
                            enableDhcp:
                              type: boolean
                            gateway_ip:
                              type: string
                            id:
                              type: string
                            ipVersion:
                              type: integer
                            ipv6AddressMode:
                              type: string
                            ipv6RaMode:
                              type: string
                            limit:
                              type: integer
                            marker:
                              type: string
                            name:
                              type: string
                            networkId:
                              type: string
                            notTags:
                              type: string
                            notTagsAny:
                              type: string
                            projectId:
                              type: string
                            sortDir:
                              type: string
                            sortKey:
                              type: string
                            subnetpoolId:
                              type: string
                            tags:
                              type: string
                            tagsAny:
                              type: string
                            tenantId:
                              type: string
                          type: object
                        uuid:
                          description: Optional UUID of the subnet. If specified this
                            will not be validated prior to server creation. If specified,
                            the enclosing `NetworkParam` must also be specified by
                            UUID.
                          type: string
                      type: object
                  required:
                  - subnet
                  type: object
                type: array
              identityRef:
                description: IdentityRef is a reference to a identity to be used when
                  reconciling this cluster
                properties:
                  kind:
                    description: Kind of the identity. Must be supported by the infrastructure
                      provider and may be either cluster or namespace-scoped.
                    minLength: 1
                    type: string
                  name:
                    description: Name of the infrastructure identity to be used. Must
                      be either a cluster-scoped resource, or namespaced-scoped resource
                      the same namespace as the resource(s) being provisioned.
                    type: string
                required:
                - kind
                - name
                type: object
              managedAPIServerLoadBalancer:
                description: ManagedAPIServerLoadBalancer defines whether a LoadBalancer
                  for the APIServer should be created.
                type: boolean
              managedSecurityGroups:
                description: ManagedSecurityGroups determines whether OpenStack security
                  groups for the cluster will be managed by the OpenStack provider
                  or whether pre-existing security groups will be specified as part
                  of the configuration. By default, the managed security groups have
                  rules that allow the Kubelet, etcd, the Kubernetes API server and
                  the Calico CNI plugin to function correctly.
                type: boolean
              network:
                description: If NodeCIDR cannot be set this can be used to detect
                  an existing network.
                properties:
                  adminStateUp:
                    type: boolean
                  description:
                    type: string
                  id:
                    type: string
                  limit:
                    type: integer
                  marker:
                    type: string
                  name:
                    type: string
                  notTags:
                    type: string
                  notTagsAny:
                    type: string
                  projectId:
                    type: string
                  shared:
                    type: boolean
                  sortDir:
                    type: string
                  sortKey:
                    type: string
                  status:
                    type: string
                  tags:
                    type: string
                  tagsAny:
                    type: string
                  tenantId:
                    type: string
                type: object
              nodeCidr:
                description: NodeCIDR is the OpenStack Subnet to be created. Cluster
                  actuator will create a network, a subnet with NodeCIDR, and a router
                  connected to this subnet. If you leave this empty, no network will
                  be created.
                type: string
              subnet:
                description: If NodeCIDR cannot be set this can be used to detect
                  an existing subnet.
                properties:
                  cidr:
                    type: string
                  description:
                    type: string
                  enableDhcp:
                    type: boolean
                  gateway_ip:
                    type: string
                  id:
                    type: string
                  ipVersion:
                    type: integer
                  ipv6AddressMode:
                    type: string
                  ipv6RaMode:
                    type: string
                  limit:
                    type: integer
                  marker:
                    type: string
                  name:
                    type: string
                  networkId:
                    type: string
                  notTags:
                    type: string
                  notTagsAny:
                    type: string
                  projectId:
                    type: string
                  sortDir:
                    type: string
                  sortKey:
                    type: string
                  subnetpoolId:
                    type: string
                  tags:
                    type: string
                  tagsAny:
                    type: string
                  tenantId:
                    type: string
                type: object
              tags:
                description: Tags for all resources in cluster
                items:
                  type: string
                type: array
            type: object
          status:
            description: OpenStackClusterStatus defines the observed state of OpenStackCluster.
            properties:
              bastion:
                properties:
                  configDrive:
                    type: boolean
                  failureDomain:
                    type: string
                  flavor:
                    type: string
                  floatingIP:
                    type: string
                  id:
                    type: string
                  image:
                    type: string
                  ip:
                    type: string
                  metadata:
                    additionalProperties:
                      type: string
                    type: object
                  name:
                    type: string
                  networks:
                    items:
                      description: Network represents basic information about an OpenStack
                        Neutron Network associated with an instance's port.
                      properties:
                        apiServerLoadBalancer:
                          description: Be careful when using APIServerLoadBalancer,
                            because this field is optional and therefore not set in
                            all cases
                          properties:
                            id:
                              type: string
                            internalIP:
                              type: string
                            ip:
                              type: string
                            name:
                              type: string
                          required:
                          - id
                          - internalIP
                          - ip
                          - name
                          type: object
                        id:
                          type: string
                        name:
                          type: string
                        port:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnetId:
                                    type: string
                                required:
                                - subnetId
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            networkId:
                              description: ID of the OpenStack network on which to
                                create the port. If unspecified, create the port on
                                the default cluster network.
                              type: string
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroups:
                              items:
                                type: string
                              type: array
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        router:
                          description: Router represents basic information about the
                            associated OpenStack Neutron Router.
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            tags:
                              items:
                                type: string
                              type: array
                          required:
                          - id
                          - name
                          type: object
                        subnet:
                          description: Subnet represents basic information about the
                            associated OpenStack Neutron Subnet.
                          properties:
                            cidr:
                              type: string
                            id:
                              type: string
                            name:
                              type: string
                            tags:
                              items:
                                type: string
                              type: array
                          required:
                          - cidr
                          - id
                          - name
                          type: object
                        tags:
                          items:
                            type: string
                          type: array
                      required:
                      - id
                      - name
                      type: object
                    type: array
                  rootVolume:
                    properties:
                      deviceType:
                        type: string
                      diskSize:
                        type: integer
                      sourceType:
                        type: string
                      sourceUUID:
                        type: string
                    type: object
                  securigyGroups:
                    items:
                      type: string
                    type: array
                  serverGroupID:
                    type: string
                  sshKeyName:
                    type: string
                  state:
                    description: InstanceState describes the state of an OpenStack
                      instance.
                    type: string
                  subnet:
                    type: string
                  tags:
                    items:
                      type: string
                    type: array
                  trunk:
                    type: boolean
                  userData:
                    type: string
                type: object
              bastionSecurityGroup:
                description: SecurityGroup represents the basic information of the
                  associated OpenStack Neutron Security Group.
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
              controlPlaneSecurityGroup:
                description: 'ControlPlaneSecurityGroups contains all the information
                  about the OpenStack Security Group that needs to be applied to control
                  plane nodes. TODO: Maybe instead of two properties, we add a property
                  to the group?'
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
              externalNetwork:
                description: External Network contains information about the created
                  OpenStack external network.
                properties:
                  apiServerLoadBalancer:
                    description: Be careful when using APIServerLoadBalancer, because
                      this field is optional and therefore not set in all cases
                    properties:
                      id:
                        type: string
                      internalIP:
                        type: string
                      ip:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - internalIP
                    - ip
                    - name
                    type: object
                  id:
                    type: string
                  name:
                    type: string
                  port:
                    properties:
                      adminStateUp:
                        type: boolean
                      allowedAddressPairs:
                        items:
                          properties:
                            ipAddress:
                              type: string
                            macAddress:
                              type: string
                          type: object
                        type: array
                      description:
                        type: string
                      disablePortSecurity:
                        description: DisablePortSecurity enables or disables the port
                          security when set. When not set, it takes the value of the
                          corresponding field at the network level.
                        type: boolean
                      fixedIPs:
                        description: Specify pairs of subnet and/or IP address. These
                          should be subnets of the network with the given NetworkID.
                        items:
                          properties:
                            ipAddress:
                              type: string
                            subnetId:
                              type: string
                          required:
                          - subnetId
                          type: object
                        type: array
                      hostId:
                        description: The ID of the host where the port is allocated
                        type: string
                      macAddress:
                        type: string
                      nameSuffix:
                        description: Used to make the name of the port unique. If
                          unspecified, instead the 0-based index of the port in the
                          list is used.
                        type: string
                      networkId:
                        description: ID of the OpenStack network on which to create
                          the port. If unspecified, create the port on the default
                          cluster network.
                        type: string
                      profile:
                        additionalProperties:
                          type: string
                        description: A dictionary that enables the application running
                          on the specified host to pass and receive virtual network
                          interface (VIF) port-specific information to the plug-in.
                        type: object
                      projectId:
                        type: string
                      securityGroups:
                        items:
                          type: string
                        type: array
                      tags:
                        description: Tags applied to the port (and corresponding trunk,
                          if a trunk is configured.) These tags are applied in addition
                          to the instance's tags, which will also be applied to the
                          port.
                        items:
                          type: string
                        type: array
                      tenantId:
                        type: string
                      trunk:
                        description: Enables and disables trunk at port level. If
                          not provided, openStackMachine.Spec.Trunk is inherited.
                        type: boolean
                      vnicType:
                        description: The virtual network interface card (vNIC) type
                          that is bound to the neutron port.
                        type: string
                    type: object
                  router:
                    description: Router represents basic information about the associated
                      OpenStack Neutron Router.
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    - name
                    type: object
                  subnet:
                    description: Subnet represents basic information about the associated
                      OpenStack Neutron Subnet.
                    properties:
                      cidr:
                        type: string
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - cidr
                    - id
                    - name
                    type: object
                  tags:
                    items:
                      type: string
                    type: array
                required:
                - id
                - name
                type: object
              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 represent OpenStack availability zones
                type: object
              failureMessage:
                description: "FailureMessage will be set in the event that there is
                  a terminal problem reconciling the OpenStackCluster 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 OpenStackCluster'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 OpenStackClusters
                  can be added as events to the OpenStackCluster 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 OpenStackCluster 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 OpenStackCluster'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 OpenStackClusters can be added
                  as events to the OpenStackCluster object and/or logged in the controller's
                  output."
                type: string
              network:
                description: Network contains all information about the created OpenStack
                  Network. It includes Subnets and Router.
                properties:
                  apiServerLoadBalancer:
                    description: Be careful when using APIServerLoadBalancer, because
                      this field is optional and therefore not set in all cases
                    properties:
                      id:
                        type: string
                      internalIP:
                        type: string
                      ip:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - internalIP
                    - ip
                    - name
                    type: object
                  id:
                    type: string
                  name:
                    type: string
                  port:
                    properties:
                      adminStateUp:
                        type: boolean
                      allowedAddressPairs:
                        items:
                          properties:
                            ipAddress:
                              type: string
                            macAddress:
                              type: string
                          type: object
                        type: array
                      description:
                        type: string
                      disablePortSecurity:
                        description: DisablePortSecurity enables or disables the port
                          security when set. When not set, it takes the value of the
                          corresponding field at the network level.
                        type: boolean
                      fixedIPs:
                        description: Specify pairs of subnet and/or IP address. These
                          should be subnets of the network with the given NetworkID.
                        items:
                          properties:
                            ipAddress:
                              type: string
                            subnetId:
                              type: string
                          required:
                          - subnetId
                          type: object
                        type: array
                      hostId:
                        description: The ID of the host where the port is allocated
                        type: string
                      macAddress:
                        type: string
                      nameSuffix:
                        description: Used to make the name of the port unique. If
                          unspecified, instead the 0-based index of the port in the
                          list is used.
                        type: string
                      networkId:
                        description: ID of the OpenStack network on which to create
                          the port. If unspecified, create the port on the default
                          cluster network.
                        type: string
                      profile:
                        additionalProperties:
                          type: string
                        description: A dictionary that enables the application running
                          on the specified host to pass and receive virtual network
                          interface (VIF) port-specific information to the plug-in.
                        type: object
                      projectId:
                        type: string
                      securityGroups:
                        items:
                          type: string
                        type: array
                      tags:
                        description: Tags applied to the port (and corresponding trunk,
                          if a trunk is configured.) These tags are applied in addition
                          to the instance's tags, which will also be applied to the
                          port.
                        items:
                          type: string
                        type: array
                      tenantId:
                        type: string
                      trunk:
                        description: Enables and disables trunk at port level. If
                          not provided, openStackMachine.Spec.Trunk is inherited.
                        type: boolean
                      vnicType:
                        description: The virtual network interface card (vNIC) type
                          that is bound to the neutron port.
                        type: string
                    type: object
                  router:
                    description: Router represents basic information about the associated
                      OpenStack Neutron Router.
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    - name
                    type: object
                  subnet:
                    description: Subnet represents basic information about the associated
                      OpenStack Neutron Subnet.
                    properties:
                      cidr:
                        type: string
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - cidr
                    - id
                    - name
                    type: object
                  tags:
                    items:
                      type: string
                    type: array
                required:
                - id
                - name
                type: object
              ready:
                type: boolean
              workerSecurityGroup:
                description: WorkerSecurityGroup contains all the information about
                  the OpenStack Security Group that needs to be applied to worker
                  nodes.
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
            required:
            - ready
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: Cluster to which this OpenStackCluster belongs
      jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
      name: Cluster
      type: string
    - description: Cluster infrastructure is ready for OpenStack instances
      jsonPath: .status.ready
      name: Ready
      type: string
    - description: Network the cluster is using
      jsonPath: .status.network.id
      name: Network
      type: string
    - description: Subnet the cluster is using
      jsonPath: .status.network.subnet.id
      name: Subnet
      type: string
    - description: API Endpoint
      jsonPath: .spec.controlPlaneEndpoint.host
      name: Endpoint
      priority: 1
      type: string
    - description: Bastion address for breakglass access
      jsonPath: .status.bastion.floatingIP
      name: Bastion IP
      type: string
    - description: Time duration since creation of OpenStackCluster
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha5
    schema:
      openAPIV3Schema:
        description: OpenStackCluster is the Schema for the openstackclusters 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: OpenStackClusterSpec defines the desired state of OpenStackCluster.
            properties:
              allowAllInClusterTraffic:
                description: AllowAllInClusterTraffic is only used when managed security
                  groups are in use. If set to true, the rules for the managed security
                  groups are configured so that all ingress and egress between cluster
                  nodes is permitted, allowing CNIs other than Calico to be used.
                type: boolean
              apiServerFixedIP:
                description: APIServerFixedIP is the fixed IP which will be associated
                  with the API server. In the case where the API server has a floating
                  IP but not a managed load balancer, this field is not used. If a
                  managed load balancer is used and this field is not specified, a
                  fixed IP will be dynamically allocated for the load balancer. If
                  a managed load balancer is not used AND the API server floating
                  IP is disabled, this field MUST be specified and should correspond
                  to a pre-allocated port that holds the fixed IP to be used as a
                  VIP.
                type: string
              apiServerFloatingIP:
                description: APIServerFloatingIP is the floatingIP which will be associated
                  with the API server. The floatingIP will be created if it does not
                  already exist. If not specified, a new floatingIP is allocated.
                  This field is not used if DisableAPIServerFloatingIP is set to true.
                type: string
              apiServerLoadBalancer:
                description: 'APIServerLoadBalancer configures the optional LoadBalancer
                  for the APIServer. It must be activated by setting `enabled: true`.'
                properties:
                  additionalPorts:
                    description: AdditionalPorts adds additional tcp ports to the
                      load balancer.
                    items:
                      type: integer
                    type: array
                  allowedCidrs:
                    description: AllowedCIDRs restrict access to all API-Server listeners
                      to the given address CIDRs.
                    items:
                      type: string
                    type: array
                  enabled:
                    description: Enabled defines whether a load balancer should be
                      created.
                    type: boolean
                type: object
              apiServerPort:
                description: APIServerPort is the port on which the listener on the
                  APIServer will be created
                type: integer
              bastion:
                description: "Bastion is the OpenStack instance to login the nodes
                  \n As a rolling update is not ideal during a bastion host session,
                  we prevent changes to a running bastion configuration. Set `enabled:
                  false` to make changes."
                properties:
                  availabilityZone:
                    type: string
                  enabled:
                    type: boolean
                  instance:
                    description: Instance for the bastion itself
                    properties:
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      configDrive:
                        description: Config Drive support
                        type: boolean
                      flavor:
                        description: The flavor reference for the flavor for your
                          server instance.
                        type: string
                      floatingIP:
                        description: The floatingIP which will be associated to the
                          machine, only used for master. The floatingIP should have
                          been created and haven't been associated.
                        type: string
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      image:
                        description: The name of the image to use for your server
                          instance. If the RootVolume is specified, this will be ignored
                          and use rootVolume directly.
                        type: string
                      imageUUID:
                        description: The uuid of the image to use for your server
                          instance. if it's empty, Image name will be used
                        type: string
                      instanceID:
                        description: InstanceID is the OpenStack instance ID for this
                          machine.
                        type: string
                      networks:
                        description: A networks object. Required parameter when there
                          are multiple networks defined for the tenant. When you do
                          not specify both networks and ports parameters, the server
                          attaches to the only network created for the current tenant.
                        items:
                          properties:
                            filter:
                              description: Filters for optional network query
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            fixedIP:
                              description: A fixed IPv4 address for the NIC.
                              type: string
                            subnets:
                              description: Subnet within a network to use
                              items:
                                properties:
                                  filter:
                                    description: Filters for optional subnet query
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                  uuid:
                                    description: Optional UUID of the subnet. If specified
                                      this will not be validated prior to server creation.
                                      If specified, the enclosing `NetworkParam` must
                                      also be specified by UUID.
                                    type: string
                                type: object
                              type: array
                            uuid:
                              description: Optional UUID of the network. If specified
                                this will not be validated prior to server creation.
                                Required if `Subnets` specifies a subnet by UUID.
                              type: string
                          type: object
                        type: array
                      ports:
                        description: Ports to be attached to the server instance.
                          They are created if a port with the given name does not
                          already exist. When you do not specify both networks and
                          ports parameters, the server attaches to the only network
                          created for the current tenant.
                        items:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnet:
                                    description: Subnet is an openstack subnet query
                                      that will return the id of a subnet to create
                                      the fixed IP of a port in. This query must not
                                      return more than one subnet.
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                required:
                                - subnet
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            network:
                              description: Network is a query for an openstack network
                                that the port will be created or discovered on. This
                                will fail if the query returns more than one network.
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroupFilters:
                              description: The names, uuids, filters or any combination
                                these of the security groups to assign to the instance
                              items:
                                properties:
                                  filter:
                                    description: Filters used to query security groups
                                      in openstack
                                    properties:
                                      description:
                                        type: string
                                      id:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  name:
                                    description: Security Group name
                                    type: string
                                  uuid:
                                    description: Security Group UID
                                    type: string
                                type: object
                              type: array
                            securityGroups:
                              description: The uuids of the security groups to assign
                                to the instance
                              items:
                                type: string
                              type: array
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        type: array
                      providerID:
                        description: ProviderID is the unique identifier as specified
                          by the cloud provider.
                        type: string
                      rootVolume:
                        description: The volume metadata to boot from
                        properties:
                          availabilityZone:
                            type: string
                          diskSize:
                            type: integer
                          volumeType:
                            type: string
                        type: object
                      securityGroups:
                        description: The names of the security groups to assign to
                          the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      serverGroupID:
                        description: The server group to assign the machine to
                        type: string
                      serverMetadata:
                        additionalProperties:
                          type: string
                        description: Metadata mapping. Allows you to create a map
                          of key value pairs to add to the server instance.
                        type: object
                      sshKeyName:
                        description: The ssh key to inject in the instance
                        type: string
                      subnet:
                        description: UUID, IP address of a port from this subnet will
                          be marked as AccessIPv4 on the created compute instance
                        type: string
                      tags:
                        description: Machine tags Requires Nova api 2.52 minimum!
                        items:
                          type: string
                        type: array
                      trunk:
                        description: Whether the server instance is created on a trunk
                          port or not.
                        type: boolean
                    required:
                    - flavor
                    type: object
                type: object
              cloudName:
                description: The name of the cloud to use from the clouds secret
                type: string
              controlPlaneAvailabilityZones:
                description: ControlPlaneAvailabilityZones is the az to deploy control
                  plane to
                items:
                  type: string
                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
              disableAPIServerFloatingIP:
                description: DisableAPIServerFloatingIP determines whether or not
                  to attempt to attach a floating IP to the API server. This allows
                  for the creation of clusters when attaching a floating IP to the
                  API server (and hence, in many cases, exposing the API server to
                  the internet) is not possible or desirable, e.g. if using a shared
                  VLAN for communication between management and workload clusters
                  or when the management cluster is inside the project network. This
                  option requires that the API server use a VIP on the cluster network
                  so that the underlying machines can change without changing ControlPlaneEndpoint.Host.
                  When using a managed load balancer, this VIP will be managed automatically.
                  If not using a managed load balancer, cluster configuration will
                  fail without additional configuration to manage the VIP on the control
                  plane machines, which falls outside of the scope of this controller.
                type: boolean
              disablePortSecurity:
                description: DisablePortSecurity disables the port security of the
                  network created for the Kubernetes cluster, which also disables
                  SecurityGroups
                type: boolean
              dnsNameservers:
                description: DNSNameservers is the list of nameservers for OpenStack
                  Subnet being created. Set this value when you need create a new
                  network/subnet while the access through DNS is required.
                items:
                  type: string
                type: array
              externalNetworkId:
                description: ExternalNetworkID is the ID of an external OpenStack
                  Network. This is necessary to get public internet to the VMs.
                type: string
              externalRouterIPs:
                description: ExternalRouterIPs is an array of externalIPs on the respective
                  subnets. This is necessary if the router needs a fixed ip in a specific
                  subnet.
                items:
                  properties:
                    fixedIP:
                      description: The FixedIP in the corresponding subnet
                      type: string
                    subnet:
                      description: The subnet in which the FixedIP is used for the
                        Gateway of this router
                      properties:
                        filter:
                          description: Filters for optional subnet query
                          properties:
                            cidr:
                              type: string
                            description:
                              type: string
                            gateway_ip:
                              type: string
                            id:
                              type: string
                            ipVersion:
                              type: integer
                            ipv6AddressMode:
                              type: string
                            ipv6RaMode:
                              type: string
                            name:
                              type: string
                            notTags:
                              type: string
                            notTagsAny:
                              type: string
                            projectId:
                              type: string
                            tags:
                              type: string
                            tagsAny:
                              type: string
                          type: object
                        uuid:
                          description: Optional UUID of the subnet. If specified this
                            will not be validated prior to server creation. If specified,
                            the enclosing `NetworkParam` must also be specified by
                            UUID.
                          type: string
                      type: object
                  required:
                  - subnet
                  type: object
                type: array
              identityRef:
                description: IdentityRef is a reference to a identity to be used when
                  reconciling this cluster
                properties:
                  kind:
                    description: Kind of the identity. Must be supported by the infrastructure
                      provider and may be either cluster or namespace-scoped.
                    minLength: 1
                    type: string
                  name:
                    description: Name of the infrastructure identity to be used. Must
                      be either a cluster-scoped resource, or namespaced-scoped resource
                      the same namespace as the resource(s) being provisioned.
                    type: string
                required:
                - kind
                - name
                type: object
              managedSecurityGroups:
                description: ManagedSecurityGroups determines whether OpenStack security
                  groups for the cluster will be managed by the OpenStack provider
                  or whether pre-existing security groups will be specified as part
                  of the configuration. By default, the managed security groups have
                  rules that allow the Kubelet, etcd, the Kubernetes API server and
                  the Calico CNI plugin to function correctly.
                type: boolean
              network:
                description: If NodeCIDR cannot be set this can be used to detect
                  an existing network.
                properties:
                  description:
                    type: string
                  id:
                    type: string
                  name:
                    type: string
                  notTags:
                    type: string
                  notTagsAny:
                    type: string
                  projectId:
                    type: string
                  tags:
                    type: string
                  tagsAny:
                    type: string
                type: object
              nodeCidr:
                description: NodeCIDR is the OpenStack Subnet to be created. Cluster
                  actuator will create a network, a subnet with NodeCIDR, and a router
                  connected to this subnet. If you leave this empty, no network will
                  be created.
                type: string
              subnet:
                description: If NodeCIDR cannot be set this can be used to detect
                  an existing subnet.
                properties:
                  cidr:
                    type: string
                  description:
                    type: string
                  gateway_ip:
                    type: string
                  id:
                    type: string
                  ipVersion:
                    type: integer
                  ipv6AddressMode:
                    type: string
                  ipv6RaMode:
                    type: string
                  name:
                    type: string
                  notTags:
                    type: string
                  notTagsAny:
                    type: string
                  projectId:
                    type: string
                  tags:
                    type: string
                  tagsAny:
                    type: string
                type: object
              tags:
                description: Tags for all resources in cluster
                items:
                  type: string
                type: array
            type: object
          status:
            description: OpenStackClusterStatus defines the observed state of OpenStackCluster.
            properties:
              bastion:
                properties:
                  configDrive:
                    type: boolean
                  failureDomain:
                    type: string
                  flavor:
                    type: string
                  floatingIP:
                    type: string
                  id:
                    type: string
                  image:
                    type: string
                  imageUUID:
                    type: string
                  ip:
                    type: string
                  metadata:
                    additionalProperties:
                      type: string
                    type: object
                  name:
                    type: string
                  networks:
                    items:
                      description: Network represents basic information about an OpenStack
                        Neutron Network associated with an instance's port.
                      properties:
                        apiServerLoadBalancer:
                          description: Be careful when using APIServerLoadBalancer,
                            because this field is optional and therefore not set in
                            all cases
                          properties:
                            allowedCIDRs:
                              items:
                                type: string
                              type: array
                            id:
                              type: string
                            internalIP:
                              type: string
                            ip:
                              type: string
                            name:
                              type: string
                          required:
                          - id
                          - internalIP
                          - ip
                          - name
                          type: object
                        id:
                          type: string
                        name:
                          type: string
                        port:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnet:
                                    description: Subnet is an openstack subnet query
                                      that will return the id of a subnet to create
                                      the fixed IP of a port in. This query must not
                                      return more than one subnet.
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                required:
                                - subnet
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            network:
                              description: Network is a query for an openstack network
                                that the port will be created or discovered on. This
                                will fail if the query returns more than one network.
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroupFilters:
                              description: The names, uuids, filters or any combination
                                these of the security groups to assign to the instance
                              items:
                                properties:
                                  filter:
                                    description: Filters used to query security groups
                                      in openstack
                                    properties:
                                      description:
                                        type: string
                                      id:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  name:
                                    description: Security Group name
                                    type: string
                                  uuid:
                                    description: Security Group UID
                                    type: string
                                type: object
                              type: array
                            securityGroups:
                              description: The uuids of the security groups to assign
                                to the instance
                              items:
                                type: string
                              type: array
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        router:
                          description: Router represents basic information about the
                            associated OpenStack Neutron Router.
                          properties:
                            id:
                              type: string
                            ips:
                              items:
                                type: string
                              type: array
                            name:
                              type: string
                            tags:
                              items:
                                type: string
                              type: array
                          required:
                          - id
                          - name
                          type: object
                        subnet:
                          description: Subnet represents basic information about the
                            associated OpenStack Neutron Subnet.
                          properties:
                            cidr:
                              type: string
                            id:
                              type: string
                            name:
                              type: string
                            tags:
                              items:
                                type: string
                              type: array
                          required:
                          - cidr
                          - id
                          - name
                          type: object
                        tags:
                          items:
                            type: string
                          type: array
                      required:
                      - id
                      - name
                      type: object
                    type: array
                  rootVolume:
                    properties:
                      availabilityZone:
                        type: string
                      diskSize:
                        type: integer
                      volumeType:
                        type: string
                    type: object
                  securigyGroups:
                    items:
                      type: string
                    type: array
                  serverGroupID:
                    type: string
                  sshKeyName:
                    type: string
                  state:
                    description: InstanceState describes the state of an OpenStack
                      instance.
                    type: string
                  subnet:
                    type: string
                  tags:
                    items:
                      type: string
                    type: array
                  trunk:
                    type: boolean
                  userData:
                    type: string
                type: object
              bastionSecurityGroup:
                description: SecurityGroup represents the basic information of the
                  associated OpenStack Neutron Security Group.
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
              controlPlaneSecurityGroup:
                description: 'ControlPlaneSecurityGroups contains all the information
                  about the OpenStack Security Group that needs to be applied to control
                  plane nodes. TODO: Maybe instead of two properties, we add a property
                  to the group?'
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
              externalNetwork:
                description: External Network contains information about the created
                  OpenStack external network.
                properties:
                  apiServerLoadBalancer:
                    description: Be careful when using APIServerLoadBalancer, because
                      this field is optional and therefore not set in all cases
                    properties:
                      allowedCIDRs:
                        items:
                          type: string
                        type: array
                      id:
                        type: string
                      internalIP:
                        type: string
                      ip:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - internalIP
                    - ip
                    - name
                    type: object
                  id:
                    type: string
                  name:
                    type: string
                  port:
                    properties:
                      adminStateUp:
                        type: boolean
                      allowedAddressPairs:
                        items:
                          properties:
                            ipAddress:
                              type: string
                            macAddress:
                              type: string
                          type: object
                        type: array
                      description:
                        type: string
                      disablePortSecurity:
                        description: DisablePortSecurity enables or disables the port
                          security when set. When not set, it takes the value of the
                          corresponding field at the network level.
                        type: boolean
                      fixedIPs:
                        description: Specify pairs of subnet and/or IP address. These
                          should be subnets of the network with the given NetworkID.
                        items:
                          properties:
                            ipAddress:
                              type: string
                            subnet:
                              description: Subnet is an openstack subnet query that
                                will return the id of a subnet to create the fixed
                                IP of a port in. This query must not return more than
                                one subnet.
                              properties:
                                cidr:
                                  type: string
                                description:
                                  type: string
                                gateway_ip:
                                  type: string
                                id:
                                  type: string
                                ipVersion:
                                  type: integer
                                ipv6AddressMode:
                                  type: string
                                ipv6RaMode:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                          required:
                          - subnet
                          type: object
                        type: array
                      hostId:
                        description: The ID of the host where the port is allocated
                        type: string
                      macAddress:
                        type: string
                      nameSuffix:
                        description: Used to make the name of the port unique. If
                          unspecified, instead the 0-based index of the port in the
                          list is used.
                        type: string
                      network:
                        description: Network is a query for an openstack network that
                          the port will be created or discovered on. This will fail
                          if the query returns more than one network.
                        properties:
                          description:
                            type: string
                          id:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                        type: object
                      profile:
                        additionalProperties:
                          type: string
                        description: A dictionary that enables the application running
                          on the specified host to pass and receive virtual network
                          interface (VIF) port-specific information to the plug-in.
                        type: object
                      projectId:
                        type: string
                      securityGroupFilters:
                        description: The names, uuids, filters or any combination
                          these of the security groups to assign to the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      securityGroups:
                        description: The uuids of the security groups to assign to
                          the instance
                        items:
                          type: string
                        type: array
                      tags:
                        description: Tags applied to the port (and corresponding trunk,
                          if a trunk is configured.) These tags are applied in addition
                          to the instance's tags, which will also be applied to the
                          port.
                        items:
                          type: string
                        type: array
                      tenantId:
                        type: string
                      trunk:
                        description: Enables and disables trunk at port level. If
                          not provided, openStackMachine.Spec.Trunk is inherited.
                        type: boolean
                      vnicType:
                        description: The virtual network interface card (vNIC) type
                          that is bound to the neutron port.
                        type: string
                    type: object
                  router:
                    description: Router represents basic information about the associated
                      OpenStack Neutron Router.
                    properties:
                      id:
                        type: string
                      ips:
                        items:
                          type: string
                        type: array
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    - name
                    type: object
                  subnet:
                    description: Subnet represents basic information about the associated
                      OpenStack Neutron Subnet.
                    properties:
                      cidr:
                        type: string
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - cidr
                    - id
                    - name
                    type: object
                  tags:
                    items:
                      type: string
                    type: array
                required:
                - id
                - name
                type: object
              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 represent OpenStack availability zones
                type: object
              failureMessage:
                description: "FailureMessage will be set in the event that there is
                  a terminal problem reconciling the OpenStackCluster 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 OpenStackCluster'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 OpenStackClusters
                  can be added as events to the OpenStackCluster 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 OpenStackCluster 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 OpenStackCluster'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 OpenStackClusters can be added
                  as events to the OpenStackCluster object and/or logged in the controller's
                  output."
                type: string
              network:
                description: Network contains all information about the created OpenStack
                  Network. It includes Subnets and Router.
                properties:
                  apiServerLoadBalancer:
                    description: Be careful when using APIServerLoadBalancer, because
                      this field is optional and therefore not set in all cases
                    properties:
                      allowedCIDRs:
                        items:
                          type: string
                        type: array
                      id:
                        type: string
                      internalIP:
                        type: string
                      ip:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - internalIP
                    - ip
                    - name
                    type: object
                  id:
                    type: string
                  name:
                    type: string
                  port:
                    properties:
                      adminStateUp:
                        type: boolean
                      allowedAddressPairs:
                        items:
                          properties:
                            ipAddress:
                              type: string
                            macAddress:
                              type: string
                          type: object
                        type: array
                      description:
                        type: string
                      disablePortSecurity:
                        description: DisablePortSecurity enables or disables the port
                          security when set. When not set, it takes the value of the
                          corresponding field at the network level.
                        type: boolean
                      fixedIPs:
                        description: Specify pairs of subnet and/or IP address. These
                          should be subnets of the network with the given NetworkID.
                        items:
                          properties:
                            ipAddress:
                              type: string
                            subnet:
                              description: Subnet is an openstack subnet query that
                                will return the id of a subnet to create the fixed
                                IP of a port in. This query must not return more than
                                one subnet.
                              properties:
                                cidr:
                                  type: string
                                description:
                                  type: string
                                gateway_ip:
                                  type: string
                                id:
                                  type: string
                                ipVersion:
                                  type: integer
                                ipv6AddressMode:
                                  type: string
                                ipv6RaMode:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                          required:
                          - subnet
                          type: object
                        type: array
                      hostId:
                        description: The ID of the host where the port is allocated
                        type: string
                      macAddress:
                        type: string
                      nameSuffix:
                        description: Used to make the name of the port unique. If
                          unspecified, instead the 0-based index of the port in the
                          list is used.
                        type: string
                      network:
                        description: Network is a query for an openstack network that
                          the port will be created or discovered on. This will fail
                          if the query returns more than one network.
                        properties:
                          description:
                            type: string
                          id:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                        type: object
                      profile:
                        additionalProperties:
                          type: string
                        description: A dictionary that enables the application running
                          on the specified host to pass and receive virtual network
                          interface (VIF) port-specific information to the plug-in.
                        type: object
                      projectId:
                        type: string
                      securityGroupFilters:
                        description: The names, uuids, filters or any combination
                          these of the security groups to assign to the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      securityGroups:
                        description: The uuids of the security groups to assign to
                          the instance
                        items:
                          type: string
                        type: array
                      tags:
                        description: Tags applied to the port (and corresponding trunk,
                          if a trunk is configured.) These tags are applied in addition
                          to the instance's tags, which will also be applied to the
                          port.
                        items:
                          type: string
                        type: array
                      tenantId:
                        type: string
                      trunk:
                        description: Enables and disables trunk at port level. If
                          not provided, openStackMachine.Spec.Trunk is inherited.
                        type: boolean
                      vnicType:
                        description: The virtual network interface card (vNIC) type
                          that is bound to the neutron port.
                        type: string
                    type: object
                  router:
                    description: Router represents basic information about the associated
                      OpenStack Neutron Router.
                    properties:
                      id:
                        type: string
                      ips:
                        items:
                          type: string
                        type: array
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    - name
                    type: object
                  subnet:
                    description: Subnet represents basic information about the associated
                      OpenStack Neutron Subnet.
                    properties:
                      cidr:
                        type: string
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - cidr
                    - id
                    - name
                    type: object
                  tags:
                    items:
                      type: string
                    type: array
                required:
                - id
                - name
                type: object
              ready:
                type: boolean
              workerSecurityGroup:
                description: WorkerSecurityGroup contains all the information about
                  the OpenStack Security Group that needs to be applied to worker
                  nodes.
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
            required:
            - ready
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - description: Cluster to which this OpenStackCluster belongs
      jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
      name: Cluster
      type: string
    - description: Cluster infrastructure is ready for OpenStack instances
      jsonPath: .status.ready
      name: Ready
      type: string
    - description: Network the cluster is using
      jsonPath: .status.network.id
      name: Network
      type: string
    - description: Subnet the cluster is using
      jsonPath: .status.network.subnet.id
      name: Subnet
      type: string
    - description: API Endpoint
      jsonPath: .spec.controlPlaneEndpoint.host
      name: Endpoint
      priority: 1
      type: string
    - description: Bastion address for breakglass access
      jsonPath: .status.bastion.floatingIP
      name: Bastion IP
      type: string
    - description: Time duration since creation of OpenStackCluster
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha6
    schema:
      openAPIV3Schema:
        description: OpenStackCluster is the Schema for the openstackclusters 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: OpenStackClusterSpec defines the desired state of OpenStackCluster.
            properties:
              allowAllInClusterTraffic:
                description: AllowAllInClusterTraffic is only used when managed security
                  groups are in use. If set to true, the rules for the managed security
                  groups are configured so that all ingress and egress between cluster
                  nodes is permitted, allowing CNIs other than Calico to be used.
                type: boolean
              apiServerFixedIP:
                description: APIServerFixedIP is the fixed IP which will be associated
                  with the API server. In the case where the API server has a floating
                  IP but not a managed load balancer, this field is not used. If a
                  managed load balancer is used and this field is not specified, a
                  fixed IP will be dynamically allocated for the load balancer. If
                  a managed load balancer is not used AND the API server floating
                  IP is disabled, this field MUST be specified and should correspond
                  to a pre-allocated port that holds the fixed IP to be used as a
                  VIP.
                type: string
              apiServerFloatingIP:
                description: APIServerFloatingIP is the floatingIP which will be associated
                  with the API server. The floatingIP will be created if it does not
                  already exist. If not specified, a new floatingIP is allocated.
                  This field is not used if DisableAPIServerFloatingIP is set to true.
                type: string
              apiServerLoadBalancer:
                description: 'APIServerLoadBalancer configures the optional LoadBalancer
                  for the APIServer. It must be activated by setting `enabled: true`.'
                properties:
                  additionalPorts:
                    description: AdditionalPorts adds additional tcp ports to the
                      load balancer.
                    items:
                      type: integer
                    type: array
                  allowedCidrs:
                    description: AllowedCIDRs restrict access to all API-Server listeners
                      to the given address CIDRs.
                    items:
                      type: string
                    type: array
                  enabled:
                    description: Enabled defines whether a load balancer should be
                      created.
                    type: boolean
                type: object
              apiServerPort:
                description: APIServerPort is the port on which the listener on the
                  APIServer will be created
                type: integer
              bastion:
                description: "Bastion is the OpenStack instance to login the nodes
                  \n As a rolling update is not ideal during a bastion host session,
                  we prevent changes to a running bastion configuration. Set `enabled:
                  false` to make changes."
                properties:
                  availabilityZone:
                    type: string
                  enabled:
                    type: boolean
                  instance:
                    description: Instance for the bastion itself
                    properties:
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      configDrive:
                        description: Config Drive support
                        type: boolean
                      flavor:
                        description: The flavor reference for the flavor for your
                          server instance.
                        type: string
                      floatingIP:
                        description: The floatingIP which will be associated to the
                          machine, only used for master. The floatingIP should have
                          been created and haven't been associated.
                        type: string
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      image:
                        description: The name of the image to use for your server
                          instance. If the RootVolume is specified, this will be ignored
                          and use rootVolume directly.
                        type: string
                      imageUUID:
                        description: The uuid of the image to use for your server
                          instance. if it's empty, Image name will be used
                        type: string
                      instanceID:
                        description: InstanceID is the OpenStack instance ID for this
                          machine.
                        type: string
                      networks:
                        description: A networks object. Required parameter when there
                          are multiple networks defined for the tenant. When you do
                          not specify both networks and ports parameters, the server
                          attaches to the only network created for the current tenant.
                        items:
                          properties:
                            filter:
                              description: Filters for optional network query
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            fixedIP:
                              description: A fixed IPv4 address for the NIC.
                              type: string
                            subnets:
                              description: Subnet within a network to use
                              items:
                                properties:
                                  filter:
                                    description: Filters for optional subnet query
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                  uuid:
                                    description: Optional UUID of the subnet. If specified
                                      this will not be validated prior to server creation.
                                      If specified, the enclosing `NetworkParam` must
                                      also be specified by UUID.
                                    type: string
                                type: object
                              type: array
                            uuid:
                              description: Optional UUID of the network. If specified
                                this will not be validated prior to server creation.
                                Required if `Subnets` specifies a subnet by UUID.
                              type: string
                          type: object
                        type: array
                      ports:
                        description: Ports to be attached to the server instance.
                          They are created if a port with the given name does not
                          already exist. When you do not specify both networks and
                          ports parameters, the server attaches to the only network
                          created for the current tenant.
                        items:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnet:
                                    description: Subnet is an openstack subnet query
                                      that will return the id of a subnet to create
                                      the fixed IP of a port in. This query must not
                                      return more than one subnet.
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                required:
                                - subnet
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            network:
                              description: Network is a query for an openstack network
                                that the port will be created or discovered on. This
                                will fail if the query returns more than one network.
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroupFilters:
                              description: The names, uuids, filters or any combination
                                these of the security groups to assign to the instance
                              items:
                                properties:
                                  filter:
                                    description: Filters used to query security groups
                                      in openstack
                                    properties:
                                      description:
                                        type: string
                                      id:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  name:
                                    description: Security Group name
                                    type: string
                                  uuid:
                                    description: Security Group UID
                                    type: string
                                type: object
                              type: array
                            securityGroups:
                              description: The uuids of the security groups to assign
                                to the instance
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: set
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: set
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        type: array
                      providerID:
                        description: ProviderID is the unique identifier as specified
                          by the cloud provider.
                        type: string
                      rootVolume:
                        description: The volume metadata to boot from
                        properties:
                          availabilityZone:
                            type: string
                          diskSize:
                            type: integer
                          volumeType:
                            type: string
                        type: object
                      securityGroups:
                        description: The names of the security groups to assign to
                          the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      serverGroupID:
                        description: The server group to assign the machine to
                        type: string
                      serverMetadata:
                        additionalProperties:
                          type: string
                        description: Metadata mapping. Allows you to create a map
                          of key value pairs to add to the server instance.
                        type: object
                      sshKeyName:
                        description: The ssh key to inject in the instance
                        type: string
                      subnet:
                        description: UUID, IP address of a port from this subnet will
                          be marked as AccessIPv4 on the created compute instance
                        type: string
                      tags:
                        description: Machine tags Requires Nova api 2.52 minimum!
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      trunk:
                        description: Whether the server instance is created on a trunk
                          port or not.
                        type: boolean
                    required:
                    - flavor
                    type: object
                type: object
              cloudName:
                description: The name of the cloud to use from the clouds secret
                type: string
              controlPlaneAvailabilityZones:
                description: ControlPlaneAvailabilityZones is the az to deploy control
                  plane to
                items:
                  type: string
                type: array
                x-kubernetes-list-type: set
              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
              controlPlaneOmitAvailabilityZone:
                description: Indicates whether to omit the az for control plane nodes,
                  allowing the Nova scheduler to make a decision on which az to use
                  based on other scheduling constraints
                type: boolean
              disableAPIServerFloatingIP:
                description: DisableAPIServerFloatingIP determines whether or not
                  to attempt to attach a floating IP to the API server. This allows
                  for the creation of clusters when attaching a floating IP to the
                  API server (and hence, in many cases, exposing the API server to
                  the internet) is not possible or desirable, e.g. if using a shared
                  VLAN for communication between management and workload clusters
                  or when the management cluster is inside the project network. This
                  option requires that the API server use a VIP on the cluster network
                  so that the underlying machines can change without changing ControlPlaneEndpoint.Host.
                  When using a managed load balancer, this VIP will be managed automatically.
                  If not using a managed load balancer, cluster configuration will
                  fail without additional configuration to manage the VIP on the control
                  plane machines, which falls outside of the scope of this controller.
                type: boolean
              disablePortSecurity:
                description: DisablePortSecurity disables the port security of the
                  network created for the Kubernetes cluster, which also disables
                  SecurityGroups
                type: boolean
              dnsNameservers:
                description: DNSNameservers is the list of nameservers for OpenStack
                  Subnet being created. Set this value when you need create a new
                  network/subnet while the access through DNS is required.
                items:
                  type: string
                type: array
                x-kubernetes-list-type: set
              externalNetworkId:
                description: ExternalNetworkID is the ID of an external OpenStack
                  Network. This is necessary to get public internet to the VMs.
                type: string
              externalRouterIPs:
                description: ExternalRouterIPs is an array of externalIPs on the respective
                  subnets. This is necessary if the router needs a fixed ip in a specific
                  subnet.
                items:
                  properties:
                    fixedIP:
                      description: The FixedIP in the corresponding subnet
                      type: string
                    subnet:
                      description: The subnet in which the FixedIP is used for the
                        Gateway of this router
                      properties:
                        filter:
                          description: Filters for optional subnet query
                          properties:
                            cidr:
                              type: string
                            description:
                              type: string
                            gateway_ip:
                              type: string
                            id:
                              type: string
                            ipVersion:
                              type: integer
                            ipv6AddressMode:
                              type: string
                            ipv6RaMode:
                              type: string
                            name:
                              type: string
                            notTags:
                              type: string
                            notTagsAny:
                              type: string
                            projectId:
                              type: string
                            tags:
                              type: string
                            tagsAny:
                              type: string
                          type: object
                        uuid:
                          description: Optional UUID of the subnet. If specified this
                            will not be validated prior to server creation. If specified,
                            the enclosing `NetworkParam` must also be specified by
                            UUID.
                          type: string
                      type: object
                  required:
                  - subnet
                  type: object
                type: array
              identityRef:
                description: IdentityRef is a reference to a identity to be used when
                  reconciling this cluster
                properties:
                  kind:
                    description: Kind of the identity. Must be supported by the infrastructure
                      provider and may be either cluster or namespace-scoped.
                    minLength: 1
                    type: string
                  name:
                    description: Name of the infrastructure identity to be used. Must
                      be either a cluster-scoped resource, or namespaced-scoped resource
                      the same namespace as the resource(s) being provisioned.
                    type: string
                required:
                - kind
                - name
                type: object
              managedSecurityGroups:
                description: ManagedSecurityGroups determines whether OpenStack security
                  groups for the cluster will be managed by the OpenStack provider
                  or whether pre-existing security groups will be specified as part
                  of the configuration. By default, the managed security groups have
                  rules that allow the Kubelet, etcd, the Kubernetes API server and
                  the Calico CNI plugin to function correctly.
                type: boolean
              network:
                description: If NodeCIDR cannot be set this can be used to detect
                  an existing network.
                properties:
                  description:
                    type: string
                  id:
                    type: string
                  name:
                    type: string
                  notTags:
                    type: string
                  notTagsAny:
                    type: string
                  projectId:
                    type: string
                  tags:
                    type: string
                  tagsAny:
                    type: string
                type: object
              nodeCidr:
                description: NodeCIDR is the OpenStack Subnet to be created. Cluster
                  actuator will create a network, a subnet with NodeCIDR, and a router
                  connected to this subnet. If you leave this empty, no network will
                  be created.
                type: string
              subnet:
                description: If NodeCIDR cannot be set this can be used to detect
                  an existing subnet.
                properties:
                  cidr:
                    type: string
                  description:
                    type: string
                  gateway_ip:
                    type: string
                  id:
                    type: string
                  ipVersion:
                    type: integer
                  ipv6AddressMode:
                    type: string
                  ipv6RaMode:
                    type: string
                  name:
                    type: string
                  notTags:
                    type: string
                  notTagsAny:
                    type: string
                  projectId:
                    type: string
                  tags:
                    type: string
                  tagsAny:
                    type: string
                type: object
              tags:
                description: Tags for all resources in cluster
                items:
                  type: string
                type: array
                x-kubernetes-list-type: set
            type: object
          status:
            description: OpenStackClusterStatus defines the observed state of OpenStackCluster.
            properties:
              bastion:
                properties:
                  configDrive:
                    type: boolean
                  failureDomain:
                    type: string
                  flavor:
                    type: string
                  floatingIP:
                    type: string
                  id:
                    type: string
                  image:
                    type: string
                  imageUUID:
                    type: string
                  ip:
                    type: string
                  metadata:
                    additionalProperties:
                      type: string
                    type: object
                  name:
                    type: string
                  networks:
                    items:
                      description: Network represents basic information about an OpenStack
                        Neutron Network associated with an instance's port.
                      properties:
                        apiServerLoadBalancer:
                          description: Be careful when using APIServerLoadBalancer,
                            because this field is optional and therefore not set in
                            all cases
                          properties:
                            allowedCIDRs:
                              items:
                                type: string
                              type: array
                            id:
                              type: string
                            internalIP:
                              type: string
                            ip:
                              type: string
                            name:
                              type: string
                          required:
                          - id
                          - internalIP
                          - ip
                          - name
                          type: object
                        id:
                          type: string
                        name:
                          type: string
                        port:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnet:
                                    description: Subnet is an openstack subnet query
                                      that will return the id of a subnet to create
                                      the fixed IP of a port in. This query must not
                                      return more than one subnet.
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                required:
                                - subnet
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            network:
                              description: Network is a query for an openstack network
                                that the port will be created or discovered on. This
                                will fail if the query returns more than one network.
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroupFilters:
                              description: The names, uuids, filters or any combination
                                these of the security groups to assign to the instance
                              items:
                                properties:
                                  filter:
                                    description: Filters used to query security groups
                                      in openstack
                                    properties:
                                      description:
                                        type: string
                                      id:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  name:
                                    description: Security Group name
                                    type: string
                                  uuid:
                                    description: Security Group UID
                                    type: string
                                type: object
                              type: array
                            securityGroups:
                              description: The uuids of the security groups to assign
                                to the instance
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: set
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: set
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        router:
                          description: Router represents basic information about the
                            associated OpenStack Neutron Router.
                          properties:
                            id:
                              type: string
                            ips:
                              items:
                                type: string
                              type: array
                            name:
                              type: string
                            tags:
                              items:
                                type: string
                              type: array
                          required:
                          - id
                          - name
                          type: object
                        subnet:
                          description: Subnet represents basic information about the
                            associated OpenStack Neutron Subnet.
                          properties:
                            cidr:
                              type: string
                            id:
                              type: string
                            name:
                              type: string
                            tags:
                              items:
                                type: string
                              type: array
                          required:
                          - cidr
                          - id
                          - name
                          type: object
                        tags:
                          items:
                            type: string
                          type: array
                      required:
                      - id
                      - name
                      type: object
                    type: array
                  rootVolume:
                    properties:
                      availabilityZone:
                        type: string
                      diskSize:
                        type: integer
                      volumeType:
                        type: string
                    type: object
                  securigyGroups:
                    items:
                      type: string
                    type: array
                  serverGroupID:
                    type: string
                  sshKeyName:
                    type: string
                  state:
                    description: InstanceState describes the state of an OpenStack
                      instance.
                    type: string
                  subnet:
                    type: string
                  tags:
                    items:
                      type: string
                    type: array
                  trunk:
                    type: boolean
                  userData:
                    type: string
                type: object
              bastionSecurityGroup:
                description: SecurityGroup represents the basic information of the
                  associated OpenStack Neutron Security Group.
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
              controlPlaneSecurityGroup:
                description: 'ControlPlaneSecurityGroups contains all the information
                  about the OpenStack Security Group that needs to be applied to control
                  plane nodes. TODO: Maybe instead of two properties, we add a property
                  to the group?'
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
              externalNetwork:
                description: External Network contains information about the created
                  OpenStack external network.
                properties:
                  apiServerLoadBalancer:
                    description: Be careful when using APIServerLoadBalancer, because
                      this field is optional and therefore not set in all cases
                    properties:
                      allowedCIDRs:
                        items:
                          type: string
                        type: array
                      id:
                        type: string
                      internalIP:
                        type: string
                      ip:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - internalIP
                    - ip
                    - name
                    type: object
                  id:
                    type: string
                  name:
                    type: string
                  port:
                    properties:
                      adminStateUp:
                        type: boolean
                      allowedAddressPairs:
                        items:
                          properties:
                            ipAddress:
                              type: string
                            macAddress:
                              type: string
                          type: object
                        type: array
                      description:
                        type: string
                      disablePortSecurity:
                        description: DisablePortSecurity enables or disables the port
                          security when set. When not set, it takes the value of the
                          corresponding field at the network level.
                        type: boolean
                      fixedIPs:
                        description: Specify pairs of subnet and/or IP address. These
                          should be subnets of the network with the given NetworkID.
                        items:
                          properties:
                            ipAddress:
                              type: string
                            subnet:
                              description: Subnet is an openstack subnet query that
                                will return the id of a subnet to create the fixed
                                IP of a port in. This query must not return more than
                                one subnet.
                              properties:
                                cidr:
                                  type: string
                                description:
                                  type: string
                                gateway_ip:
                                  type: string
                                id:
                                  type: string
                                ipVersion:
                                  type: integer
                                ipv6AddressMode:
                                  type: string
                                ipv6RaMode:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                          required:
                          - subnet
                          type: object
                        type: array
                      hostId:
                        description: The ID of the host where the port is allocated
                        type: string
                      macAddress:
                        type: string
                      nameSuffix:
                        description: Used to make the name of the port unique. If
                          unspecified, instead the 0-based index of the port in the
                          list is used.
                        type: string
                      network:
                        description: Network is a query for an openstack network that
                          the port will be created or discovered on. This will fail
                          if the query returns more than one network.
                        properties:
                          description:
                            type: string
                          id:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                        type: object
                      profile:
                        additionalProperties:
                          type: string
                        description: A dictionary that enables the application running
                          on the specified host to pass and receive virtual network
                          interface (VIF) port-specific information to the plug-in.
                        type: object
                      projectId:
                        type: string
                      securityGroupFilters:
                        description: The names, uuids, filters or any combination
                          these of the security groups to assign to the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      securityGroups:
                        description: The uuids of the security groups to assign to
                          the instance
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      tags:
                        description: Tags applied to the port (and corresponding trunk,
                          if a trunk is configured.) These tags are applied in addition
                          to the instance's tags, which will also be applied to the
                          port.
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      tenantId:
                        type: string
                      trunk:
                        description: Enables and disables trunk at port level. If
                          not provided, openStackMachine.Spec.Trunk is inherited.
                        type: boolean
                      vnicType:
                        description: The virtual network interface card (vNIC) type
                          that is bound to the neutron port.
                        type: string
                    type: object
                  router:
                    description: Router represents basic information about the associated
                      OpenStack Neutron Router.
                    properties:
                      id:
                        type: string
                      ips:
                        items:
                          type: string
                        type: array
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    - name
                    type: object
                  subnet:
                    description: Subnet represents basic information about the associated
                      OpenStack Neutron Subnet.
                    properties:
                      cidr:
                        type: string
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - cidr
                    - id
                    - name
                    type: object
                  tags:
                    items:
                      type: string
                    type: array
                required:
                - id
                - name
                type: object
              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 represent OpenStack availability zones
                type: object
              failureMessage:
                description: "FailureMessage will be set in the event that there is
                  a terminal problem reconciling the OpenStackCluster 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 OpenStackCluster'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 OpenStackClusters
                  can be added as events to the OpenStackCluster 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 OpenStackCluster 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 OpenStackCluster'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 OpenStackClusters can be added
                  as events to the OpenStackCluster object and/or logged in the controller's
                  output."
                type: string
              network:
                description: Network contains all information about the created OpenStack
                  Network. It includes Subnets and Router.
                properties:
                  apiServerLoadBalancer:
                    description: Be careful when using APIServerLoadBalancer, because
                      this field is optional and therefore not set in all cases
                    properties:
                      allowedCIDRs:
                        items:
                          type: string
                        type: array
                      id:
                        type: string
                      internalIP:
                        type: string
                      ip:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - internalIP
                    - ip
                    - name
                    type: object
                  id:
                    type: string
                  name:
                    type: string
                  port:
                    properties:
                      adminStateUp:
                        type: boolean
                      allowedAddressPairs:
                        items:
                          properties:
                            ipAddress:
                              type: string
                            macAddress:
                              type: string
                          type: object
                        type: array
                      description:
                        type: string
                      disablePortSecurity:
                        description: DisablePortSecurity enables or disables the port
                          security when set. When not set, it takes the value of the
                          corresponding field at the network level.
                        type: boolean
                      fixedIPs:
                        description: Specify pairs of subnet and/or IP address. These
                          should be subnets of the network with the given NetworkID.
                        items:
                          properties:
                            ipAddress:
                              type: string
                            subnet:
                              description: Subnet is an openstack subnet query that
                                will return the id of a subnet to create the fixed
                                IP of a port in. This query must not return more than
                                one subnet.
                              properties:
                                cidr:
                                  type: string
                                description:
                                  type: string
                                gateway_ip:
                                  type: string
                                id:
                                  type: string
                                ipVersion:
                                  type: integer
                                ipv6AddressMode:
                                  type: string
                                ipv6RaMode:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                          required:
                          - subnet
                          type: object
                        type: array
                      hostId:
                        description: The ID of the host where the port is allocated
                        type: string
                      macAddress:
                        type: string
                      nameSuffix:
                        description: Used to make the name of the port unique. If
                          unspecified, instead the 0-based index of the port in the
                          list is used.
                        type: string
                      network:
                        description: Network is a query for an openstack network that
                          the port will be created or discovered on. This will fail
                          if the query returns more than one network.
                        properties:
                          description:
                            type: string
                          id:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                        type: object
                      profile:
                        additionalProperties:
                          type: string
                        description: A dictionary that enables the application running
                          on the specified host to pass and receive virtual network
                          interface (VIF) port-specific information to the plug-in.
                        type: object
                      projectId:
                        type: string
                      securityGroupFilters:
                        description: The names, uuids, filters or any combination
                          these of the security groups to assign to the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      securityGroups:
                        description: The uuids of the security groups to assign to
                          the instance
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      tags:
                        description: Tags applied to the port (and corresponding trunk,
                          if a trunk is configured.) These tags are applied in addition
                          to the instance's tags, which will also be applied to the
                          port.
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      tenantId:
                        type: string
                      trunk:
                        description: Enables and disables trunk at port level. If
                          not provided, openStackMachine.Spec.Trunk is inherited.
                        type: boolean
                      vnicType:
                        description: The virtual network interface card (vNIC) type
                          that is bound to the neutron port.
                        type: string
                    type: object
                  router:
                    description: Router represents basic information about the associated
                      OpenStack Neutron Router.
                    properties:
                      id:
                        type: string
                      ips:
                        items:
                          type: string
                        type: array
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    - name
                    type: object
                  subnet:
                    description: Subnet represents basic information about the associated
                      OpenStack Neutron Subnet.
                    properties:
                      cidr:
                        type: string
                      id:
                        type: string
                      name:
                        type: string
                      tags:
                        items:
                          type: string
                        type: array
                    required:
                    - cidr
                    - id
                    - name
                    type: object
                  tags:
                    items:
                      type: string
                    type: array
                required:
                - id
                - name
                type: object
              ready:
                type: boolean
              workerSecurityGroup:
                description: WorkerSecurityGroup contains all the information about
                  the OpenStack Security Group that needs to be applied to worker
                  nodes.
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  rules:
                    items:
                      description: SecurityGroupRule represent the basic information
                        of the associated OpenStack Security Group Role.
                      properties:
                        description:
                          type: string
                        direction:
                          type: string
                        etherType:
                          type: string
                        name:
                          type: string
                        portRangeMax:
                          type: integer
                        portRangeMin:
                          type: integer
                        protocol:
                          type: string
                        remoteGroupID:
                          type: string
                        remoteIPPrefix:
                          type: string
                        securityGroupID:
                          type: string
                      required:
                      - description
                      - direction
                      - etherType
                      - name
                      - portRangeMax
                      - portRangeMin
                      - protocol
                      - remoteGroupID
                      - remoteIPPrefix
                      - securityGroupID
                      type: object
                    type: array
                required:
                - id
                - name
                - rules
                type: object
            required:
            - ready
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cert-manager.io/inject-ca-from: capo-system/capo-serving-cert
    controller-gen.kubebuilder.io/version: v0.10.0
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
    cluster.x-k8s.io/v1alpha3: v1alpha3
    cluster.x-k8s.io/v1beta1: v1alpha4_v1alpha5_v1alpha6
  name: openstackclustertemplates.infrastructure.cluster.x-k8s.io
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        caBundle: Cg==
        service:
          name: capo-webhook-service
          namespace: capo-system
          path: /convert
      conversionReviewVersions:
      - v1
      - v1beta1
  group: infrastructure.cluster.x-k8s.io
  names:
    categories:
    - cluster-api
    kind: OpenStackClusterTemplate
    listKind: OpenStackClusterTemplateList
    plural: openstackclustertemplates
    shortNames:
    - osct
    singular: openstackclustertemplate
  scope: Namespaced
  versions:
  - name: v1alpha4
    schema:
      openAPIV3Schema:
        description: OpenStackClusterTemplate is the Schema for the openstackclustertemplates
          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: OpenStackClusterTemplateSpec defines the desired state of
              OpenStackClusterTemplate.
            properties:
              template:
                description: OpenStackClusterTemplateResource describes the data needed
                  to create a OpenStackCluster from a template.
                properties:
                  spec:
                    description: OpenStackClusterSpec defines the desired state of
                      OpenStackCluster.
                    properties:
                      allowAllInClusterTraffic:
                        description: AllowAllInClusterTraffic is only used when managed
                          security groups are in use. If set to true, the rules for
                          the managed security groups are configured so that all ingress
                          and egress between cluster nodes is permitted, allowing
                          CNIs other than Calico to be used.
                        type: boolean
                      apiServerFixedIP:
                        description: APIServerFixedIP is the fixed IP which will be
                          associated with the API server. In the case where the API
                          server has a floating IP but not a managed load balancer,
                          this field is not used. If a managed load balancer is used
                          and this field is not specified, a fixed IP will be dynamically
                          allocated for the load balancer. If a managed load balancer
                          is not used AND the API server floating IP is disabled,
                          this field MUST be specified and should correspond to a
                          pre-allocated port that holds the fixed IP to be used as
                          a VIP.
                        type: string
                      apiServerFloatingIP:
                        description: APIServerFloatingIP is the floatingIP which will
                          be associated with the API server. The floatingIP will be
                          created if it does not already exist. If not specified,
                          a new floatingIP is allocated. This field is not used if
                          DisableAPIServerFloatingIP is set to true.
                        type: string
                      apiServerLoadBalancerAdditionalPorts:
                        description: APIServerLoadBalancerAdditionalPorts adds additional
                          ports to the APIServerLoadBalancer
                        items:
                          type: integer
                        type: array
                      apiServerPort:
                        description: APIServerPort is the port on which the listener
                          on the APIServer will be created
                        type: integer
                      bastion:
                        description: "Bastion is the OpenStack instance to login the
                          nodes \n As a rolling update is not ideal during a bastion
                          host session, we prevent changes to a running bastion configuration.
                          Set `enabled: false` to make changes."
                        properties:
                          availabilityZone:
                            type: string
                          enabled:
                            type: boolean
                          instance:
                            description: Instance for the bastion itself
                            properties:
                              cloudName:
                                description: The name of the cloud to use from the
                                  clouds secret
                                type: string
                              configDrive:
                                description: Config Drive support
                                type: boolean
                              flavor:
                                description: The flavor reference for the flavor for
                                  your server instance.
                                type: string
                              floatingIP:
                                description: The floatingIP which will be associated
                                  to the machine, only used for master. The floatingIP
                                  should have been created and haven't been associated.
                                type: string
                              identityRef:
                                description: IdentityRef is a reference to a identity
                                  to be used when reconciling this cluster
                                properties:
                                  kind:
                                    description: Kind of the identity. Must be supported
                                      by the infrastructure provider and may be either
                                      cluster or namespace-scoped.
                                    minLength: 1
                                    type: string
                                  name:
                                    description: Name of the infrastructure identity
                                      to be used. Must be either a cluster-scoped
                                      resource, or namespaced-scoped resource the
                                      same namespace as the resource(s) being provisioned.
                                    type: string
                                required:
                                - kind
                                - name
                                type: object
                              image:
                                description: The name of the image to use for your
                                  server instance. If the RootVolume is specified,
                                  this will be ignored and use rootVolume directly.
                                type: string
                              instanceID:
                                description: InstanceID is the OpenStack instance
                                  ID for this machine.
                                type: string
                              networks:
                                description: A networks object. Required parameter
                                  when there are multiple networks defined for the
                                  tenant. When you do not specify both networks and
                                  ports parameters, the server attaches to the only
                                  network created for the current tenant.
                                items:
                                  properties:
                                    filter:
                                      description: Filters for optional network query
                                      properties:
                                        adminStateUp:
                                          type: boolean
                                        description:
                                          type: string
                                        id:
                                          type: string
                                        limit:
                                          type: integer
                                        marker:
                                          type: string
                                        name:
                                          type: string
                                        notTags:
                                          type: string
                                        notTagsAny:
                                          type: string
                                        projectId:
                                          type: string
                                        shared:
                                          type: boolean
                                        sortDir:
                                          type: string
                                        sortKey:
                                          type: string
                                        status:
                                          type: string
                                        tags:
                                          type: string
                                        tagsAny:
                                          type: string
                                        tenantId:
                                          type: string
                                      type: object
                                    fixedIP:
                                      description: A fixed IPv4 address for the NIC.
                                      type: string
                                    subnets:
                                      description: Subnet within a network to use
                                      items:
                                        properties:
                                          filter:
                                            description: Filters for optional subnet
                                              query
                                            properties:
                                              cidr:
                                                type: string
                                              description:
                                                type: string
                                              enableDhcp:
                                                type: boolean
                                              gateway_ip:
                                                type: string
                                              id:
                                                type: string
                                              ipVersion:
                                                type: integer
                                              ipv6AddressMode:
                                                type: string
                                              ipv6RaMode:
                                                type: string
                                              limit:
                                                type: integer
                                              marker:
                                                type: string
                                              name:
                                                type: string
                                              networkId:
                                                type: string
                                              notTags:
                                                type: string
                                              notTagsAny:
                                                type: string
                                              projectId:
                                                type: string
                                              sortDir:
                                                type: string
                                              sortKey:
                                                type: string
                                              subnetpoolId:
                                                type: string
                                              tags:
                                                type: string
                                              tagsAny:
                                                type: string
                                              tenantId:
                                                type: string
                                            type: object
                                          uuid:
                                            description: Optional UUID of the subnet.
                                              If specified this will not be validated
                                              prior to server creation. If specified,
                                              the enclosing `NetworkParam` must also
                                              be specified by UUID.
                                            type: string
                                        type: object
                                      type: array
                                    uuid:
                                      description: Optional UUID of the network. If
                                        specified this will not be validated prior
                                        to server creation. Required if `Subnets`
                                        specifies a subnet by UUID.
                                      type: string
                                  type: object
                                type: array
                              ports:
                                description: Ports to be attached to the server instance.
                                  They are created if a port with the given name does
                                  not already exist. When you do not specify both
                                  networks and ports parameters, the server attaches
                                  to the only network created for the current tenant.
                                items:
                                  properties:
                                    adminStateUp:
                                      type: boolean
                                    allowedAddressPairs:
                                      items:
                                        properties:
                                          ipAddress:
                                            type: string
                                          macAddress:
                                            type: string
                                        type: object
                                      type: array
                                    description:
                                      type: string
                                    disablePortSecurity:
                                      description: DisablePortSecurity enables or
                                        disables the port security when set. When
                                        not set, it takes the value of the corresponding
                                        field at the network level.
                                      type: boolean
                                    fixedIPs:
                                      description: Specify pairs of subnet and/or
                                        IP address. These should be subnets of the
                                        network with the given NetworkID.
                                      items:
                                        properties:
                                          ipAddress:
                                            type: string
                                          subnetId:
                                            type: string
                                        required:
                                        - subnetId
                                        type: object
                                      type: array
                                    hostId:
                                      description: The ID of the host where the port
                                        is allocated
                                      type: string
                                    macAddress:
                                      type: string
                                    nameSuffix:
                                      description: Used to make the name of the port
                                        unique. If unspecified, instead the 0-based
                                        index of the port in the list is used.
                                      type: string
                                    networkId:
                                      description: ID of the OpenStack network on
                                        which to create the port. If unspecified,
                                        create the port on the default cluster network.
                                      type: string
                                    profile:
                                      additionalProperties:
                                        type: string
                                      description: A dictionary that enables the application
                                        running on the specified host to pass and
                                        receive virtual network interface (VIF) port-specific
                                        information to the plug-in.
                                      type: object
                                    projectId:
                                      type: string
                                    securityGroups:
                                      items:
                                        type: string
                                      type: array
                                    tags:
                                      description: Tags applied to the port (and corresponding
                                        trunk, if a trunk is configured.) These tags
                                        are applied in addition to the instance's
                                        tags, which will also be applied to the port.
                                      items:
                                        type: string
                                      type: array
                                    tenantId:
                                      type: string
                                    trunk:
                                      description: Enables and disables trunk at port
                                        level. If not provided, openStackMachine.Spec.Trunk
                                        is inherited.
                                      type: boolean
                                    vnicType:
                                      description: The virtual network interface card
                                        (vNIC) type that is bound to the neutron port.
                                      type: string
                                  type: object
                                type: array
                              providerID:
                                description: ProviderID is the unique identifier as
                                  specified by the cloud provider.
                                type: string
                              rootVolume:
                                description: The volume metadata to boot from
                                properties:
                                  deviceType:
                                    type: string
                                  diskSize:
                                    type: integer
                                  sourceType:
                                    type: string
                                  sourceUUID:
                                    type: string
                                type: object
                              securityGroups:
                                description: The names of the security groups to assign
                                  to the instance
                                items:
                                  properties:
                                    filter:
                                      description: Filters used to query security
                                        groups in openstack
                                      properties:
                                        description:
                                          type: string
                                        id:
                                          type: string
                                        limit:
                                          type: integer
                                        marker:
                                          type: string
                                        name:
                                          type: string
                                        notTags:
                                          type: string
                                        notTagsAny:
                                          type: string
                                        projectId:
                                          type: string
                                        sortDir:
                                          type: string
                                        sortKey:
                                          type: string
                                        tags:
                                          type: string
                                        tagsAny:
                                          type: string
                                        tenantId:
                                          type: string
                                      type: object
                                    name:
                                      description: Security Group name
                                      type: string
                                    uuid:
                                      description: Security Group UID
                                      type: string
                                  type: object
                                type: array
                              serverGroupID:
                                description: The server group to assign the machine
                                  to
                                type: string
                              serverMetadata:
                                additionalProperties:
                                  type: string
                                description: Metadata mapping. Allows you to create
                                  a map of key value pairs to add to the server instance.
                                type: object
                              sshKeyName:
                                description: The ssh key to inject in the instance
                                type: string
                              subnet:
                                description: UUID, IP address of a port from this
                                  subnet will be marked as AccessIPv4 on the created
                                  compute instance
                                type: string
                              tags:
                                description: Machine tags Requires Nova api 2.52 minimum!
                                items:
                                  type: string
                                type: array
                              trunk:
                                description: Whether the server instance is created
                                  on a trunk port or not.
                                type: boolean
                            required:
                            - flavor
                            type: object
                        type: object
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      controlPlaneAvailabilityZones:
                        description: ControlPlaneAvailabilityZones is the az to deploy
                          control plane to
                        items:
                          type: string
                        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
                      disableAPIServerFloatingIP:
                        description: DisableAPIServerFloatingIP determines whether
                          or not to attempt to attach a floating IP to the API server.
                          This allows for the creation of clusters when attaching
                          a floating IP to the API server (and hence, in many cases,
                          exposing the API server to the internet) is not possible
                          or desirable, e.g. if using a shared VLAN for communication
                          between management and workload clusters or when the management
                          cluster is inside the project network. This option requires
                          that the API server use a VIP on the cluster network so
                          that the underlying machines can change without changing
                          ControlPlaneEndpoint.Host. When using a managed load balancer,
                          this VIP will be managed automatically. If not using a managed
                          load balancer, cluster configuration will fail without additional
                          configuration to manage the VIP on the control plane machines,
                          which falls outside of the scope of this controller.
                        type: boolean
                      disablePortSecurity:
                        description: DisablePortSecurity disables the port security
                          of the network created for the Kubernetes cluster, which
                          also disables SecurityGroups
                        type: boolean
                      dnsNameservers:
                        description: DNSNameservers is the list of nameservers for
                          OpenStack Subnet being created. Set this value when you
                          need create a new network/subnet while the access through
                          DNS is required.
                        items:
                          type: string
                        type: array
                      externalNetworkId:
                        description: ExternalNetworkID is the ID of an external OpenStack
                          Network. This is necessary to get public internet to the
                          VMs.
                        type: string
                      externalRouterIPs:
                        description: ExternalRouterIPs is an array of externalIPs
                          on the respective subnets. This is necessary if the router
                          needs a fixed ip in a specific subnet.
                        items:
                          properties:
                            fixedIP:
                              description: The FixedIP in the corresponding subnet
                              type: string
                            subnet:
                              description: The subnet in which the FixedIP is used
                                for the Gateway of this router
                              properties:
                                filter:
                                  description: Filters for optional subnet query
                                  properties:
                                    cidr:
                                      type: string
                                    description:
                                      type: string
                                    enableDhcp:
                                      type: boolean
                                    gateway_ip:
                                      type: string
                                    id:
                                      type: string
                                    ipVersion:
                                      type: integer
                                    ipv6AddressMode:
                                      type: string
                                    ipv6RaMode:
                                      type: string
                                    limit:
                                      type: integer
                                    marker:
                                      type: string
                                    name:
                                      type: string
                                    networkId:
                                      type: string
                                    notTags:
                                      type: string
                                    notTagsAny:
                                      type: string
                                    projectId:
                                      type: string
                                    sortDir:
                                      type: string
                                    sortKey:
                                      type: string
                                    subnetpoolId:
                                      type: string
                                    tags:
                                      type: string
                                    tagsAny:
                                      type: string
                                    tenantId:
                                      type: string
                                  type: object
                                uuid:
                                  description: Optional UUID of the subnet. If specified
                                    this will not be validated prior to server creation.
                                    If specified, the enclosing `NetworkParam` must
                                    also be specified by UUID.
                                  type: string
                              type: object
                          required:
                          - subnet
                          type: object
                        type: array
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      managedAPIServerLoadBalancer:
                        description: ManagedAPIServerLoadBalancer defines whether
                          a LoadBalancer for the APIServer should be created.
                        type: boolean
                      managedSecurityGroups:
                        description: ManagedSecurityGroups determines whether OpenStack
                          security groups for the cluster will be managed by the OpenStack
                          provider or whether pre-existing security groups will be
                          specified as part of the configuration. By default, the
                          managed security groups have rules that allow the Kubelet,
                          etcd, the Kubernetes API server and the Calico CNI plugin
                          to function correctly.
                        type: boolean
                      network:
                        description: If NodeCIDR cannot be set this can be used to
                          detect an existing network.
                        properties:
                          adminStateUp:
                            type: boolean
                          description:
                            type: string
                          id:
                            type: string
                          limit:
                            type: integer
                          marker:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          shared:
                            type: boolean
                          sortDir:
                            type: string
                          sortKey:
                            type: string
                          status:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                          tenantId:
                            type: string
                        type: object
                      nodeCidr:
                        description: NodeCIDR is the OpenStack Subnet to be created.
                          Cluster actuator will create a network, a subnet with NodeCIDR,
                          and a router connected to this subnet. If you leave this
                          empty, no network will be created.
                        type: string
                      subnet:
                        description: If NodeCIDR cannot be set this can be used to
                          detect an existing subnet.
                        properties:
                          cidr:
                            type: string
                          description:
                            type: string
                          enableDhcp:
                            type: boolean
                          gateway_ip:
                            type: string
                          id:
                            type: string
                          ipVersion:
                            type: integer
                          ipv6AddressMode:
                            type: string
                          ipv6RaMode:
                            type: string
                          limit:
                            type: integer
                          marker:
                            type: string
                          name:
                            type: string
                          networkId:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          sortDir:
                            type: string
                          sortKey:
                            type: string
                          subnetpoolId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                          tenantId:
                            type: string
                        type: object
                      tags:
                        description: Tags for all resources in cluster
                        items:
                          type: string
                        type: array
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: false
  - name: v1alpha5
    schema:
      openAPIV3Schema:
        description: OpenStackClusterTemplate is the Schema for the openstackclustertemplates
          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: OpenStackClusterTemplateSpec defines the desired state of
              OpenStackClusterTemplate.
            properties:
              template:
                description: OpenStackClusterTemplateResource describes the data needed
                  to create a OpenStackCluster from a template.
                properties:
                  spec:
                    description: OpenStackClusterSpec defines the desired state of
                      OpenStackCluster.
                    properties:
                      allowAllInClusterTraffic:
                        description: AllowAllInClusterTraffic is only used when managed
                          security groups are in use. If set to true, the rules for
                          the managed security groups are configured so that all ingress
                          and egress between cluster nodes is permitted, allowing
                          CNIs other than Calico to be used.
                        type: boolean
                      apiServerFixedIP:
                        description: APIServerFixedIP is the fixed IP which will be
                          associated with the API server. In the case where the API
                          server has a floating IP but not a managed load balancer,
                          this field is not used. If a managed load balancer is used
                          and this field is not specified, a fixed IP will be dynamically
                          allocated for the load balancer. If a managed load balancer
                          is not used AND the API server floating IP is disabled,
                          this field MUST be specified and should correspond to a
                          pre-allocated port that holds the fixed IP to be used as
                          a VIP.
                        type: string
                      apiServerFloatingIP:
                        description: APIServerFloatingIP is the floatingIP which will
                          be associated with the API server. The floatingIP will be
                          created if it does not already exist. If not specified,
                          a new floatingIP is allocated. This field is not used if
                          DisableAPIServerFloatingIP is set to true.
                        type: string
                      apiServerLoadBalancer:
                        description: 'APIServerLoadBalancer configures the optional
                          LoadBalancer for the APIServer. It must be activated by
                          setting `enabled: true`.'
                        properties:
                          additionalPorts:
                            description: AdditionalPorts adds additional tcp ports
                              to the load balancer.
                            items:
                              type: integer
                            type: array
                          allowedCidrs:
                            description: AllowedCIDRs restrict access to all API-Server
                              listeners to the given address CIDRs.
                            items:
                              type: string
                            type: array
                          enabled:
                            description: Enabled defines whether a load balancer should
                              be created.
                            type: boolean
                        type: object
                      apiServerPort:
                        description: APIServerPort is the port on which the listener
                          on the APIServer will be created
                        type: integer
                      bastion:
                        description: "Bastion is the OpenStack instance to login the
                          nodes \n As a rolling update is not ideal during a bastion
                          host session, we prevent changes to a running bastion configuration.
                          Set `enabled: false` to make changes."
                        properties:
                          availabilityZone:
                            type: string
                          enabled:
                            type: boolean
                          instance:
                            description: Instance for the bastion itself
                            properties:
                              cloudName:
                                description: The name of the cloud to use from the
                                  clouds secret
                                type: string
                              configDrive:
                                description: Config Drive support
                                type: boolean
                              flavor:
                                description: The flavor reference for the flavor for
                                  your server instance.
                                type: string
                              floatingIP:
                                description: The floatingIP which will be associated
                                  to the machine, only used for master. The floatingIP
                                  should have been created and haven't been associated.
                                type: string
                              identityRef:
                                description: IdentityRef is a reference to a identity
                                  to be used when reconciling this cluster
                                properties:
                                  kind:
                                    description: Kind of the identity. Must be supported
                                      by the infrastructure provider and may be either
                                      cluster or namespace-scoped.
                                    minLength: 1
                                    type: string
                                  name:
                                    description: Name of the infrastructure identity
                                      to be used. Must be either a cluster-scoped
                                      resource, or namespaced-scoped resource the
                                      same namespace as the resource(s) being provisioned.
                                    type: string
                                required:
                                - kind
                                - name
                                type: object
                              image:
                                description: The name of the image to use for your
                                  server instance. If the RootVolume is specified,
                                  this will be ignored and use rootVolume directly.
                                type: string
                              imageUUID:
                                description: The uuid of the image to use for your
                                  server instance. if it's empty, Image name will
                                  be used
                                type: string
                              instanceID:
                                description: InstanceID is the OpenStack instance
                                  ID for this machine.
                                type: string
                              networks:
                                description: A networks object. Required parameter
                                  when there are multiple networks defined for the
                                  tenant. When you do not specify both networks and
                                  ports parameters, the server attaches to the only
                                  network created for the current tenant.
                                items:
                                  properties:
                                    filter:
                                      description: Filters for optional network query
                                      properties:
                                        description:
                                          type: string
                                        id:
                                          type: string
                                        name:
                                          type: string
                                        notTags:
                                          type: string
                                        notTagsAny:
                                          type: string
                                        projectId:
                                          type: string
                                        tags:
                                          type: string
                                        tagsAny:
                                          type: string
                                      type: object
                                    fixedIP:
                                      description: A fixed IPv4 address for the NIC.
                                      type: string
                                    subnets:
                                      description: Subnet within a network to use
                                      items:
                                        properties:
                                          filter:
                                            description: Filters for optional subnet
                                              query
                                            properties:
                                              cidr:
                                                type: string
                                              description:
                                                type: string
                                              gateway_ip:
                                                type: string
                                              id:
                                                type: string
                                              ipVersion:
                                                type: integer
                                              ipv6AddressMode:
                                                type: string
                                              ipv6RaMode:
                                                type: string
                                              name:
                                                type: string
                                              notTags:
                                                type: string
                                              notTagsAny:
                                                type: string
                                              projectId:
                                                type: string
                                              tags:
                                                type: string
                                              tagsAny:
                                                type: string
                                            type: object
                                          uuid:
                                            description: Optional UUID of the subnet.
                                              If specified this will not be validated
                                              prior to server creation. If specified,
                                              the enclosing `NetworkParam` must also
                                              be specified by UUID.
                                            type: string
                                        type: object
                                      type: array
                                    uuid:
                                      description: Optional UUID of the network. If
                                        specified this will not be validated prior
                                        to server creation. Required if `Subnets`
                                        specifies a subnet by UUID.
                                      type: string
                                  type: object
                                type: array
                              ports:
                                description: Ports to be attached to the server instance.
                                  They are created if a port with the given name does
                                  not already exist. When you do not specify both
                                  networks and ports parameters, the server attaches
                                  to the only network created for the current tenant.
                                items:
                                  properties:
                                    adminStateUp:
                                      type: boolean
                                    allowedAddressPairs:
                                      items:
                                        properties:
                                          ipAddress:
                                            type: string
                                          macAddress:
                                            type: string
                                        type: object
                                      type: array
                                    description:
                                      type: string
                                    disablePortSecurity:
                                      description: DisablePortSecurity enables or
                                        disables the port security when set. When
                                        not set, it takes the value of the corresponding
                                        field at the network level.
                                      type: boolean
                                    fixedIPs:
                                      description: Specify pairs of subnet and/or
                                        IP address. These should be subnets of the
                                        network with the given NetworkID.
                                      items:
                                        properties:
                                          ipAddress:
                                            type: string
                                          subnet:
                                            description: Subnet is an openstack subnet
                                              query that will return the id of a subnet
                                              to create the fixed IP of a port in.
                                              This query must not return more than
                                              one subnet.
                                            properties:
                                              cidr:
                                                type: string
                                              description:
                                                type: string
                                              gateway_ip:
                                                type: string
                                              id:
                                                type: string
                                              ipVersion:
                                                type: integer
                                              ipv6AddressMode:
                                                type: string
                                              ipv6RaMode:
                                                type: string
                                              name:
                                                type: string
                                              notTags:
                                                type: string
                                              notTagsAny:
                                                type: string
                                              projectId:
                                                type: string
                                              tags:
                                                type: string
                                              tagsAny:
                                                type: string
                                            type: object
                                        required:
                                        - subnet
                                        type: object
                                      type: array
                                    hostId:
                                      description: The ID of the host where the port
                                        is allocated
                                      type: string
                                    macAddress:
                                      type: string
                                    nameSuffix:
                                      description: Used to make the name of the port
                                        unique. If unspecified, instead the 0-based
                                        index of the port in the list is used.
                                      type: string
                                    network:
                                      description: Network is a query for an openstack
                                        network that the port will be created or discovered
                                        on. This will fail if the query returns more
                                        than one network.
                                      properties:
                                        description:
                                          type: string
                                        id:
                                          type: string
                                        name:
                                          type: string
                                        notTags:
                                          type: string
                                        notTagsAny:
                                          type: string
                                        projectId:
                                          type: string
                                        tags:
                                          type: string
                                        tagsAny:
                                          type: string
                                      type: object
                                    profile:
                                      additionalProperties:
                                        type: string
                                      description: A dictionary that enables the application
                                        running on the specified host to pass and
                                        receive virtual network interface (VIF) port-specific
                                        information to the plug-in.
                                      type: object
                                    projectId:
                                      type: string
                                    securityGroupFilters:
                                      description: The names, uuids, filters or any
                                        combination these of the security groups to
                                        assign to the instance
                                      items:
                                        properties:
                                          filter:
                                            description: Filters used to query security
                                              groups in openstack
                                            properties:
                                              description:
                                                type: string
                                              id:
                                                type: string
                                              limit:
                                                type: integer
                                              marker:
                                                type: string
                                              name:
                                                type: string
                                              notTags:
                                                type: string
                                              notTagsAny:
                                                type: string
                                              projectId:
                                                type: string
                                              sortDir:
                                                type: string
                                              sortKey:
                                                type: string
                                              tags:
                                                type: string
                                              tagsAny:
                                                type: string
                                              tenantId:
                                                type: string
                                            type: object
                                          name:
                                            description: Security Group name
                                            type: string
                                          uuid:
                                            description: Security Group UID
                                            type: string
                                        type: object
                                      type: array
                                    securityGroups:
                                      description: The uuids of the security groups
                                        to assign to the instance
                                      items:
                                        type: string
                                      type: array
                                    tags:
                                      description: Tags applied to the port (and corresponding
                                        trunk, if a trunk is configured.) These tags
                                        are applied in addition to the instance's
                                        tags, which will also be applied to the port.
                                      items:
                                        type: string
                                      type: array
                                    tenantId:
                                      type: string
                                    trunk:
                                      description: Enables and disables trunk at port
                                        level. If not provided, openStackMachine.Spec.Trunk
                                        is inherited.
                                      type: boolean
                                    vnicType:
                                      description: The virtual network interface card
                                        (vNIC) type that is bound to the neutron port.
                                      type: string
                                  type: object
                                type: array
                              providerID:
                                description: ProviderID is the unique identifier as
                                  specified by the cloud provider.
                                type: string
                              rootVolume:
                                description: The volume metadata to boot from
                                properties:
                                  availabilityZone:
                                    type: string
                                  diskSize:
                                    type: integer
                                  volumeType:
                                    type: string
                                type: object
                              securityGroups:
                                description: The names of the security groups to assign
                                  to the instance
                                items:
                                  properties:
                                    filter:
                                      description: Filters used to query security
                                        groups in openstack
                                      properties:
                                        description:
                                          type: string
                                        id:
                                          type: string
                                        limit:
                                          type: integer
                                        marker:
                                          type: string
                                        name:
                                          type: string
                                        notTags:
                                          type: string
                                        notTagsAny:
                                          type: string
                                        projectId:
                                          type: string
                                        sortDir:
                                          type: string
                                        sortKey:
                                          type: string
                                        tags:
                                          type: string
                                        tagsAny:
                                          type: string
                                        tenantId:
                                          type: string
                                      type: object
                                    name:
                                      description: Security Group name
                                      type: string
                                    uuid:
                                      description: Security Group UID
                                      type: string
                                  type: object
                                type: array
                              serverGroupID:
                                description: The server group to assign the machine
                                  to
                                type: string
                              serverMetadata:
                                additionalProperties:
                                  type: string
                                description: Metadata mapping. Allows you to create
                                  a map of key value pairs to add to the server instance.
                                type: object
                              sshKeyName:
                                description: The ssh key to inject in the instance
                                type: string
                              subnet:
                                description: UUID, IP address of a port from this
                                  subnet will be marked as AccessIPv4 on the created
                                  compute instance
                                type: string
                              tags:
                                description: Machine tags Requires Nova api 2.52 minimum!
                                items:
                                  type: string
                                type: array
                              trunk:
                                description: Whether the server instance is created
                                  on a trunk port or not.
                                type: boolean
                            required:
                            - flavor
                            type: object
                        type: object
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      controlPlaneAvailabilityZones:
                        description: ControlPlaneAvailabilityZones is the az to deploy
                          control plane to
                        items:
                          type: string
                        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
                      disableAPIServerFloatingIP:
                        description: DisableAPIServerFloatingIP determines whether
                          or not to attempt to attach a floating IP to the API server.
                          This allows for the creation of clusters when attaching
                          a floating IP to the API server (and hence, in many cases,
                          exposing the API server to the internet) is not possible
                          or desirable, e.g. if using a shared VLAN for communication
                          between management and workload clusters or when the management
                          cluster is inside the project network. This option requires
                          that the API server use a VIP on the cluster network so
                          that the underlying machines can change without changing
                          ControlPlaneEndpoint.Host. When using a managed load balancer,
                          this VIP will be managed automatically. If not using a managed
                          load balancer, cluster configuration will fail without additional
                          configuration to manage the VIP on the control plane machines,
                          which falls outside of the scope of this controller.
                        type: boolean
                      disablePortSecurity:
                        description: DisablePortSecurity disables the port security
                          of the network created for the Kubernetes cluster, which
                          also disables SecurityGroups
                        type: boolean
                      dnsNameservers:
                        description: DNSNameservers is the list of nameservers for
                          OpenStack Subnet being created. Set this value when you
                          need create a new network/subnet while the access through
                          DNS is required.
                        items:
                          type: string
                        type: array
                      externalNetworkId:
                        description: ExternalNetworkID is the ID of an external OpenStack
                          Network. This is necessary to get public internet to the
                          VMs.
                        type: string
                      externalRouterIPs:
                        description: ExternalRouterIPs is an array of externalIPs
                          on the respective subnets. This is necessary if the router
                          needs a fixed ip in a specific subnet.
                        items:
                          properties:
                            fixedIP:
                              description: The FixedIP in the corresponding subnet
                              type: string
                            subnet:
                              description: The subnet in which the FixedIP is used
                                for the Gateway of this router
                              properties:
                                filter:
                                  description: Filters for optional subnet query
                                  properties:
                                    cidr:
                                      type: string
                                    description:
                                      type: string
                                    gateway_ip:
                                      type: string
                                    id:
                                      type: string
                                    ipVersion:
                                      type: integer
                                    ipv6AddressMode:
                                      type: string
                                    ipv6RaMode:
                                      type: string
                                    name:
                                      type: string
                                    notTags:
                                      type: string
                                    notTagsAny:
                                      type: string
                                    projectId:
                                      type: string
                                    tags:
                                      type: string
                                    tagsAny:
                                      type: string
                                  type: object
                                uuid:
                                  description: Optional UUID of the subnet. If specified
                                    this will not be validated prior to server creation.
                                    If specified, the enclosing `NetworkParam` must
                                    also be specified by UUID.
                                  type: string
                              type: object
                          required:
                          - subnet
                          type: object
                        type: array
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      managedSecurityGroups:
                        description: ManagedSecurityGroups determines whether OpenStack
                          security groups for the cluster will be managed by the OpenStack
                          provider or whether pre-existing security groups will be
                          specified as part of the configuration. By default, the
                          managed security groups have rules that allow the Kubelet,
                          etcd, the Kubernetes API server and the Calico CNI plugin
                          to function correctly.
                        type: boolean
                      network:
                        description: If NodeCIDR cannot be set this can be used to
                          detect an existing network.
                        properties:
                          description:
                            type: string
                          id:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                        type: object
                      nodeCidr:
                        description: NodeCIDR is the OpenStack Subnet to be created.
                          Cluster actuator will create a network, a subnet with NodeCIDR,
                          and a router connected to this subnet. If you leave this
                          empty, no network will be created.
                        type: string
                      subnet:
                        description: If NodeCIDR cannot be set this can be used to
                          detect an existing subnet.
                        properties:
                          cidr:
                            type: string
                          description:
                            type: string
                          gateway_ip:
                            type: string
                          id:
                            type: string
                          ipVersion:
                            type: integer
                          ipv6AddressMode:
                            type: string
                          ipv6RaMode:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                        type: object
                      tags:
                        description: Tags for all resources in cluster
                        items:
                          type: string
                        type: array
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: false
  - name: v1alpha6
    schema:
      openAPIV3Schema:
        description: OpenStackClusterTemplate is the Schema for the openstackclustertemplates
          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: OpenStackClusterTemplateSpec defines the desired state of
              OpenStackClusterTemplate.
            properties:
              template:
                description: OpenStackClusterTemplateResource describes the data needed
                  to create a OpenStackCluster from a template.
                properties:
                  spec:
                    description: OpenStackClusterSpec defines the desired state of
                      OpenStackCluster.
                    properties:
                      allowAllInClusterTraffic:
                        description: AllowAllInClusterTraffic is only used when managed
                          security groups are in use. If set to true, the rules for
                          the managed security groups are configured so that all ingress
                          and egress between cluster nodes is permitted, allowing
                          CNIs other than Calico to be used.
                        type: boolean
                      apiServerFixedIP:
                        description: APIServerFixedIP is the fixed IP which will be
                          associated with the API server. In the case where the API
                          server has a floating IP but not a managed load balancer,
                          this field is not used. If a managed load balancer is used
                          and this field is not specified, a fixed IP will be dynamically
                          allocated for the load balancer. If a managed load balancer
                          is not used AND the API server floating IP is disabled,
                          this field MUST be specified and should correspond to a
                          pre-allocated port that holds the fixed IP to be used as
                          a VIP.
                        type: string
                      apiServerFloatingIP:
                        description: APIServerFloatingIP is the floatingIP which will
                          be associated with the API server. The floatingIP will be
                          created if it does not already exist. If not specified,
                          a new floatingIP is allocated. This field is not used if
                          DisableAPIServerFloatingIP is set to true.
                        type: string
                      apiServerLoadBalancer:
                        description: 'APIServerLoadBalancer configures the optional
                          LoadBalancer for the APIServer. It must be activated by
                          setting `enabled: true`.'
                        properties:
                          additionalPorts:
                            description: AdditionalPorts adds additional tcp ports
                              to the load balancer.
                            items:
                              type: integer
                            type: array
                          allowedCidrs:
                            description: AllowedCIDRs restrict access to all API-Server
                              listeners to the given address CIDRs.
                            items:
                              type: string
                            type: array
                          enabled:
                            description: Enabled defines whether a load balancer should
                              be created.
                            type: boolean
                        type: object
                      apiServerPort:
                        description: APIServerPort is the port on which the listener
                          on the APIServer will be created
                        type: integer
                      bastion:
                        description: "Bastion is the OpenStack instance to login the
                          nodes \n As a rolling update is not ideal during a bastion
                          host session, we prevent changes to a running bastion configuration.
                          Set `enabled: false` to make changes."
                        properties:
                          availabilityZone:
                            type: string
                          enabled:
                            type: boolean
                          instance:
                            description: Instance for the bastion itself
                            properties:
                              cloudName:
                                description: The name of the cloud to use from the
                                  clouds secret
                                type: string
                              configDrive:
                                description: Config Drive support
                                type: boolean
                              flavor:
                                description: The flavor reference for the flavor for
                                  your server instance.
                                type: string
                              floatingIP:
                                description: The floatingIP which will be associated
                                  to the machine, only used for master. The floatingIP
                                  should have been created and haven't been associated.
                                type: string
                              identityRef:
                                description: IdentityRef is a reference to a identity
                                  to be used when reconciling this cluster
                                properties:
                                  kind:
                                    description: Kind of the identity. Must be supported
                                      by the infrastructure provider and may be either
                                      cluster or namespace-scoped.
                                    minLength: 1
                                    type: string
                                  name:
                                    description: Name of the infrastructure identity
                                      to be used. Must be either a cluster-scoped
                                      resource, or namespaced-scoped resource the
                                      same namespace as the resource(s) being provisioned.
                                    type: string
                                required:
                                - kind
                                - name
                                type: object
                              image:
                                description: The name of the image to use for your
                                  server instance. If the RootVolume is specified,
                                  this will be ignored and use rootVolume directly.
                                type: string
                              imageUUID:
                                description: The uuid of the image to use for your
                                  server instance. if it's empty, Image name will
                                  be used
                                type: string
                              instanceID:
                                description: InstanceID is the OpenStack instance
                                  ID for this machine.
                                type: string
                              networks:
                                description: A networks object. Required parameter
                                  when there are multiple networks defined for the
                                  tenant. When you do not specify both networks and
                                  ports parameters, the server attaches to the only
                                  network created for the current tenant.
                                items:
                                  properties:
                                    filter:
                                      description: Filters for optional network query
                                      properties:
                                        description:
                                          type: string
                                        id:
                                          type: string
                                        name:
                                          type: string
                                        notTags:
                                          type: string
                                        notTagsAny:
                                          type: string
                                        projectId:
                                          type: string
                                        tags:
                                          type: string
                                        tagsAny:
                                          type: string
                                      type: object
                                    fixedIP:
                                      description: A fixed IPv4 address for the NIC.
                                      type: string
                                    subnets:
                                      description: Subnet within a network to use
                                      items:
                                        properties:
                                          filter:
                                            description: Filters for optional subnet
                                              query
                                            properties:
                                              cidr:
                                                type: string
                                              description:
                                                type: string
                                              gateway_ip:
                                                type: string
                                              id:
                                                type: string
                                              ipVersion:
                                                type: integer
                                              ipv6AddressMode:
                                                type: string
                                              ipv6RaMode:
                                                type: string
                                              name:
                                                type: string
                                              notTags:
                                                type: string
                                              notTagsAny:
                                                type: string
                                              projectId:
                                                type: string
                                              tags:
                                                type: string
                                              tagsAny:
                                                type: string
                                            type: object
                                          uuid:
                                            description: Optional UUID of the subnet.
                                              If specified this will not be validated
                                              prior to server creation. If specified,
                                              the enclosing `NetworkParam` must also
                                              be specified by UUID.
                                            type: string
                                        type: object
                                      type: array
                                    uuid:
                                      description: Optional UUID of the network. If
                                        specified this will not be validated prior
                                        to server creation. Required if `Subnets`
                                        specifies a subnet by UUID.
                                      type: string
                                  type: object
                                type: array
                              ports:
                                description: Ports to be attached to the server instance.
                                  They are created if a port with the given name does
                                  not already exist. When you do not specify both
                                  networks and ports parameters, the server attaches
                                  to the only network created for the current tenant.
                                items:
                                  properties:
                                    adminStateUp:
                                      type: boolean
                                    allowedAddressPairs:
                                      items:
                                        properties:
                                          ipAddress:
                                            type: string
                                          macAddress:
                                            type: string
                                        type: object
                                      type: array
                                    description:
                                      type: string
                                    disablePortSecurity:
                                      description: DisablePortSecurity enables or
                                        disables the port security when set. When
                                        not set, it takes the value of the corresponding
                                        field at the network level.
                                      type: boolean
                                    fixedIPs:
                                      description: Specify pairs of subnet and/or
                                        IP address. These should be subnets of the
                                        network with the given NetworkID.
                                      items:
                                        properties:
                                          ipAddress:
                                            type: string
                                          subnet:
                                            description: Subnet is an openstack subnet
                                              query that will return the id of a subnet
                                              to create the fixed IP of a port in.
                                              This query must not return more than
                                              one subnet.
                                            properties:
                                              cidr:
                                                type: string
                                              description:
                                                type: string
                                              gateway_ip:
                                                type: string
                                              id:
                                                type: string
                                              ipVersion:
                                                type: integer
                                              ipv6AddressMode:
                                                type: string
                                              ipv6RaMode:
                                                type: string
                                              name:
                                                type: string
                                              notTags:
                                                type: string
                                              notTagsAny:
                                                type: string
                                              projectId:
                                                type: string
                                              tags:
                                                type: string
                                              tagsAny:
                                                type: string
                                            type: object
                                        required:
                                        - subnet
                                        type: object
                                      type: array
                                    hostId:
                                      description: The ID of the host where the port
                                        is allocated
                                      type: string
                                    macAddress:
                                      type: string
                                    nameSuffix:
                                      description: Used to make the name of the port
                                        unique. If unspecified, instead the 0-based
                                        index of the port in the list is used.
                                      type: string
                                    network:
                                      description: Network is a query for an openstack
                                        network that the port will be created or discovered
                                        on. This will fail if the query returns more
                                        than one network.
                                      properties:
                                        description:
                                          type: string
                                        id:
                                          type: string
                                        name:
                                          type: string
                                        notTags:
                                          type: string
                                        notTagsAny:
                                          type: string
                                        projectId:
                                          type: string
                                        tags:
                                          type: string
                                        tagsAny:
                                          type: string
                                      type: object
                                    profile:
                                      additionalProperties:
                                        type: string
                                      description: A dictionary that enables the application
                                        running on the specified host to pass and
                                        receive virtual network interface (VIF) port-specific
                                        information to the plug-in.
                                      type: object
                                    projectId:
                                      type: string
                                    securityGroupFilters:
                                      description: The names, uuids, filters or any
                                        combination these of the security groups to
                                        assign to the instance
                                      items:
                                        properties:
                                          filter:
                                            description: Filters used to query security
                                              groups in openstack
                                            properties:
                                              description:
                                                type: string
                                              id:
                                                type: string
                                              limit:
                                                type: integer
                                              marker:
                                                type: string
                                              name:
                                                type: string
                                              notTags:
                                                type: string
                                              notTagsAny:
                                                type: string
                                              projectId:
                                                type: string
                                              sortDir:
                                                type: string
                                              sortKey:
                                                type: string
                                              tags:
                                                type: string
                                              tagsAny:
                                                type: string
                                              tenantId:
                                                type: string
                                            type: object
                                          name:
                                            description: Security Group name
                                            type: string
                                          uuid:
                                            description: Security Group UID
                                            type: string
                                        type: object
                                      type: array
                                    securityGroups:
                                      description: The uuids of the security groups
                                        to assign to the instance
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: set
                                    tags:
                                      description: Tags applied to the port (and corresponding
                                        trunk, if a trunk is configured.) These tags
                                        are applied in addition to the instance's
                                        tags, which will also be applied to the port.
                                      items:
                                        type: string
                                      type: array
                                      x-kubernetes-list-type: set
                                    tenantId:
                                      type: string
                                    trunk:
                                      description: Enables and disables trunk at port
                                        level. If not provided, openStackMachine.Spec.Trunk
                                        is inherited.
                                      type: boolean
                                    vnicType:
                                      description: The virtual network interface card
                                        (vNIC) type that is bound to the neutron port.
                                      type: string
                                  type: object
                                type: array
                              providerID:
                                description: ProviderID is the unique identifier as
                                  specified by the cloud provider.
                                type: string
                              rootVolume:
                                description: The volume metadata to boot from
                                properties:
                                  availabilityZone:
                                    type: string
                                  diskSize:
                                    type: integer
                                  volumeType:
                                    type: string
                                type: object
                              securityGroups:
                                description: The names of the security groups to assign
                                  to the instance
                                items:
                                  properties:
                                    filter:
                                      description: Filters used to query security
                                        groups in openstack
                                      properties:
                                        description:
                                          type: string
                                        id:
                                          type: string
                                        limit:
                                          type: integer
                                        marker:
                                          type: string
                                        name:
                                          type: string
                                        notTags:
                                          type: string
                                        notTagsAny:
                                          type: string
                                        projectId:
                                          type: string
                                        sortDir:
                                          type: string
                                        sortKey:
                                          type: string
                                        tags:
                                          type: string
                                        tagsAny:
                                          type: string
                                        tenantId:
                                          type: string
                                      type: object
                                    name:
                                      description: Security Group name
                                      type: string
                                    uuid:
                                      description: Security Group UID
                                      type: string
                                  type: object
                                type: array
                              serverGroupID:
                                description: The server group to assign the machine
                                  to
                                type: string
                              serverMetadata:
                                additionalProperties:
                                  type: string
                                description: Metadata mapping. Allows you to create
                                  a map of key value pairs to add to the server instance.
                                type: object
                              sshKeyName:
                                description: The ssh key to inject in the instance
                                type: string
                              subnet:
                                description: UUID, IP address of a port from this
                                  subnet will be marked as AccessIPv4 on the created
                                  compute instance
                                type: string
                              tags:
                                description: Machine tags Requires Nova api 2.52 minimum!
                                items:
                                  type: string
                                type: array
                                x-kubernetes-list-type: set
                              trunk:
                                description: Whether the server instance is created
                                  on a trunk port or not.
                                type: boolean
                            required:
                            - flavor
                            type: object
                        type: object
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      controlPlaneAvailabilityZones:
                        description: ControlPlaneAvailabilityZones is the az to deploy
                          control plane to
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      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
                      controlPlaneOmitAvailabilityZone:
                        description: Indicates whether to omit the az for control
                          plane nodes, allowing the Nova scheduler to make a decision
                          on which az to use based on other scheduling constraints
                        type: boolean
                      disableAPIServerFloatingIP:
                        description: DisableAPIServerFloatingIP determines whether
                          or not to attempt to attach a floating IP to the API server.
                          This allows for the creation of clusters when attaching
                          a floating IP to the API server (and hence, in many cases,
                          exposing the API server to the internet) is not possible
                          or desirable, e.g. if using a shared VLAN for communication
                          between management and workload clusters or when the management
                          cluster is inside the project network. This option requires
                          that the API server use a VIP on the cluster network so
                          that the underlying machines can change without changing
                          ControlPlaneEndpoint.Host. When using a managed load balancer,
                          this VIP will be managed automatically. If not using a managed
                          load balancer, cluster configuration will fail without additional
                          configuration to manage the VIP on the control plane machines,
                          which falls outside of the scope of this controller.
                        type: boolean
                      disablePortSecurity:
                        description: DisablePortSecurity disables the port security
                          of the network created for the Kubernetes cluster, which
                          also disables SecurityGroups
                        type: boolean
                      dnsNameservers:
                        description: DNSNameservers is the list of nameservers for
                          OpenStack Subnet being created. Set this value when you
                          need create a new network/subnet while the access through
                          DNS is required.
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      externalNetworkId:
                        description: ExternalNetworkID is the ID of an external OpenStack
                          Network. This is necessary to get public internet to the
                          VMs.
                        type: string
                      externalRouterIPs:
                        description: ExternalRouterIPs is an array of externalIPs
                          on the respective subnets. This is necessary if the router
                          needs a fixed ip in a specific subnet.
                        items:
                          properties:
                            fixedIP:
                              description: The FixedIP in the corresponding subnet
                              type: string
                            subnet:
                              description: The subnet in which the FixedIP is used
                                for the Gateway of this router
                              properties:
                                filter:
                                  description: Filters for optional subnet query
                                  properties:
                                    cidr:
                                      type: string
                                    description:
                                      type: string
                                    gateway_ip:
                                      type: string
                                    id:
                                      type: string
                                    ipVersion:
                                      type: integer
                                    ipv6AddressMode:
                                      type: string
                                    ipv6RaMode:
                                      type: string
                                    name:
                                      type: string
                                    notTags:
                                      type: string
                                    notTagsAny:
                                      type: string
                                    projectId:
                                      type: string
                                    tags:
                                      type: string
                                    tagsAny:
                                      type: string
                                  type: object
                                uuid:
                                  description: Optional UUID of the subnet. If specified
                                    this will not be validated prior to server creation.
                                    If specified, the enclosing `NetworkParam` must
                                    also be specified by UUID.
                                  type: string
                              type: object
                          required:
                          - subnet
                          type: object
                        type: array
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      managedSecurityGroups:
                        description: ManagedSecurityGroups determines whether OpenStack
                          security groups for the cluster will be managed by the OpenStack
                          provider or whether pre-existing security groups will be
                          specified as part of the configuration. By default, the
                          managed security groups have rules that allow the Kubelet,
                          etcd, the Kubernetes API server and the Calico CNI plugin
                          to function correctly.
                        type: boolean
                      network:
                        description: If NodeCIDR cannot be set this can be used to
                          detect an existing network.
                        properties:
                          description:
                            type: string
                          id:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                        type: object
                      nodeCidr:
                        description: NodeCIDR is the OpenStack Subnet to be created.
                          Cluster actuator will create a network, a subnet with NodeCIDR,
                          and a router connected to this subnet. If you leave this
                          empty, no network will be created.
                        type: string
                      subnet:
                        description: If NodeCIDR cannot be set this can be used to
                          detect an existing subnet.
                        properties:
                          cidr:
                            type: string
                          description:
                            type: string
                          gateway_ip:
                            type: string
                          id:
                            type: string
                          ipVersion:
                            type: integer
                          ipv6AddressMode:
                            type: string
                          ipv6RaMode:
                            type: string
                          name:
                            type: string
                          notTags:
                            type: string
                          notTagsAny:
                            type: string
                          projectId:
                            type: string
                          tags:
                            type: string
                          tagsAny:
                            type: string
                        type: object
                      tags:
                        description: Tags for all resources in cluster
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cert-manager.io/inject-ca-from: capo-system/capo-serving-cert
    controller-gen.kubebuilder.io/version: v0.10.0
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
    cluster.x-k8s.io/v1alpha3: v1alpha3
    cluster.x-k8s.io/v1beta1: v1alpha4_v1alpha5_v1alpha6
  name: openstackmachines.infrastructure.cluster.x-k8s.io
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        caBundle: Cg==
        service:
          name: capo-webhook-service
          namespace: capo-system
          path: /convert
      conversionReviewVersions:
      - v1
      - v1beta1
  group: infrastructure.cluster.x-k8s.io
  names:
    categories:
    - cluster-api
    kind: OpenStackMachine
    listKind: OpenStackMachineList
    plural: openstackmachines
    shortNames:
    - osm
    singular: openstackmachine
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: Cluster to which this OpenStackMachine belongs
      jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
      name: Cluster
      type: string
    - description: OpenStack instance state
      jsonPath: .status.instanceState
      name: InstanceState
      type: string
    - description: Machine ready status
      jsonPath: .status.ready
      name: Ready
      type: string
    - description: OpenStack instance ID
      jsonPath: .spec.providerID
      name: ProviderID
      type: string
    - description: Machine object which owns with this OpenStackMachine
      jsonPath: .metadata.ownerReferences[?(@.kind=="Machine")].name
      name: Machine
      type: string
    - description: Time duration since creation of OpenStackMachine
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha3
    schema:
      openAPIV3Schema:
        description: OpenStackMachine is the Schema for the openstackmachines 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: OpenStackMachineSpec defines the desired state of OpenStackMachine.
            properties:
              cloudName:
                description: The name of the cloud to use from the clouds secret
                type: string
              cloudsSecret:
                description: The name of the secret containing the openstack credentials
                properties:
                  name:
                    description: name is unique within a namespace to reference a
                      secret resource.
                    type: string
                  namespace:
                    description: namespace defines the space within which the secret
                      name must be unique.
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              configDrive:
                description: Config Drive support
                type: boolean
              flavor:
                description: The flavor reference for the flavor for your server instance.
                type: string
              floatingIP:
                description: The floatingIP which will be associated to the machine,
                  only used for master. The floatingIP should have been created and
                  haven't been associated.
                type: string
              image:
                description: The name of the image to use for your server instance.
                  If the RootVolume is specified, this will be ignored and use rootVolume
                  directly.
                type: string
              instanceID:
                description: InstanceID is the OpenStack instance ID for this machine.
                type: string
              networks:
                description: A networks object. Required parameter when there are
                  multiple networks defined for the tenant. When you do not specify
                  the networks parameter, the server attaches to the only network
                  created for the current tenant.
                items:
                  properties:
                    filter:
                      description: Filters for optional network query
                      properties:
                        adminStateUp:
                          type: boolean
                        description:
                          type: string
                        id:
                          type: string
                        limit:
                          type: integer
                        marker:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        shared:
                          type: boolean
                        sortDir:
                          type: string
                        sortKey:
                          type: string
                        status:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                        tenantId:
                          type: string
                      type: object
                    fixedIp:
                      description: A fixed IPv4 address for the NIC.
                      type: string
                    subnets:
                      description: Subnet within a network to use
                      items:
                        properties:
                          filter:
                            description: Filters for optional network query
                            properties:
                              cidr:
                                type: string
                              description:
                                type: string
                              enableDhcp:
                                type: boolean
                              gateway_ip:
                                type: string
                              id:
                                type: string
                              ipVersion:
                                type: integer
                              ipv6AddressMode:
                                type: string
                              ipv6RaMode:
                                type: string
                              limit:
                                type: integer
                              marker:
                                type: string
                              name:
                                type: string
                              networkId:
                                type: string
                              notTags:
                                type: string
                              notTagsAny:
                                type: string
                              projectId:
                                type: string
                              sortDir:
                                type: string
                              sortKey:
                                type: string
                              subnetpoolId:
                                type: string
                              tags:
                                type: string
                              tagsAny:
                                type: string
                              tenantId:
                                type: string
                            type: object
                          uuid:
                            description: The UUID of the network. Required if you
                              omit the port attribute.
                            type: string
                        type: object
                      type: array
                    uuid:
                      description: The UUID of the network. Required if you omit the
                        port attribute.
                      type: string
                  type: object
                type: array
              providerID:
                description: ProviderID is the unique identifier as specified by the
                  cloud provider.
                type: string
              rootVolume:
                description: The volume metadata to boot from
                properties:
                  deviceType:
                    type: string
                  diskSize:
                    type: integer
                  sourceType:
                    type: string
                  sourceUUID:
                    type: string
                type: object
              securityGroups:
                description: The names of the security groups to assign to the instance
                items:
                  properties:
                    filter:
                      description: Filters used to query security groups in openstack
                      properties:
                        description:
                          type: string
                        id:
                          type: string
                        limit:
                          type: integer
                        marker:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        sortDir:
                          type: string
                        sortKey:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                        tenantId:
                          type: string
                      type: object
                    name:
                      description: Security Group name
                      type: string
                    uuid:
                      description: Security Group UID
                      type: string
                  type: object
                type: array
              serverGroupID:
                description: The server group to assign the machine to
                type: string
              serverMetadata:
                additionalProperties:
                  type: string
                description: Metadata mapping. Allows you to create a map of key value
                  pairs to add to the server instance.
                type: object
              sshKeyName:
                description: The ssh key to inject in the instance
                type: string
              subnet:
                description: UUID, IP address of a port from this subnet will be marked
                  as AccessIPv4 on the created compute instance
                type: string
              tags:
                description: Machine tags Requires Nova api 2.52 minimum!
                items:
                  type: string
                type: array
              trunk:
                description: Whether the server instance is created on a trunk port
                  or not.
                type: boolean
              userDataSecret:
                description: The name of the secret containing the user data (startup
                  script in most cases)
                properties:
                  name:
                    description: name is unique within a namespace to reference a
                      secret resource.
                    type: string
                  namespace:
                    description: namespace defines the space within which the secret
                      name must be unique.
                    type: string
                type: object
                x-kubernetes-map-type: atomic
            required:
            - flavor
            type: object
          status:
            description: OpenStackMachineStatus defines the observed state of OpenStackMachine.
            properties:
              addresses:
                description: Addresses contains the OpenStack 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 provide observations of the operational state
                  of a Cluster API resource.
                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
              errorMessage:
                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
              errorReason:
                description: MachineStatusError defines errors states for Machine
                  objects.
                type: string
              instanceState:
                description: InstanceState is the state of the OpenStack instance
                  for this machine.
                type: string
              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 OpenStackMachine belongs
      jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
      name: Cluster
      type: string
    - description: OpenStack instance state
      jsonPath: .status.instanceState
      name: InstanceState
      type: string
    - description: Machine ready status
      jsonPath: .status.ready
      name: Ready
      type: string
    - description: OpenStack instance ID
      jsonPath: .spec.providerID
      name: ProviderID
      type: string
    - description: Machine object which owns with this OpenStackMachine
      jsonPath: .metadata.ownerReferences[?(@.kind=="Machine")].name
      name: Machine
      type: string
    - description: Time duration since creation of OpenStackMachine
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha4
    schema:
      openAPIV3Schema:
        description: OpenStackMachine is the Schema for the openstackmachines 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: OpenStackMachineSpec defines the desired state of OpenStackMachine.
            properties:
              cloudName:
                description: The name of the cloud to use from the clouds secret
                type: string
              configDrive:
                description: Config Drive support
                type: boolean
              flavor:
                description: The flavor reference for the flavor for your server instance.
                type: string
              floatingIP:
                description: The floatingIP which will be associated to the machine,
                  only used for master. The floatingIP should have been created and
                  haven't been associated.
                type: string
              identityRef:
                description: IdentityRef is a reference to a identity to be used when
                  reconciling this cluster
                properties:
                  kind:
                    description: Kind of the identity. Must be supported by the infrastructure
                      provider and may be either cluster or namespace-scoped.
                    minLength: 1
                    type: string
                  name:
                    description: Name of the infrastructure identity to be used. Must
                      be either a cluster-scoped resource, or namespaced-scoped resource
                      the same namespace as the resource(s) being provisioned.
                    type: string
                required:
                - kind
                - name
                type: object
              image:
                description: The name of the image to use for your server instance.
                  If the RootVolume is specified, this will be ignored and use rootVolume
                  directly.
                type: string
              instanceID:
                description: InstanceID is the OpenStack instance ID for this machine.
                type: string
              networks:
                description: A networks object. Required parameter when there are
                  multiple networks defined for the tenant. When you do not specify
                  both networks and ports parameters, the server attaches to the only
                  network created for the current tenant.
                items:
                  properties:
                    filter:
                      description: Filters for optional network query
                      properties:
                        adminStateUp:
                          type: boolean
                        description:
                          type: string
                        id:
                          type: string
                        limit:
                          type: integer
                        marker:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        shared:
                          type: boolean
                        sortDir:
                          type: string
                        sortKey:
                          type: string
                        status:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                        tenantId:
                          type: string
                      type: object
                    fixedIP:
                      description: A fixed IPv4 address for the NIC.
                      type: string
                    subnets:
                      description: Subnet within a network to use
                      items:
                        properties:
                          filter:
                            description: Filters for optional subnet query
                            properties:
                              cidr:
                                type: string
                              description:
                                type: string
                              enableDhcp:
                                type: boolean
                              gateway_ip:
                                type: string
                              id:
                                type: string
                              ipVersion:
                                type: integer
                              ipv6AddressMode:
                                type: string
                              ipv6RaMode:
                                type: string
                              limit:
                                type: integer
                              marker:
                                type: string
                              name:
                                type: string
                              networkId:
                                type: string
                              notTags:
                                type: string
                              notTagsAny:
                                type: string
                              projectId:
                                type: string
                              sortDir:
                                type: string
                              sortKey:
                                type: string
                              subnetpoolId:
                                type: string
                              tags:
                                type: string
                              tagsAny:
                                type: string
                              tenantId:
                                type: string
                            type: object
                          uuid:
                            description: Optional UUID of the subnet. If specified
                              this will not be validated prior to server creation.
                              If specified, the enclosing `NetworkParam` must also
                              be specified by UUID.
                            type: string
                        type: object
                      type: array
                    uuid:
                      description: Optional UUID of the network. If specified this
                        will not be validated prior to server creation. Required if
                        `Subnets` specifies a subnet by UUID.
                      type: string
                  type: object
                type: array
              ports:
                description: Ports to be attached to the server instance. They are
                  created if a port with the given name does not already exist. When
                  you do not specify both networks and ports parameters, the server
                  attaches to the only network created for the current tenant.
                items:
                  properties:
                    adminStateUp:
                      type: boolean
                    allowedAddressPairs:
                      items:
                        properties:
                          ipAddress:
                            type: string
                          macAddress:
                            type: string
                        type: object
                      type: array
                    description:
                      type: string
                    disablePortSecurity:
                      description: DisablePortSecurity enables or disables the port
                        security when set. When not set, it takes the value of the
                        corresponding field at the network level.
                      type: boolean
                    fixedIPs:
                      description: Specify pairs of subnet and/or IP address. These
                        should be subnets of the network with the given NetworkID.
                      items:
                        properties:
                          ipAddress:
                            type: string
                          subnetId:
                            type: string
                        required:
                        - subnetId
                        type: object
                      type: array
                    hostId:
                      description: The ID of the host where the port is allocated
                      type: string
                    macAddress:
                      type: string
                    nameSuffix:
                      description: Used to make the name of the port unique. If unspecified,
                        instead the 0-based index of the port in the list is used.
                      type: string
                    networkId:
                      description: ID of the OpenStack network on which to create
                        the port. If unspecified, create the port on the default cluster
                        network.
                      type: string
                    profile:
                      additionalProperties:
                        type: string
                      description: A dictionary that enables the application running
                        on the specified host to pass and receive virtual network
                        interface (VIF) port-specific information to the plug-in.
                      type: object
                    projectId:
                      type: string
                    securityGroups:
                      items:
                        type: string
                      type: array
                    tags:
                      description: Tags applied to the port (and corresponding trunk,
                        if a trunk is configured.) These tags are applied in addition
                        to the instance's tags, which will also be applied to the
                        port.
                      items:
                        type: string
                      type: array
                    tenantId:
                      type: string
                    trunk:
                      description: Enables and disables trunk at port level. If not
                        provided, openStackMachine.Spec.Trunk is inherited.
                      type: boolean
                    vnicType:
                      description: The virtual network interface card (vNIC) type
                        that is bound to the neutron port.
                      type: string
                  type: object
                type: array
              providerID:
                description: ProviderID is the unique identifier as specified by the
                  cloud provider.
                type: string
              rootVolume:
                description: The volume metadata to boot from
                properties:
                  deviceType:
                    type: string
                  diskSize:
                    type: integer
                  sourceType:
                    type: string
                  sourceUUID:
                    type: string
                type: object
              securityGroups:
                description: The names of the security groups to assign to the instance
                items:
                  properties:
                    filter:
                      description: Filters used to query security groups in openstack
                      properties:
                        description:
                          type: string
                        id:
                          type: string
                        limit:
                          type: integer
                        marker:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        sortDir:
                          type: string
                        sortKey:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                        tenantId:
                          type: string
                      type: object
                    name:
                      description: Security Group name
                      type: string
                    uuid:
                      description: Security Group UID
                      type: string
                  type: object
                type: array
              serverGroupID:
                description: The server group to assign the machine to
                type: string
              serverMetadata:
                additionalProperties:
                  type: string
                description: Metadata mapping. Allows you to create a map of key value
                  pairs to add to the server instance.
                type: object
              sshKeyName:
                description: The ssh key to inject in the instance
                type: string
              subnet:
                description: UUID, IP address of a port from this subnet will be marked
                  as AccessIPv4 on the created compute instance
                type: string
              tags:
                description: Machine tags Requires Nova api 2.52 minimum!
                items:
                  type: string
                type: array
              trunk:
                description: Whether the server instance is created on a trunk port
                  or not.
                type: boolean
            required:
            - flavor
            type: object
          status:
            description: OpenStackMachineStatus defines the observed state of OpenStackMachine.
            properties:
              addresses:
                description: Addresses contains the OpenStack 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 provide observations of the operational state
                  of a Cluster API resource.
                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
              errorMessage:
                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
              errorReason:
                description: MachineStatusError defines errors states for Machine
                  objects.
                type: string
              instanceState:
                description: InstanceState is the state of the OpenStack instance
                  for this machine.
                type: string
              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 OpenStackMachine belongs
      jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
      name: Cluster
      type: string
    - description: OpenStack instance state
      jsonPath: .status.instanceState
      name: InstanceState
      type: string
    - description: Machine ready status
      jsonPath: .status.ready
      name: Ready
      type: string
    - description: OpenStack instance ID
      jsonPath: .spec.providerID
      name: ProviderID
      type: string
    - description: Machine object which owns with this OpenStackMachine
      jsonPath: .metadata.ownerReferences[?(@.kind=="Machine")].name
      name: Machine
      type: string
    - description: Time duration since creation of OpenStackMachine
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha5
    schema:
      openAPIV3Schema:
        description: OpenStackMachine is the Schema for the openstackmachines 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: OpenStackMachineSpec defines the desired state of OpenStackMachine.
            properties:
              cloudName:
                description: The name of the cloud to use from the clouds secret
                type: string
              configDrive:
                description: Config Drive support
                type: boolean
              flavor:
                description: The flavor reference for the flavor for your server instance.
                type: string
              floatingIP:
                description: The floatingIP which will be associated to the machine,
                  only used for master. The floatingIP should have been created and
                  haven't been associated.
                type: string
              identityRef:
                description: IdentityRef is a reference to a identity to be used when
                  reconciling this cluster
                properties:
                  kind:
                    description: Kind of the identity. Must be supported by the infrastructure
                      provider and may be either cluster or namespace-scoped.
                    minLength: 1
                    type: string
                  name:
                    description: Name of the infrastructure identity to be used. Must
                      be either a cluster-scoped resource, or namespaced-scoped resource
                      the same namespace as the resource(s) being provisioned.
                    type: string
                required:
                - kind
                - name
                type: object
              image:
                description: The name of the image to use for your server instance.
                  If the RootVolume is specified, this will be ignored and use rootVolume
                  directly.
                type: string
              imageUUID:
                description: The uuid of the image to use for your server instance.
                  if it's empty, Image name will be used
                type: string
              instanceID:
                description: InstanceID is the OpenStack instance ID for this machine.
                type: string
              networks:
                description: A networks object. Required parameter when there are
                  multiple networks defined for the tenant. When you do not specify
                  both networks and ports parameters, the server attaches to the only
                  network created for the current tenant.
                items:
                  properties:
                    filter:
                      description: Filters for optional network query
                      properties:
                        description:
                          type: string
                        id:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                      type: object
                    fixedIP:
                      description: A fixed IPv4 address for the NIC.
                      type: string
                    subnets:
                      description: Subnet within a network to use
                      items:
                        properties:
                          filter:
                            description: Filters for optional subnet query
                            properties:
                              cidr:
                                type: string
                              description:
                                type: string
                              gateway_ip:
                                type: string
                              id:
                                type: string
                              ipVersion:
                                type: integer
                              ipv6AddressMode:
                                type: string
                              ipv6RaMode:
                                type: string
                              name:
                                type: string
                              notTags:
                                type: string
                              notTagsAny:
                                type: string
                              projectId:
                                type: string
                              tags:
                                type: string
                              tagsAny:
                                type: string
                            type: object
                          uuid:
                            description: Optional UUID of the subnet. If specified
                              this will not be validated prior to server creation.
                              If specified, the enclosing `NetworkParam` must also
                              be specified by UUID.
                            type: string
                        type: object
                      type: array
                    uuid:
                      description: Optional UUID of the network. If specified this
                        will not be validated prior to server creation. Required if
                        `Subnets` specifies a subnet by UUID.
                      type: string
                  type: object
                type: array
              ports:
                description: Ports to be attached to the server instance. They are
                  created if a port with the given name does not already exist. When
                  you do not specify both networks and ports parameters, the server
                  attaches to the only network created for the current tenant.
                items:
                  properties:
                    adminStateUp:
                      type: boolean
                    allowedAddressPairs:
                      items:
                        properties:
                          ipAddress:
                            type: string
                          macAddress:
                            type: string
                        type: object
                      type: array
                    description:
                      type: string
                    disablePortSecurity:
                      description: DisablePortSecurity enables or disables the port
                        security when set. When not set, it takes the value of the
                        corresponding field at the network level.
                      type: boolean
                    fixedIPs:
                      description: Specify pairs of subnet and/or IP address. These
                        should be subnets of the network with the given NetworkID.
                      items:
                        properties:
                          ipAddress:
                            type: string
                          subnet:
                            description: Subnet is an openstack subnet query that
                              will return the id of a subnet to create the fixed IP
                              of a port in. This query must not return more than one
                              subnet.
                            properties:
                              cidr:
                                type: string
                              description:
                                type: string
                              gateway_ip:
                                type: string
                              id:
                                type: string
                              ipVersion:
                                type: integer
                              ipv6AddressMode:
                                type: string
                              ipv6RaMode:
                                type: string
                              name:
                                type: string
                              notTags:
                                type: string
                              notTagsAny:
                                type: string
                              projectId:
                                type: string
                              tags:
                                type: string
                              tagsAny:
                                type: string
                            type: object
                        required:
                        - subnet
                        type: object
                      type: array
                    hostId:
                      description: The ID of the host where the port is allocated
                      type: string
                    macAddress:
                      type: string
                    nameSuffix:
                      description: Used to make the name of the port unique. If unspecified,
                        instead the 0-based index of the port in the list is used.
                      type: string
                    network:
                      description: Network is a query for an openstack network that
                        the port will be created or discovered on. This will fail
                        if the query returns more than one network.
                      properties:
                        description:
                          type: string
                        id:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                      type: object
                    profile:
                      additionalProperties:
                        type: string
                      description: A dictionary that enables the application running
                        on the specified host to pass and receive virtual network
                        interface (VIF) port-specific information to the plug-in.
                      type: object
                    projectId:
                      type: string
                    securityGroupFilters:
                      description: The names, uuids, filters or any combination these
                        of the security groups to assign to the instance
                      items:
                        properties:
                          filter:
                            description: Filters used to query security groups in
                              openstack
                            properties:
                              description:
                                type: string
                              id:
                                type: string
                              limit:
                                type: integer
                              marker:
                                type: string
                              name:
                                type: string
                              notTags:
                                type: string
                              notTagsAny:
                                type: string
                              projectId:
                                type: string
                              sortDir:
                                type: string
                              sortKey:
                                type: string
                              tags:
                                type: string
                              tagsAny:
                                type: string
                              tenantId:
                                type: string
                            type: object
                          name:
                            description: Security Group name
                            type: string
                          uuid:
                            description: Security Group UID
                            type: string
                        type: object
                      type: array
                    securityGroups:
                      description: The uuids of the security groups to assign to the
                        instance
                      items:
                        type: string
                      type: array
                    tags:
                      description: Tags applied to the port (and corresponding trunk,
                        if a trunk is configured.) These tags are applied in addition
                        to the instance's tags, which will also be applied to the
                        port.
                      items:
                        type: string
                      type: array
                    tenantId:
                      type: string
                    trunk:
                      description: Enables and disables trunk at port level. If not
                        provided, openStackMachine.Spec.Trunk is inherited.
                      type: boolean
                    vnicType:
                      description: The virtual network interface card (vNIC) type
                        that is bound to the neutron port.
                      type: string
                  type: object
                type: array
              providerID:
                description: ProviderID is the unique identifier as specified by the
                  cloud provider.
                type: string
              rootVolume:
                description: The volume metadata to boot from
                properties:
                  availabilityZone:
                    type: string
                  diskSize:
                    type: integer
                  volumeType:
                    type: string
                type: object
              securityGroups:
                description: The names of the security groups to assign to the instance
                items:
                  properties:
                    filter:
                      description: Filters used to query security groups in openstack
                      properties:
                        description:
                          type: string
                        id:
                          type: string
                        limit:
                          type: integer
                        marker:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        sortDir:
                          type: string
                        sortKey:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                        tenantId:
                          type: string
                      type: object
                    name:
                      description: Security Group name
                      type: string
                    uuid:
                      description: Security Group UID
                      type: string
                  type: object
                type: array
              serverGroupID:
                description: The server group to assign the machine to
                type: string
              serverMetadata:
                additionalProperties:
                  type: string
                description: Metadata mapping. Allows you to create a map of key value
                  pairs to add to the server instance.
                type: object
              sshKeyName:
                description: The ssh key to inject in the instance
                type: string
              subnet:
                description: UUID, IP address of a port from this subnet will be marked
                  as AccessIPv4 on the created compute instance
                type: string
              tags:
                description: Machine tags Requires Nova api 2.52 minimum!
                items:
                  type: string
                type: array
              trunk:
                description: Whether the server instance is created on a trunk port
                  or not.
                type: boolean
            required:
            - flavor
            type: object
          status:
            description: OpenStackMachineStatus defines the observed state of OpenStackMachine.
            properties:
              addresses:
                description: Addresses contains the OpenStack 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 provide observations of the operational state
                  of a Cluster API resource.
                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: MachineStatusError defines errors states for Machine
                  objects.
                type: string
              instanceState:
                description: InstanceState is the state of the OpenStack instance
                  for this machine.
                type: string
              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 OpenStackMachine belongs
      jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name
      name: Cluster
      type: string
    - description: OpenStack instance state
      jsonPath: .status.instanceState
      name: InstanceState
      type: string
    - description: Machine ready status
      jsonPath: .status.ready
      name: Ready
      type: string
    - description: OpenStack instance ID
      jsonPath: .spec.providerID
      name: ProviderID
      type: string
    - description: Machine object which owns with this OpenStackMachine
      jsonPath: .metadata.ownerReferences[?(@.kind=="Machine")].name
      name: Machine
      type: string
    - description: Time duration since creation of OpenStackMachine
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha6
    schema:
      openAPIV3Schema:
        description: OpenStackMachine is the Schema for the openstackmachines 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: OpenStackMachineSpec defines the desired state of OpenStackMachine.
            properties:
              cloudName:
                description: The name of the cloud to use from the clouds secret
                type: string
              configDrive:
                description: Config Drive support
                type: boolean
              flavor:
                description: The flavor reference for the flavor for your server instance.
                type: string
              floatingIP:
                description: The floatingIP which will be associated to the machine,
                  only used for master. The floatingIP should have been created and
                  haven't been associated.
                type: string
              identityRef:
                description: IdentityRef is a reference to a identity to be used when
                  reconciling this cluster
                properties:
                  kind:
                    description: Kind of the identity. Must be supported by the infrastructure
                      provider and may be either cluster or namespace-scoped.
                    minLength: 1
                    type: string
                  name:
                    description: Name of the infrastructure identity to be used. Must
                      be either a cluster-scoped resource, or namespaced-scoped resource
                      the same namespace as the resource(s) being provisioned.
                    type: string
                required:
                - kind
                - name
                type: object
              image:
                description: The name of the image to use for your server instance.
                  If the RootVolume is specified, this will be ignored and use rootVolume
                  directly.
                type: string
              imageUUID:
                description: The uuid of the image to use for your server instance.
                  if it's empty, Image name will be used
                type: string
              instanceID:
                description: InstanceID is the OpenStack instance ID for this machine.
                type: string
              networks:
                description: A networks object. Required parameter when there are
                  multiple networks defined for the tenant. When you do not specify
                  both networks and ports parameters, the server attaches to the only
                  network created for the current tenant.
                items:
                  properties:
                    filter:
                      description: Filters for optional network query
                      properties:
                        description:
                          type: string
                        id:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                      type: object
                    fixedIP:
                      description: A fixed IPv4 address for the NIC.
                      type: string
                    subnets:
                      description: Subnet within a network to use
                      items:
                        properties:
                          filter:
                            description: Filters for optional subnet query
                            properties:
                              cidr:
                                type: string
                              description:
                                type: string
                              gateway_ip:
                                type: string
                              id:
                                type: string
                              ipVersion:
                                type: integer
                              ipv6AddressMode:
                                type: string
                              ipv6RaMode:
                                type: string
                              name:
                                type: string
                              notTags:
                                type: string
                              notTagsAny:
                                type: string
                              projectId:
                                type: string
                              tags:
                                type: string
                              tagsAny:
                                type: string
                            type: object
                          uuid:
                            description: Optional UUID of the subnet. If specified
                              this will not be validated prior to server creation.
                              If specified, the enclosing `NetworkParam` must also
                              be specified by UUID.
                            type: string
                        type: object
                      type: array
                    uuid:
                      description: Optional UUID of the network. If specified this
                        will not be validated prior to server creation. Required if
                        `Subnets` specifies a subnet by UUID.
                      type: string
                  type: object
                type: array
              ports:
                description: Ports to be attached to the server instance. They are
                  created if a port with the given name does not already exist. When
                  you do not specify both networks and ports parameters, the server
                  attaches to the only network created for the current tenant.
                items:
                  properties:
                    adminStateUp:
                      type: boolean
                    allowedAddressPairs:
                      items:
                        properties:
                          ipAddress:
                            type: string
                          macAddress:
                            type: string
                        type: object
                      type: array
                    description:
                      type: string
                    disablePortSecurity:
                      description: DisablePortSecurity enables or disables the port
                        security when set. When not set, it takes the value of the
                        corresponding field at the network level.
                      type: boolean
                    fixedIPs:
                      description: Specify pairs of subnet and/or IP address. These
                        should be subnets of the network with the given NetworkID.
                      items:
                        properties:
                          ipAddress:
                            type: string
                          subnet:
                            description: Subnet is an openstack subnet query that
                              will return the id of a subnet to create the fixed IP
                              of a port in. This query must not return more than one
                              subnet.
                            properties:
                              cidr:
                                type: string
                              description:
                                type: string
                              gateway_ip:
                                type: string
                              id:
                                type: string
                              ipVersion:
                                type: integer
                              ipv6AddressMode:
                                type: string
                              ipv6RaMode:
                                type: string
                              name:
                                type: string
                              notTags:
                                type: string
                              notTagsAny:
                                type: string
                              projectId:
                                type: string
                              tags:
                                type: string
                              tagsAny:
                                type: string
                            type: object
                        required:
                        - subnet
                        type: object
                      type: array
                    hostId:
                      description: The ID of the host where the port is allocated
                      type: string
                    macAddress:
                      type: string
                    nameSuffix:
                      description: Used to make the name of the port unique. If unspecified,
                        instead the 0-based index of the port in the list is used.
                      type: string
                    network:
                      description: Network is a query for an openstack network that
                        the port will be created or discovered on. This will fail
                        if the query returns more than one network.
                      properties:
                        description:
                          type: string
                        id:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                      type: object
                    profile:
                      additionalProperties:
                        type: string
                      description: A dictionary that enables the application running
                        on the specified host to pass and receive virtual network
                        interface (VIF) port-specific information to the plug-in.
                      type: object
                    projectId:
                      type: string
                    securityGroupFilters:
                      description: The names, uuids, filters or any combination these
                        of the security groups to assign to the instance
                      items:
                        properties:
                          filter:
                            description: Filters used to query security groups in
                              openstack
                            properties:
                              description:
                                type: string
                              id:
                                type: string
                              limit:
                                type: integer
                              marker:
                                type: string
                              name:
                                type: string
                              notTags:
                                type: string
                              notTagsAny:
                                type: string
                              projectId:
                                type: string
                              sortDir:
                                type: string
                              sortKey:
                                type: string
                              tags:
                                type: string
                              tagsAny:
                                type: string
                              tenantId:
                                type: string
                            type: object
                          name:
                            description: Security Group name
                            type: string
                          uuid:
                            description: Security Group UID
                            type: string
                        type: object
                      type: array
                    securityGroups:
                      description: The uuids of the security groups to assign to the
                        instance
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: set
                    tags:
                      description: Tags applied to the port (and corresponding trunk,
                        if a trunk is configured.) These tags are applied in addition
                        to the instance's tags, which will also be applied to the
                        port.
                      items:
                        type: string
                      type: array
                      x-kubernetes-list-type: set
                    tenantId:
                      type: string
                    trunk:
                      description: Enables and disables trunk at port level. If not
                        provided, openStackMachine.Spec.Trunk is inherited.
                      type: boolean
                    vnicType:
                      description: The virtual network interface card (vNIC) type
                        that is bound to the neutron port.
                      type: string
                  type: object
                type: array
              providerID:
                description: ProviderID is the unique identifier as specified by the
                  cloud provider.
                type: string
              rootVolume:
                description: The volume metadata to boot from
                properties:
                  availabilityZone:
                    type: string
                  diskSize:
                    type: integer
                  volumeType:
                    type: string
                type: object
              securityGroups:
                description: The names of the security groups to assign to the instance
                items:
                  properties:
                    filter:
                      description: Filters used to query security groups in openstack
                      properties:
                        description:
                          type: string
                        id:
                          type: string
                        limit:
                          type: integer
                        marker:
                          type: string
                        name:
                          type: string
                        notTags:
                          type: string
                        notTagsAny:
                          type: string
                        projectId:
                          type: string
                        sortDir:
                          type: string
                        sortKey:
                          type: string
                        tags:
                          type: string
                        tagsAny:
                          type: string
                        tenantId:
                          type: string
                      type: object
                    name:
                      description: Security Group name
                      type: string
                    uuid:
                      description: Security Group UID
                      type: string
                  type: object
                type: array
              serverGroupID:
                description: The server group to assign the machine to
                type: string
              serverMetadata:
                additionalProperties:
                  type: string
                description: Metadata mapping. Allows you to create a map of key value
                  pairs to add to the server instance.
                type: object
              sshKeyName:
                description: The ssh key to inject in the instance
                type: string
              subnet:
                description: UUID, IP address of a port from this subnet will be marked
                  as AccessIPv4 on the created compute instance
                type: string
              tags:
                description: Machine tags Requires Nova api 2.52 minimum!
                items:
                  type: string
                type: array
                x-kubernetes-list-type: set
              trunk:
                description: Whether the server instance is created on a trunk port
                  or not.
                type: boolean
            required:
            - flavor
            type: object
          status:
            description: OpenStackMachineStatus defines the observed state of OpenStackMachine.
            properties:
              addresses:
                description: Addresses contains the OpenStack 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 provide observations of the operational state
                  of a Cluster API resource.
                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: MachineStatusError defines errors states for Machine
                  objects.
                type: string
              instanceState:
                description: InstanceState is the state of the OpenStack instance
                  for this machine.
                type: string
              ready:
                description: Ready is true when the provider resource is ready.
                type: boolean
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cert-manager.io/inject-ca-from: capo-system/capo-serving-cert
    controller-gen.kubebuilder.io/version: v0.10.0
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
    cluster.x-k8s.io/v1alpha3: v1alpha3
    cluster.x-k8s.io/v1beta1: v1alpha4_v1alpha5_v1alpha6
  name: openstackmachinetemplates.infrastructure.cluster.x-k8s.io
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        caBundle: Cg==
        service:
          name: capo-webhook-service
          namespace: capo-system
          path: /convert
      conversionReviewVersions:
      - v1
      - v1beta1
  group: infrastructure.cluster.x-k8s.io
  names:
    categories:
    - cluster-api
    kind: OpenStackMachineTemplate
    listKind: OpenStackMachineTemplateList
    plural: openstackmachinetemplates
    shortNames:
    - osmt
    singular: openstackmachinetemplate
  scope: Namespaced
  versions:
  - name: v1alpha3
    schema:
      openAPIV3Schema:
        description: OpenStackMachineTemplate is the Schema for the openstackmachinetemplates
          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: OpenStackMachineTemplateSpec defines the desired state of
              OpenStackMachineTemplate.
            properties:
              template:
                description: OpenStackMachineTemplateResource describes the data needed
                  to create a OpenStackMachine from a template.
                properties:
                  spec:
                    description: Spec is the specification of the desired behavior
                      of the machine.
                    properties:
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      cloudsSecret:
                        description: The name of the secret containing the openstack
                          credentials
                        properties:
                          name:
                            description: name is unique within a namespace to reference
                              a secret resource.
                            type: string
                          namespace:
                            description: namespace defines the space within which
                              the secret name must be unique.
                            type: string
                        type: object
                        x-kubernetes-map-type: atomic
                      configDrive:
                        description: Config Drive support
                        type: boolean
                      flavor:
                        description: The flavor reference for the flavor for your
                          server instance.
                        type: string
                      floatingIP:
                        description: The floatingIP which will be associated to the
                          machine, only used for master. The floatingIP should have
                          been created and haven't been associated.
                        type: string
                      image:
                        description: The name of the image to use for your server
                          instance. If the RootVolume is specified, this will be ignored
                          and use rootVolume directly.
                        type: string
                      instanceID:
                        description: InstanceID is the OpenStack instance ID for this
                          machine.
                        type: string
                      networks:
                        description: A networks object. Required parameter when there
                          are multiple networks defined for the tenant. When you do
                          not specify the networks parameter, the server attaches
                          to the only network created for the current tenant.
                        items:
                          properties:
                            filter:
                              description: Filters for optional network query
                              properties:
                                adminStateUp:
                                  type: boolean
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                shared:
                                  type: boolean
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                status:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            fixedIp:
                              description: A fixed IPv4 address for the NIC.
                              type: string
                            subnets:
                              description: Subnet within a network to use
                              items:
                                properties:
                                  filter:
                                    description: Filters for optional network query
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      enableDhcp:
                                        type: boolean
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      networkId:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      subnetpoolId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  uuid:
                                    description: The UUID of the network. Required
                                      if you omit the port attribute.
                                    type: string
                                type: object
                              type: array
                            uuid:
                              description: The UUID of the network. Required if you
                                omit the port attribute.
                              type: string
                          type: object
                        type: array
                      providerID:
                        description: ProviderID is the unique identifier as specified
                          by the cloud provider.
                        type: string
                      rootVolume:
                        description: The volume metadata to boot from
                        properties:
                          deviceType:
                            type: string
                          diskSize:
                            type: integer
                          sourceType:
                            type: string
                          sourceUUID:
                            type: string
                        type: object
                      securityGroups:
                        description: The names of the security groups to assign to
                          the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      serverGroupID:
                        description: The server group to assign the machine to
                        type: string
                      serverMetadata:
                        additionalProperties:
                          type: string
                        description: Metadata mapping. Allows you to create a map
                          of key value pairs to add to the server instance.
                        type: object
                      sshKeyName:
                        description: The ssh key to inject in the instance
                        type: string
                      subnet:
                        description: UUID, IP address of a port from this subnet will
                          be marked as AccessIPv4 on the created compute instance
                        type: string
                      tags:
                        description: Machine tags Requires Nova api 2.52 minimum!
                        items:
                          type: string
                        type: array
                      trunk:
                        description: Whether the server instance is created on a trunk
                          port or not.
                        type: boolean
                      userDataSecret:
                        description: The name of the secret containing the user data
                          (startup script in most cases)
                        properties:
                          name:
                            description: name is unique within a namespace to reference
                              a secret resource.
                            type: string
                          namespace:
                            description: namespace defines the space within which
                              the secret name must be unique.
                            type: string
                        type: object
                        x-kubernetes-map-type: atomic
                    required:
                    - flavor
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: false
  - name: v1alpha4
    schema:
      openAPIV3Schema:
        description: OpenStackMachineTemplate is the Schema for the openstackmachinetemplates
          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: OpenStackMachineTemplateSpec defines the desired state of
              OpenStackMachineTemplate.
            properties:
              template:
                description: OpenStackMachineTemplateResource describes the data needed
                  to create a OpenStackMachine from a template.
                properties:
                  spec:
                    description: Spec is the specification of the desired behavior
                      of the machine.
                    properties:
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      configDrive:
                        description: Config Drive support
                        type: boolean
                      flavor:
                        description: The flavor reference for the flavor for your
                          server instance.
                        type: string
                      floatingIP:
                        description: The floatingIP which will be associated to the
                          machine, only used for master. The floatingIP should have
                          been created and haven't been associated.
                        type: string
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      image:
                        description: The name of the image to use for your server
                          instance. If the RootVolume is specified, this will be ignored
                          and use rootVolume directly.
                        type: string
                      instanceID:
                        description: InstanceID is the OpenStack instance ID for this
                          machine.
                        type: string
                      networks:
                        description: A networks object. Required parameter when there
                          are multiple networks defined for the tenant. When you do
                          not specify both networks and ports parameters, the server
                          attaches to the only network created for the current tenant.
                        items:
                          properties:
                            filter:
                              description: Filters for optional network query
                              properties:
                                adminStateUp:
                                  type: boolean
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                shared:
                                  type: boolean
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                status:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            fixedIP:
                              description: A fixed IPv4 address for the NIC.
                              type: string
                            subnets:
                              description: Subnet within a network to use
                              items:
                                properties:
                                  filter:
                                    description: Filters for optional subnet query
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      enableDhcp:
                                        type: boolean
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      networkId:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      subnetpoolId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  uuid:
                                    description: Optional UUID of the subnet. If specified
                                      this will not be validated prior to server creation.
                                      If specified, the enclosing `NetworkParam` must
                                      also be specified by UUID.
                                    type: string
                                type: object
                              type: array
                            uuid:
                              description: Optional UUID of the network. If specified
                                this will not be validated prior to server creation.
                                Required if `Subnets` specifies a subnet by UUID.
                              type: string
                          type: object
                        type: array
                      ports:
                        description: Ports to be attached to the server instance.
                          They are created if a port with the given name does not
                          already exist. When you do not specify both networks and
                          ports parameters, the server attaches to the only network
                          created for the current tenant.
                        items:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnetId:
                                    type: string
                                required:
                                - subnetId
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            networkId:
                              description: ID of the OpenStack network on which to
                                create the port. If unspecified, create the port on
                                the default cluster network.
                              type: string
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroups:
                              items:
                                type: string
                              type: array
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        type: array
                      providerID:
                        description: ProviderID is the unique identifier as specified
                          by the cloud provider.
                        type: string
                      rootVolume:
                        description: The volume metadata to boot from
                        properties:
                          deviceType:
                            type: string
                          diskSize:
                            type: integer
                          sourceType:
                            type: string
                          sourceUUID:
                            type: string
                        type: object
                      securityGroups:
                        description: The names of the security groups to assign to
                          the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      serverGroupID:
                        description: The server group to assign the machine to
                        type: string
                      serverMetadata:
                        additionalProperties:
                          type: string
                        description: Metadata mapping. Allows you to create a map
                          of key value pairs to add to the server instance.
                        type: object
                      sshKeyName:
                        description: The ssh key to inject in the instance
                        type: string
                      subnet:
                        description: UUID, IP address of a port from this subnet will
                          be marked as AccessIPv4 on the created compute instance
                        type: string
                      tags:
                        description: Machine tags Requires Nova api 2.52 minimum!
                        items:
                          type: string
                        type: array
                      trunk:
                        description: Whether the server instance is created on a trunk
                          port or not.
                        type: boolean
                    required:
                    - flavor
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: false
  - name: v1alpha5
    schema:
      openAPIV3Schema:
        description: OpenStackMachineTemplate is the Schema for the openstackmachinetemplates
          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: OpenStackMachineTemplateSpec defines the desired state of
              OpenStackMachineTemplate.
            properties:
              template:
                description: OpenStackMachineTemplateResource describes the data needed
                  to create a OpenStackMachine from a template.
                properties:
                  spec:
                    description: Spec is the specification of the desired behavior
                      of the machine.
                    properties:
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      configDrive:
                        description: Config Drive support
                        type: boolean
                      flavor:
                        description: The flavor reference for the flavor for your
                          server instance.
                        type: string
                      floatingIP:
                        description: The floatingIP which will be associated to the
                          machine, only used for master. The floatingIP should have
                          been created and haven't been associated.
                        type: string
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      image:
                        description: The name of the image to use for your server
                          instance. If the RootVolume is specified, this will be ignored
                          and use rootVolume directly.
                        type: string
                      imageUUID:
                        description: The uuid of the image to use for your server
                          instance. if it's empty, Image name will be used
                        type: string
                      instanceID:
                        description: InstanceID is the OpenStack instance ID for this
                          machine.
                        type: string
                      networks:
                        description: A networks object. Required parameter when there
                          are multiple networks defined for the tenant. When you do
                          not specify both networks and ports parameters, the server
                          attaches to the only network created for the current tenant.
                        items:
                          properties:
                            filter:
                              description: Filters for optional network query
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            fixedIP:
                              description: A fixed IPv4 address for the NIC.
                              type: string
                            subnets:
                              description: Subnet within a network to use
                              items:
                                properties:
                                  filter:
                                    description: Filters for optional subnet query
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                  uuid:
                                    description: Optional UUID of the subnet. If specified
                                      this will not be validated prior to server creation.
                                      If specified, the enclosing `NetworkParam` must
                                      also be specified by UUID.
                                    type: string
                                type: object
                              type: array
                            uuid:
                              description: Optional UUID of the network. If specified
                                this will not be validated prior to server creation.
                                Required if `Subnets` specifies a subnet by UUID.
                              type: string
                          type: object
                        type: array
                      ports:
                        description: Ports to be attached to the server instance.
                          They are created if a port with the given name does not
                          already exist. When you do not specify both networks and
                          ports parameters, the server attaches to the only network
                          created for the current tenant.
                        items:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnet:
                                    description: Subnet is an openstack subnet query
                                      that will return the id of a subnet to create
                                      the fixed IP of a port in. This query must not
                                      return more than one subnet.
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                required:
                                - subnet
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            network:
                              description: Network is a query for an openstack network
                                that the port will be created or discovered on. This
                                will fail if the query returns more than one network.
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroupFilters:
                              description: The names, uuids, filters or any combination
                                these of the security groups to assign to the instance
                              items:
                                properties:
                                  filter:
                                    description: Filters used to query security groups
                                      in openstack
                                    properties:
                                      description:
                                        type: string
                                      id:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  name:
                                    description: Security Group name
                                    type: string
                                  uuid:
                                    description: Security Group UID
                                    type: string
                                type: object
                              type: array
                            securityGroups:
                              description: The uuids of the security groups to assign
                                to the instance
                              items:
                                type: string
                              type: array
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        type: array
                      providerID:
                        description: ProviderID is the unique identifier as specified
                          by the cloud provider.
                        type: string
                      rootVolume:
                        description: The volume metadata to boot from
                        properties:
                          availabilityZone:
                            type: string
                          diskSize:
                            type: integer
                          volumeType:
                            type: string
                        type: object
                      securityGroups:
                        description: The names of the security groups to assign to
                          the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      serverGroupID:
                        description: The server group to assign the machine to
                        type: string
                      serverMetadata:
                        additionalProperties:
                          type: string
                        description: Metadata mapping. Allows you to create a map
                          of key value pairs to add to the server instance.
                        type: object
                      sshKeyName:
                        description: The ssh key to inject in the instance
                        type: string
                      subnet:
                        description: UUID, IP address of a port from this subnet will
                          be marked as AccessIPv4 on the created compute instance
                        type: string
                      tags:
                        description: Machine tags Requires Nova api 2.52 minimum!
                        items:
                          type: string
                        type: array
                      trunk:
                        description: Whether the server instance is created on a trunk
                          port or not.
                        type: boolean
                    required:
                    - flavor
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: false
  - name: v1alpha6
    schema:
      openAPIV3Schema:
        description: OpenStackMachineTemplate is the Schema for the openstackmachinetemplates
          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: OpenStackMachineTemplateSpec defines the desired state of
              OpenStackMachineTemplate.
            properties:
              template:
                description: OpenStackMachineTemplateResource describes the data needed
                  to create a OpenStackMachine from a template.
                properties:
                  spec:
                    description: Spec is the specification of the desired behavior
                      of the machine.
                    properties:
                      cloudName:
                        description: The name of the cloud to use from the clouds
                          secret
                        type: string
                      configDrive:
                        description: Config Drive support
                        type: boolean
                      flavor:
                        description: The flavor reference for the flavor for your
                          server instance.
                        type: string
                      floatingIP:
                        description: The floatingIP which will be associated to the
                          machine, only used for master. The floatingIP should have
                          been created and haven't been associated.
                        type: string
                      identityRef:
                        description: IdentityRef is a reference to a identity to be
                          used when reconciling this cluster
                        properties:
                          kind:
                            description: Kind of the identity. Must be supported by
                              the infrastructure provider and may be either cluster
                              or namespace-scoped.
                            minLength: 1
                            type: string
                          name:
                            description: Name of the infrastructure identity to be
                              used. Must be either a cluster-scoped resource, or namespaced-scoped
                              resource the same namespace as the resource(s) being
                              provisioned.
                            type: string
                        required:
                        - kind
                        - name
                        type: object
                      image:
                        description: The name of the image to use for your server
                          instance. If the RootVolume is specified, this will be ignored
                          and use rootVolume directly.
                        type: string
                      imageUUID:
                        description: The uuid of the image to use for your server
                          instance. if it's empty, Image name will be used
                        type: string
                      instanceID:
                        description: InstanceID is the OpenStack instance ID for this
                          machine.
                        type: string
                      networks:
                        description: A networks object. Required parameter when there
                          are multiple networks defined for the tenant. When you do
                          not specify both networks and ports parameters, the server
                          attaches to the only network created for the current tenant.
                        items:
                          properties:
                            filter:
                              description: Filters for optional network query
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            fixedIP:
                              description: A fixed IPv4 address for the NIC.
                              type: string
                            subnets:
                              description: Subnet within a network to use
                              items:
                                properties:
                                  filter:
                                    description: Filters for optional subnet query
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                  uuid:
                                    description: Optional UUID of the subnet. If specified
                                      this will not be validated prior to server creation.
                                      If specified, the enclosing `NetworkParam` must
                                      also be specified by UUID.
                                    type: string
                                type: object
                              type: array
                            uuid:
                              description: Optional UUID of the network. If specified
                                this will not be validated prior to server creation.
                                Required if `Subnets` specifies a subnet by UUID.
                              type: string
                          type: object
                        type: array
                      ports:
                        description: Ports to be attached to the server instance.
                          They are created if a port with the given name does not
                          already exist. When you do not specify both networks and
                          ports parameters, the server attaches to the only network
                          created for the current tenant.
                        items:
                          properties:
                            adminStateUp:
                              type: boolean
                            allowedAddressPairs:
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  macAddress:
                                    type: string
                                type: object
                              type: array
                            description:
                              type: string
                            disablePortSecurity:
                              description: DisablePortSecurity enables or disables
                                the port security when set. When not set, it takes
                                the value of the corresponding field at the network
                                level.
                              type: boolean
                            fixedIPs:
                              description: Specify pairs of subnet and/or IP address.
                                These should be subnets of the network with the given
                                NetworkID.
                              items:
                                properties:
                                  ipAddress:
                                    type: string
                                  subnet:
                                    description: Subnet is an openstack subnet query
                                      that will return the id of a subnet to create
                                      the fixed IP of a port in. This query must not
                                      return more than one subnet.
                                    properties:
                                      cidr:
                                        type: string
                                      description:
                                        type: string
                                      gateway_ip:
                                        type: string
                                      id:
                                        type: string
                                      ipVersion:
                                        type: integer
                                      ipv6AddressMode:
                                        type: string
                                      ipv6RaMode:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                    type: object
                                required:
                                - subnet
                                type: object
                              type: array
                            hostId:
                              description: The ID of the host where the port is allocated
                              type: string
                            macAddress:
                              type: string
                            nameSuffix:
                              description: Used to make the name of the port unique.
                                If unspecified, instead the 0-based index of the port
                                in the list is used.
                              type: string
                            network:
                              description: Network is a query for an openstack network
                                that the port will be created or discovered on. This
                                will fail if the query returns more than one network.
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                              type: object
                            profile:
                              additionalProperties:
                                type: string
                              description: A dictionary that enables the application
                                running on the specified host to pass and receive
                                virtual network interface (VIF) port-specific information
                                to the plug-in.
                              type: object
                            projectId:
                              type: string
                            securityGroupFilters:
                              description: The names, uuids, filters or any combination
                                these of the security groups to assign to the instance
                              items:
                                properties:
                                  filter:
                                    description: Filters used to query security groups
                                      in openstack
                                    properties:
                                      description:
                                        type: string
                                      id:
                                        type: string
                                      limit:
                                        type: integer
                                      marker:
                                        type: string
                                      name:
                                        type: string
                                      notTags:
                                        type: string
                                      notTagsAny:
                                        type: string
                                      projectId:
                                        type: string
                                      sortDir:
                                        type: string
                                      sortKey:
                                        type: string
                                      tags:
                                        type: string
                                      tagsAny:
                                        type: string
                                      tenantId:
                                        type: string
                                    type: object
                                  name:
                                    description: Security Group name
                                    type: string
                                  uuid:
                                    description: Security Group UID
                                    type: string
                                type: object
                              type: array
                            securityGroups:
                              description: The uuids of the security groups to assign
                                to the instance
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: set
                            tags:
                              description: Tags applied to the port (and corresponding
                                trunk, if a trunk is configured.) These tags are applied
                                in addition to the instance's tags, which will also
                                be applied to the port.
                              items:
                                type: string
                              type: array
                              x-kubernetes-list-type: set
                            tenantId:
                              type: string
                            trunk:
                              description: Enables and disables trunk at port level.
                                If not provided, openStackMachine.Spec.Trunk is inherited.
                              type: boolean
                            vnicType:
                              description: The virtual network interface card (vNIC)
                                type that is bound to the neutron port.
                              type: string
                          type: object
                        type: array
                      providerID:
                        description: ProviderID is the unique identifier as specified
                          by the cloud provider.
                        type: string
                      rootVolume:
                        description: The volume metadata to boot from
                        properties:
                          availabilityZone:
                            type: string
                          diskSize:
                            type: integer
                          volumeType:
                            type: string
                        type: object
                      securityGroups:
                        description: The names of the security groups to assign to
                          the instance
                        items:
                          properties:
                            filter:
                              description: Filters used to query security groups in
                                openstack
                              properties:
                                description:
                                  type: string
                                id:
                                  type: string
                                limit:
                                  type: integer
                                marker:
                                  type: string
                                name:
                                  type: string
                                notTags:
                                  type: string
                                notTagsAny:
                                  type: string
                                projectId:
                                  type: string
                                sortDir:
                                  type: string
                                sortKey:
                                  type: string
                                tags:
                                  type: string
                                tagsAny:
                                  type: string
                                tenantId:
                                  type: string
                              type: object
                            name:
                              description: Security Group name
                              type: string
                            uuid:
                              description: Security Group UID
                              type: string
                          type: object
                        type: array
                      serverGroupID:
                        description: The server group to assign the machine to
                        type: string
                      serverMetadata:
                        additionalProperties:
                          type: string
                        description: Metadata mapping. Allows you to create a map
                          of key value pairs to add to the server instance.
                        type: object
                      sshKeyName:
                        description: The ssh key to inject in the instance
                        type: string
                      subnet:
                        description: UUID, IP address of a port from this subnet will
                          be marked as AccessIPv4 on the created compute instance
                        type: string
                      tags:
                        description: Machine tags Requires Nova api 2.52 minimum!
                        items:
                          type: string
                        type: array
                        x-kubernetes-list-type: set
                      trunk:
                        description: Whether the server instance is created on a trunk
                          port or not.
                        type: boolean
                    required:
                    - flavor
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: true
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-manager
  namespace: capo-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-leader-election-role
  namespace: capo-system
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - configmaps/status
  verbs:
  - get
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-manager-role
rules:
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - cluster.x-k8s.io
  resources:
  - clusters
  - clusters/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - cluster.x-k8s.io
  resources:
  - machines
  - machines/status
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - infrastructure.cluster.x-k8s.io
  resources:
  - openstackclusters
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - infrastructure.cluster.x-k8s.io
  resources:
  - openstackclusters/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - infrastructure.cluster.x-k8s.io
  resources:
  - openstackmachines
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - infrastructure.cluster.x-k8s.io
  resources:
  - openstackmachines/status
  verbs:
  - get
  - patch
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-leader-election-rolebinding
  namespace: capo-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: capo-leader-election-role
subjects:
- kind: ServiceAccount
  name: capo-manager
  namespace: capo-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-manager-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: capo-manager-role
subjects:
- kind: ServiceAccount
  name: capo-manager
  namespace: capo-system
---
apiVersion: v1
kind: Service
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-webhook-service
  namespace: capo-system
spec:
  ports:
  - port: 443
    targetPort: webhook-server
  selector:
    cluster.x-k8s.io/provider: infrastructure-openstack
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
    control-plane: capo-controller-manager
  name: capo-controller-manager
  namespace: capo-system
spec:
  replicas: 1
  selector:
    matchLabels:
      cluster.x-k8s.io/provider: infrastructure-openstack
      control-plane: capo-controller-manager
  template:
    metadata:
      labels:
        cluster.x-k8s.io/provider: infrastructure-openstack
        control-plane: capo-controller-manager
    spec:
      containers:
      - args:
        - --leader-elect
        - --v=2
        - --metrics-bind-addr=127.0.0.1:8080
        command:
        - /manager
        image: gcr.io/k8s-staging-capi-openstack/capi-openstack-controller:v0.7.0
        imagePullPolicy: IfNotPresent
        livenessProbe:
          httpGet:
            path: /healthz
            port: healthz
        name: manager
        ports:
        - containerPort: 9443
          name: webhook-server
          protocol: TCP
        - containerPort: 9440
          name: healthz
          protocol: TCP
        readinessProbe:
          httpGet:
            path: /readyz
            port: healthz
        volumeMounts:
        - mountPath: /tmp/k8s-webhook-server/serving-certs
          name: cert
          readOnly: true
      serviceAccountName: capo-manager
      terminationGracePeriodSeconds: 10
      tolerations:
      - effect: NoSchedule
        key: node-role.kubernetes.io/master
      - effect: NoSchedule
        key: node-role.kubernetes.io/control-plane
      volumes:
      - name: cert
        secret:
          defaultMode: 420
          secretName: capo-webhook-service-cert
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-serving-cert
  namespace: capo-system
spec:
  dnsNames:
  - capo-webhook-service.capo-system.svc
  - capo-webhook-service.capo-system.svc.cluster.local
  issuerRef:
    kind: Issuer
    name: capo-selfsigned-issuer
  secretName: capo-webhook-service-cert
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-selfsigned-issuer
  namespace: capo-system
spec:
  selfSigned: {}
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: capo-system/capo-serving-cert
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    service:
      name: capo-webhook-service
      namespace: capo-system
      path: /mutate-infrastructure-cluster-x-k8s-io-v1alpha6-openstackcluster
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: default.openstackcluster.infrastructure.cluster.x-k8s.io
  rules:
  - apiGroups:
    - infrastructure.cluster.x-k8s.io
    apiVersions:
    - v1alpha6
    operations:
    - CREATE
    - UPDATE
    resources:
    - openstackclusters
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    service:
      name: capo-webhook-service
      namespace: capo-system
      path: /mutate-infrastructure-cluster-x-k8s-io-v1alpha6-openstackclustertemplate
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: default.openstackclustertemplate.infrastructure.cluster.x-k8s.io
  rules:
  - apiGroups:
    - infrastructure.cluster.x-k8s.io
    apiVersions:
    - v1alpha6
    operations:
    - CREATE
    - UPDATE
    resources:
    - openstackclustertemplates
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    service:
      name: capo-webhook-service
      namespace: capo-system
      path: /mutate-infrastructure-cluster-x-k8s-io-v1alpha6-openstackmachine
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: default.openstackmachine.infrastructure.cluster.x-k8s.io
  rules:
  - apiGroups:
    - infrastructure.cluster.x-k8s.io
    apiVersions:
    - v1alpha6
    operations:
    - CREATE
    - UPDATE
    resources:
    - openstackmachines
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: capo-system/capo-serving-cert
  labels:
    cluster.x-k8s.io/provider: infrastructure-openstack
  name: capo-validating-webhook-configuration
webhooks:
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    service:
      name: capo-webhook-service
      namespace: capo-system
      path: /validate-infrastructure-cluster-x-k8s-io-v1alpha6-openstackcluster
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: validation.openstackcluster.infrastructure.cluster.x-k8s.io
  rules:
  - apiGroups:
    - infrastructure.cluster.x-k8s.io
    apiVersions:
    - v1alpha6
    operations:
    - CREATE
    - UPDATE
    resources:
    - openstackclusters
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    service:
      name: capo-webhook-service
      namespace: capo-system
      path: /validate-infrastructure-cluster-x-k8s-io-v1alpha6-openstackclustertemplate
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: validation.openstackclustertemplate.infrastructure.cluster.x-k8s.io
  rules:
  - apiGroups:
    - infrastructure.cluster.x-k8s.io
    apiVersions:
    - v1alpha6
    operations:
    - CREATE
    - UPDATE
    resources:
    - openstackclustertemplates
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    service:
      name: capo-webhook-service
      namespace: capo-system
      path: /validate-infrastructure-cluster-x-k8s-io-v1alpha6-openstackmachine
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: validation.openstackmachine.infrastructure.cluster.x-k8s.io
  rules:
  - apiGroups:
    - infrastructure.cluster.x-k8s.io
    apiVersions:
    - v1alpha6
    operations:
    - CREATE
    - UPDATE
    resources:
    - openstackmachines
  sideEffects: None
- admissionReviewVersions:
  - v1beta1
  clientConfig:
    service:
      name: capo-webhook-service
      namespace: capo-system
      path: /validate-infrastructure-cluster-x-k8s-io-v1alpha6-openstackmachinetemplate
  failurePolicy: Fail
  matchPolicy: Equivalent
  name: validation.openstackmachinetemplate.infrastructure.cluster.x-k8s.io
  rules:
  - apiGroups:
    - infrastructure.cluster.x-k8s.io
    apiVersions:
    - v1alpha6
    operations:
    - CREATE
    - UPDATE
    resources:
    - openstackmachinetemplates
  sideEffects: None
