apiVersion: v1 kind: Namespace metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 pod-security.kubernetes.io/enforce: restricted name: capm3-system --- apiVersion: v1 data: components: | apiVersion: v1 kind: Namespace metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 pod-security.kubernetes.io/enforce: restricted name: capm3-system --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/ipam-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1alpha2: v1alpha2 cluster.x-k8s.io/v1alpha3: v1alpha3_v1alpha4 cluster.x-k8s.io/v1alpha4: v1alpha5 cluster.x-k8s.io/v1beta1: v1beta1 name: ipaddresses.ipam.metal3.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: ipam-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: ipam.metal3.io names: categories: - metal3 kind: IPAddress listKind: IPAddressList plural: ipaddresses shortNames: - ipa - ipaddress - m3ipa - m3ipaddress - m3ipaddresses - metal3ipa - metal3ipaddress - metal3ipaddresses singular: ipaddress scope: Namespaced versions: - additionalPrinterColumns: - description: Time duration since creation of Metal3IPAddress jsonPath: .metadata.creationTimestamp name: Age type: date name: v1alpha1 schema: openAPIV3Schema: description: IPAddress is the Schema for the ipaddresses 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: IPAddressSpec defines the desired state of IPAddress. properties: address: description: Address contains the IP address pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string claim: description: Claim points to the object the IPClaim was created for. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic dnsServers: description: DNSServers is the list of dns servers items: description: IPAddress is used for validation of an IP address. pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string type: array gateway: description: Gateway is the gateway ip address pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string pool: description: Pool is the IPPool this was generated from. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic prefix: description: Prefix is the mask of the network as integer (max 128) maximum: 128 type: integer required: - address - claim - pool type: object type: object served: true storage: true subresources: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/ipam-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1alpha2: v1alpha2 cluster.x-k8s.io/v1alpha3: v1alpha3_v1alpha4 cluster.x-k8s.io/v1alpha4: v1alpha5 cluster.x-k8s.io/v1beta1: v1beta1 name: ipclaims.ipam.metal3.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: ipam-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: ipam.metal3.io names: categories: - cluster-api kind: IPClaim listKind: IPClaimList plural: ipclaims shortNames: - ipc - ipclaim - m3ipc - m3ipclaim - m3ipclaims - metal3ipc - metal3ipclaim - metal3ipclaims singular: ipclaim scope: Namespaced versions: - additionalPrinterColumns: - description: Time duration since creation of Metal3IPClaim jsonPath: .metadata.creationTimestamp name: Age type: date name: v1alpha1 schema: openAPIV3Schema: description: IPClaim is the Schema for the ipclaims 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: IPClaimSpec defines the desired state of IPClaim. properties: pool: description: Pool is the IPPool this was generated from. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic required: - pool type: object status: description: IPClaimStatus defines the observed state of IPClaim. properties: address: description: Address is the IPAddress that was generated for this claim. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic errorMessage: description: ErrorMessage contains the error message type: string 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: capm3-system/ipam-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1alpha2: v1alpha2 cluster.x-k8s.io/v1alpha3: v1alpha3_v1alpha4 cluster.x-k8s.io/v1alpha4: v1alpha5 cluster.x-k8s.io/v1beta1: v1beta1 name: ippools.ipam.metal3.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: ipam-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: ipam.metal3.io names: categories: - cluster-api kind: IPPool listKind: IPPoolList plural: ippools shortNames: - ipp - ippool - m3ipp - m3ippool - m3ippools - metal3ipp - metal3ippool - metal3ippools singular: ippool scope: Namespaced versions: - additionalPrinterColumns: - description: Cluster to which this template belongs jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name name: Cluster type: string - description: Time duration since creation of Metal3IPPool jsonPath: .metadata.creationTimestamp name: Age type: date name: v1alpha1 schema: openAPIV3Schema: description: IPPool is the Schema for the ippools 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: IPPoolSpec defines the desired state of IPPool. properties: clusterName: description: ClusterName is the name of the Cluster this object belongs to. type: string dnsServers: description: DNSServers is the list of dns servers items: description: IPAddress is used for validation of an IP address. pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string type: array gateway: description: Gateway is the gateway ip address pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string namePrefix: description: namePrefix is the prefix used to generate the IPAddress object names minLength: 1 type: string pools: description: Pools contains the list of IP addresses pools items: description: MetaDataIPAddress contains the info to render th ip address. It is IP-version agnostic. properties: dnsServers: description: DNSServers is the list of dns servers items: description: IPAddress is used for validation of an IP address. pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string type: array end: description: End is the last IP address that can be rendered. It is used as a validation that the rendered IP is in bound. pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string gateway: description: Gateway is the gateway ip address pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string prefix: description: Prefix is the mask of the network as integer (max 128) maximum: 128 type: integer start: description: Start is the first ip address that can be rendered pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string subnet: description: Subnet is used to validate that the rendered IP is in bounds. In case the Start value is not given, it is derived from the subnet ip incremented by 1 (`192.168.0.1` for `192.168.0.0/24`) pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))/([0-9]|[1-2][0-9]|3[0-2])$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))/([0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-8])$)) type: string type: object type: array preAllocations: additionalProperties: description: IPAddress is used for validation of an IP address. pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string description: PreAllocations contains the preallocated IP addresses type: object prefix: description: Prefix is the mask of the network as integer (max 128) maximum: 128 type: integer required: - namePrefix type: object status: description: IPPoolStatus defines the observed state of IPPool. properties: indexes: additionalProperties: description: IPAddress is used for validation of an IP address. pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string description: Allocations contains the map of objects and IP addresses they have type: object lastUpdated: description: LastUpdated identifies when this status was last observed. format: date-time type: string 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: capm3-system/capm3-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 name: metal3clusters.infrastructure.cluster.x-k8s.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: capm3-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: infrastructure.cluster.x-k8s.io names: categories: - cluster-api kind: Metal3Cluster listKind: Metal3ClusterList plural: metal3clusters shortNames: - m3c - m3cluster - m3clusters - metal3c - metal3cluster singular: metal3cluster scope: Namespaced versions: - additionalPrinterColumns: - description: Time duration since creation of Metal3Cluster jsonPath: .metadata.creationTimestamp name: Age type: date - description: metal3Cluster is Ready jsonPath: .status.ready name: Ready type: string - description: Most recent error jsonPath: .status.failureReason name: Error type: string - description: Cluster to which this BMCluster belongs jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name name: Cluster type: string - description: Control plane endpoint jsonPath: .spec.controlPlaneEndpoint name: Endpoint type: string name: v1beta1 schema: openAPIV3Schema: description: Metal3Cluster is the Schema for the metal3clusters 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: Metal3ClusterSpec defines the desired state of Metal3Cluster. properties: controlPlaneEndpoint: description: ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. properties: host: description: Host is the hostname on which the API server is serving. type: string port: description: Port is the port on which the API server is serving. type: integer required: - host - port type: object noCloudProvider: description: Determines if the cluster is not to be deployed with an external cloud provider. If set to true, CAPM3 will use node labels to set providerID on the kubernetes nodes. If set to false, providerID is set on nodes by other entities and CAPM3 uses the value of the providerID on the m3m resource. type: boolean type: object status: description: Metal3ClusterStatus defines the observed state of Metal3Cluster. properties: conditions: description: Conditions defines current service state of the Metal3Cluster. 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 indicates that there is a fatal problem reconciling the state, and will be set to a descriptive error message. type: string failureReason: description: FailureReason indicates that there is a fatal problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. type: string lastUpdated: description: LastUpdated identifies when this status was last observed. format: date-time type: string ready: description: Ready denotes that the Metal3 cluster (infrastructure) is ready. In Baremetal case, it does not mean anything for now as no infrastructure steps need to be performed. Required by Cluster API. Set to True by the metal3Cluster controller after creation. 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: capm3-system/capm3-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 name: metal3dataclaims.infrastructure.cluster.x-k8s.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: capm3-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: infrastructure.cluster.x-k8s.io names: categories: - cluster-api kind: Metal3DataClaim listKind: Metal3DataClaimList plural: metal3dataclaims shortNames: - m3dc - m3dataclaim - m3dataclaims - metal3dc - metal3dataclaim singular: metal3dataclaim scope: Namespaced versions: - additionalPrinterColumns: - description: Time duration since creation of Metal3DataClaim jsonPath: .metadata.creationTimestamp name: Age type: date name: v1beta1 schema: openAPIV3Schema: description: Metal3DataClaim is the Schema for the metal3datas 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: Metal3DataClaimSpec defines the desired state of Metal3DataClaim. properties: template: description: Template is the Metal3DataTemplate this was generated for. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic required: - template type: object status: description: Metal3DataClaimStatus defines the observed state of Metal3DataClaim. properties: errorMessage: description: ErrorMessage contains the error message type: string renderedData: description: RenderedData references the Metal3Data when ready properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic 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: capm3-system/capm3-serving-cert clusterctl.cluster.x-k8s.io/skip-crd-name-preflight-check: "" controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 name: metal3datas.infrastructure.cluster.x-k8s.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: capm3-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: infrastructure.cluster.x-k8s.io names: categories: - cluster-api kind: Metal3Data listKind: Metal3DataList plural: metal3datas shortNames: - m3d - m3data - m3datas - metal3d - metal3data singular: metal3data scope: Namespaced versions: - additionalPrinterColumns: - description: Time duration since creation of Metal3Data jsonPath: .metadata.creationTimestamp name: Age type: date name: v1beta1 schema: openAPIV3Schema: description: Metal3Data is the Schema for the metal3datas 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: Metal3DataSpec defines the desired state of Metal3Data. properties: claim: description: DataClaim points to the Metal3DataClaim the Metal3Data was created for. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic index: description: Index stores the index value of this instance in the Metal3DataTemplate. type: integer metaData: description: MetaData points to the rendered MetaData secret. 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 networkData: description: NetworkData points to the rendered NetworkData secret. 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 template: description: DataTemplate is the Metal3DataTemplate this was generated from. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic templateReference: description: TemplateReference refers to the Template the Metal3MachineTemplate refers to. It can be matched against the key or it may also point to the name of the template Metal3Data refers to type: string required: - claim - template type: object status: description: Metal3DataStatus defines the observed state of Metal3Data. properties: errorMessage: description: ErrorMessage contains the error message type: string ready: description: Ready is a flag set to True if the secrets were rendered properly 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: capm3-system/capm3-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 name: metal3datatemplates.infrastructure.cluster.x-k8s.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: capm3-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: infrastructure.cluster.x-k8s.io names: categories: - cluster-api kind: Metal3DataTemplate listKind: Metal3DataTemplateList plural: metal3datatemplates shortNames: - m3dt - m3datatemplate - m3datatemplates - metal3dt - metal3datatemplate singular: metal3datatemplate scope: Namespaced versions: - additionalPrinterColumns: - description: Cluster to which this template belongs jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name name: Cluster type: string - description: Time duration since creation of Metal3DataTemplate jsonPath: .metadata.creationTimestamp name: Age type: date name: v1beta1 schema: openAPIV3Schema: description: Metal3DataTemplate is the Schema for the metal3datatemplates 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: Metal3DataTemplateSpec defines the desired state of Metal3DataTemplate. properties: clusterName: description: ClusterName is the name of the Cluster this object belongs to. minLength: 1 type: string metaData: description: MetaData contains the information needed to generate the metadata secret properties: dnsServersFromIPPool: description: DNSServersFromPool is the list of metadata items to be rendered as dns servers. items: properties: apiGroup: description: APIGroup is the api group of the IP pool. type: string key: description: Key will be used as the key to set in the metadata map for cloud-init type: string kind: description: Kind is the kind of the IP pool type: string name: description: Name is the name of the IP pool used to fetch the value to set in the metadata map for cloud-init type: string required: - apiGroup - key - kind - name type: object type: array fromAnnotations: description: FromAnnotations is the list of metadata items to be fetched from object Annotations items: description: MetaDataFromAnnotation contains the information to fetch an annotation content, if the label does not exist, it is rendered as empty string. properties: annotation: description: Annotation is the key of the Annotation to fetch type: string key: description: Key will be used as the key to set in the metadata map for cloud-init type: string object: description: Object is the type of the object from which we retrieve the name enum: - machine - metal3machine - baremetalhost type: string required: - annotation - key - object type: object type: array fromHostInterfaces: description: FromHostInterfaces is the list of metadata items to be rendered as MAC addresses of the host interfaces. items: description: MetaDataHostInterface contains the information to render the object name. properties: interface: description: Interface is the name of the interface in the BareMetalHost Status Hardware Details list of interfaces from which to fetch the MAC address. type: string key: description: Key will be used as the key to set in the metadata map for cloud-init type: string required: - interface - key type: object type: array fromLabels: description: FromLabels is the list of metadata items to be fetched from object labels items: description: MetaDataFromLabel contains the information to fetch a label content, if the label does not exist, it is rendered as empty string. properties: key: description: Key will be used as the key to set in the metadata map for cloud-init type: string label: description: Label is the key of the label to fetch type: string object: description: Object is the type of the object from which we retrieve the name enum: - machine - metal3machine - baremetalhost type: string required: - key - label - object type: object type: array gatewaysFromIPPool: description: GatewaysFromPool is the list of metadata items to be rendered as gateway addresses. items: properties: apiGroup: description: APIGroup is the api group of the IP pool. type: string key: description: Key will be used as the key to set in the metadata map for cloud-init type: string kind: description: Kind is the kind of the IP pool type: string name: description: Name is the name of the IP pool used to fetch the value to set in the metadata map for cloud-init type: string required: - apiGroup - key - kind - name type: object type: array indexes: description: Indexes is the list of metadata items to be rendered from the index of the Metal3Data items: description: MetaDataIndex contains the information to render the index. properties: key: description: Key will be used as the key to set in the metadata map for cloud-init type: string offset: description: Offset is the offset to apply to the index when rendering it type: integer prefix: description: Prefix is the prefix string type: string step: default: 1 description: Step is the multiplier of the index type: integer suffix: description: Suffix is the suffix string type: string required: - key type: object type: array ipAddressesFromIPPool: description: IPAddressesFromPool is the list of metadata items to be rendered as ip addresses. items: properties: apiGroup: description: APIGroup is the api group of the IP pool. type: string key: description: Key will be used as the key to set in the metadata map for cloud-init type: string kind: description: Kind is the kind of the IP pool type: string name: description: Name is the name of the IP pool used to fetch the value to set in the metadata map for cloud-init type: string required: - apiGroup - key - kind - name type: object type: array namespaces: description: Namespaces is the list of metadata items to be rendered from the namespace items: description: MetaDataNamespace contains the information to render the namespace. properties: key: description: Key will be used as the key to set in the metadata map for cloud-init type: string required: - key type: object type: array objectNames: description: ObjectNames is the list of metadata items to be rendered from the name of objects. items: description: MetaDataObjectName contains the information to render the object name. properties: key: description: Key will be used as the key to set in the metadata map for cloud-init type: string object: description: Object is the type of the object from which we retrieve the name enum: - machine - metal3machine - baremetalhost type: string required: - key - object type: object type: array prefixesFromIPPool: description: PrefixesFromPool is the list of metadata items to be rendered as network prefixes. items: properties: apiGroup: description: APIGroup is the api group of the IP pool. type: string key: description: Key will be used as the key to set in the metadata map for cloud-init type: string kind: description: Kind is the kind of the IP pool type: string name: description: Name is the name of the IP pool used to fetch the value to set in the metadata map for cloud-init type: string required: - apiGroup - key - kind - name type: object type: array strings: description: Strings is the list of metadata items to be rendered from strings items: description: MetaDataString contains the information to render the string. properties: key: description: Key will be used as the key to set in the metadata map for cloud-init type: string value: description: Value is the string to render. type: string required: - key - value type: object type: array type: object networkData: description: NetworkData contains the information needed to generate the networkdata secret properties: links: description: Links is a structure containing lists of different types objects properties: bonds: description: Bonds contains a list of Bond links items: description: NetworkDataLinkBond represents a bond link object. properties: bondLinks: description: BondLinks is the list of links that are part of the bond. items: type: string type: array bondMode: description: BondMode is the mode of bond used. It can be one of balance-rr, active-backup, balance-xor, broadcast, balance-tlb, balance-alb, 802.3ad enum: - balance-rr - active-backup - balance-xor - broadcast - balance-tlb - balance-alb - 802.3ad type: string bondXmitHashPolicy: description: Selects the transmit hash policy used for port selection in balance-xor and 802.3ad modes enum: - layer2 - layer3+4 - layer2+3 type: string id: description: Id is the ID of the interface (used for naming) type: string macAddress: description: MACAddress is the MAC address of the interface, containing the object used to render it. properties: fromAnnotation: description: FromAnnotation references an object Annotation to retrieve the MAC address from properties: annotation: description: Annotation is the key of the Annotation to fetch type: string object: description: Object is the type of the object from which we retrieve the name enum: - machine - metal3machine - baremetalhost type: string required: - annotation - object type: object fromHostInterface: description: FromHostInterface contains the name of the interface in the BareMetalHost Introspection details from which to fetch the MAC address type: string string: description: String contains the MAC address given as a string type: string type: object mtu: default: 1500 description: MTU is the MTU of the interface maximum: 9000 type: integer required: - bondMode - id - macAddress type: object type: array ethernets: description: Ethernets contains a list of Ethernet links items: description: NetworkDataLinkEthernet represents an ethernet link object. properties: id: description: Id is the ID of the interface (used for naming) type: string macAddress: description: MACAddress is the MAC address of the interface, containing the object used to render it. properties: fromAnnotation: description: FromAnnotation references an object Annotation to retrieve the MAC address from properties: annotation: description: Annotation is the key of the Annotation to fetch type: string object: description: Object is the type of the object from which we retrieve the name enum: - machine - metal3machine - baremetalhost type: string required: - annotation - object type: object fromHostInterface: description: FromHostInterface contains the name of the interface in the BareMetalHost Introspection details from which to fetch the MAC address type: string string: description: String contains the MAC address given as a string type: string type: object mtu: default: 1500 description: MTU is the MTU of the interface maximum: 9000 type: integer type: description: 'Type is the type of the ethernet link. It can be one of: bridge, dvs, hw_veb, hyperv, ovs, tap, vhostuser, vif, phy' enum: - bridge - dvs - hw_veb - hyperv - ovs - tap - vhostuser - vif - phy type: string required: - id - macAddress - type type: object type: array vlans: description: Vlans contains a list of Vlan links items: description: NetworkDataLinkVlan represents a vlan link object. properties: id: description: Id is the ID of the interface (used for naming) type: string macAddress: description: MACAddress is the MAC address of the interface, containing the object used to render it. properties: fromAnnotation: description: FromAnnotation references an object Annotation to retrieve the MAC address from properties: annotation: description: Annotation is the key of the Annotation to fetch type: string object: description: Object is the type of the object from which we retrieve the name enum: - machine - metal3machine - baremetalhost type: string required: - annotation - object type: object fromHostInterface: description: FromHostInterface contains the name of the interface in the BareMetalHost Introspection details from which to fetch the MAC address type: string string: description: String contains the MAC address given as a string type: string type: object mtu: default: 1500 description: MTU is the MTU of the interface maximum: 9000 type: integer vlanID: description: VlanID is the Vlan ID maximum: 4096 type: integer vlanLink: description: VlanLink is the name of the link on which the vlan should be added type: string required: - id - macAddress - vlanID - vlanLink type: object type: array type: object networks: description: Networks is a structure containing lists of different types objects properties: ipv4: description: IPv4 contains a list of IPv4 static allocations items: description: NetworkDataIPv4 represents an ipv4 static network object. properties: fromPoolRef: description: FromPoolRef is a reference to a IP pool to allocate an address from. properties: apiGroup: description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic id: description: ID is the network ID (name) type: string ipAddressFromIPPool: description: IPAddressFromIPPool contains the name of the IP pool to use to get an ip address type: string link: description: Link is the link on which the network applies type: string routes: description: Routes contains a list of IPv4 routes items: description: NetworkDataRoutev4 represents an ipv4 route object. properties: gateway: description: Gateway is the IPv4 address of the gateway properties: fromIPPool: description: FromIPPool is the name of the IPPool to fetch the gateway from type: string string: description: String is the gateway given as a string pattern: ^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$ type: string type: object network: description: Network is the IPv4 network address pattern: ^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$ type: string prefix: description: Prefix is the mask of the network as integer (max 32) maximum: 32 type: integer services: description: Services is a list of IPv4 services properties: dns: description: DNS is a list of IPv4 DNS services items: description: IPAddressv4 is used for validation of an IPv6 address. pattern: ^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$ type: string type: array dnsFromIPPool: description: DNSFromIPPool is the name of the IPPool from which to get the DNS servers type: string type: object required: - gateway - network type: object type: array required: - id - link type: object type: array ipv4DHCP: description: IPv4 contains a list of IPv4 DHCP allocations items: description: NetworkDataIPv4DHCP represents an ipv4 DHCP network object. properties: id: description: ID is the network ID (name) type: string link: description: Link is the link on which the network applies type: string routes: description: Routes contains a list of IPv4 routes items: description: NetworkDataRoutev4 represents an ipv4 route object. properties: gateway: description: Gateway is the IPv4 address of the gateway properties: fromIPPool: description: FromIPPool is the name of the IPPool to fetch the gateway from type: string string: description: String is the gateway given as a string pattern: ^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$ type: string type: object network: description: Network is the IPv4 network address pattern: ^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$ type: string prefix: description: Prefix is the mask of the network as integer (max 32) maximum: 32 type: integer services: description: Services is a list of IPv4 services properties: dns: description: DNS is a list of IPv4 DNS services items: description: IPAddressv4 is used for validation of an IPv6 address. pattern: ^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$ type: string type: array dnsFromIPPool: description: DNSFromIPPool is the name of the IPPool from which to get the DNS servers type: string type: object required: - gateway - network type: object type: array required: - id - link type: object type: array ipv6: description: IPv4 contains a list of IPv6 static allocations items: description: NetworkDataIPv6 represents an ipv6 static network object. properties: fromPoolRef: description: FromPoolRef is a reference to a IP pool to allocate an address from. properties: apiGroup: description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. type: string kind: description: Kind is the type of resource being referenced type: string name: description: Name is the name of resource being referenced type: string required: - kind - name type: object x-kubernetes-map-type: atomic id: description: ID is the network ID (name) type: string ipAddressFromIPPool: description: IPAddressFromIPPool contains the name of the IPPool to use to get an ip address type: string link: description: Link is the link on which the network applies type: string routes: description: Routes contains a list of IPv6 routes items: description: NetworkDataRoutev6 represents an ipv6 route object. properties: gateway: description: Gateway is the IPv6 address of the gateway properties: fromIPPool: description: FromIPPool is the name of the IPPool to fetch the gateway from type: string string: description: String is the gateway given as a string pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string type: object network: description: Network is the IPv6 network address pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string prefix: description: Prefix is the mask of the network as integer (max 128) maximum: 128 type: integer services: description: Services is a list of IPv6 services properties: dns: description: DNS is a list of IPv6 DNS services items: description: IPAddressv6 is used for validation of an IPv6 address. pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string type: array dnsFromIPPool: description: DNSFromIPPool is the name of the IPPool from which to get the DNS servers type: string type: object required: - gateway - network type: object type: array required: - id - ipAddressFromIPPool - link type: object type: array ipv6DHCP: description: IPv4 contains a list of IPv6 DHCP allocations items: description: NetworkDataIPv6DHCP represents an ipv6 DHCP network object. properties: id: description: ID is the network ID (name) type: string link: description: Link is the link on which the network applies type: string routes: description: Routes contains a list of IPv6 routes items: description: NetworkDataRoutev6 represents an ipv6 route object. properties: gateway: description: Gateway is the IPv6 address of the gateway properties: fromIPPool: description: FromIPPool is the name of the IPPool to fetch the gateway from type: string string: description: String is the gateway given as a string pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string type: object network: description: Network is the IPv6 network address pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string prefix: description: Prefix is the mask of the network as integer (max 128) maximum: 128 type: integer services: description: Services is a list of IPv6 services properties: dns: description: DNS is a list of IPv6 DNS services items: description: IPAddressv6 is used for validation of an IPv6 address. pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string type: array dnsFromIPPool: description: DNSFromIPPool is the name of the IPPool from which to get the DNS servers type: string type: object required: - gateway - network type: object type: array required: - id - link type: object type: array ipv6SLAAC: description: IPv4 contains a list of IPv6 SLAAC allocations items: description: NetworkDataIPv6DHCP represents an ipv6 DHCP network object. properties: id: description: ID is the network ID (name) type: string link: description: Link is the link on which the network applies type: string routes: description: Routes contains a list of IPv6 routes items: description: NetworkDataRoutev6 represents an ipv6 route object. properties: gateway: description: Gateway is the IPv6 address of the gateway properties: fromIPPool: description: FromIPPool is the name of the IPPool to fetch the gateway from type: string string: description: String is the gateway given as a string pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string type: object network: description: Network is the IPv6 network address pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string prefix: description: Prefix is the mask of the network as integer (max 128) maximum: 128 type: integer services: description: Services is a list of IPv6 services properties: dns: description: DNS is a list of IPv6 DNS services items: description: IPAddressv6 is used for validation of an IPv6 address. pattern: ^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$ type: string type: array dnsFromIPPool: description: DNSFromIPPool is the name of the IPPool from which to get the DNS servers type: string type: object required: - gateway - network type: object type: array required: - id - link type: object type: array type: object services: description: Services is a structure containing lists of different types objects properties: dns: description: DNS is a list of DNS services items: description: IPAddress is used for validation of an IP address. pattern: ((^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)) type: string type: array dnsFromIPPool: description: DNSFromIPPool is the name of the IPPool from which to get the DNS servers type: string type: object type: object templateReference: description: TemplateReference refers to the Template the Metal3MachineTemplate refers to. It can be matched against the key or it may also point to the name of the template Metal3Data refers to type: string required: - clusterName type: object status: description: Metal3DataTemplateStatus defines the observed state of Metal3DataTemplate. properties: indexes: additionalProperties: type: integer description: Indexes contains the map of Metal3Machine and index used type: object lastUpdated: description: LastUpdated identifies when this status was last observed. format: date-time type: string 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: capm3-system/capm3-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 name: metal3machines.infrastructure.cluster.x-k8s.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: capm3-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: infrastructure.cluster.x-k8s.io names: categories: - cluster-api kind: Metal3Machine listKind: Metal3MachineList plural: metal3machines shortNames: - m3m - m3machine - m3machines - metal3m - metal3machine singular: metal3machine scope: Namespaced versions: - additionalPrinterColumns: - description: Time duration since creation of Metal3Machine jsonPath: .metadata.creationTimestamp name: Age type: date - description: Provider ID jsonPath: .spec.providerID name: ProviderID type: string - description: metal3machine is Ready jsonPath: .status.ready name: Ready type: string - description: Cluster to which this M3Machine belongs jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name name: Cluster type: string - description: metal3machine current phase jsonPath: .status.phase name: Phase type: string name: v1beta1 schema: openAPIV3Schema: description: Metal3Machine is the Schema for the metal3machines 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: Metal3MachineSpec defines the desired state of Metal3Machine. properties: automatedCleaningMode: description: When set to disabled, automated cleaning of host disks will be skipped during provisioning and deprovisioning. enum: - metadata - disabled type: string dataTemplate: description: MetadataTemplate is a reference to a Metal3DataTemplate object containing a template of metadata to be rendered. Metadata keys defined in the metadataTemplate take precedence over keys defined in metadata field. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic hostSelector: description: HostSelector specifies matching criteria for labels on BareMetalHosts. This is used to limit the set of BareMetalHost objects considered for claiming for a metal3machine. properties: matchExpressions: description: Label match expressions that must be true on a chosen BareMetalHost items: properties: key: type: string operator: description: Operator represents a key/field's relationship to value(s). See labels.Requirement and fields.Requirement for more details. type: string values: items: type: string type: array required: - key - operator - values type: object type: array matchLabels: additionalProperties: type: string description: Key/value pairs of labels that must exist on a chosen BareMetalHost type: object type: object image: description: Image is the image to be provisioned. properties: checksum: description: Checksum is a md5sum, sha256sum or sha512sum value or a URL to retrieve one. type: string checksumType: description: ChecksumType is the checksum algorithm for the image. e.g md5, sha256, sha512 enum: - md5 - sha256 - sha512 type: string format: description: DiskFormat contains the image disk format. enum: - raw - qcow2 - vdi - vmdk - live-iso type: string url: description: URL is a location of an image to deploy. type: string required: - checksum - url type: object metaData: description: MetaData is an object storing the reference to the secret containing the Metadata given by the user. 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 networkData: description: NetworkData is an object storing the reference to the secret containing the network data given by the user. 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 providerID: description: ProviderID will be the Metal3 machine in ProviderID format (metal3://) type: string userData: description: UserData references the Secret that holds user data needed by the bare metal operator. The Namespace is optional; it will default to the metal3machine's namespace if not specified. 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: - image type: object status: description: Metal3MachineStatus defines the observed state of Metal3Machine. properties: addresses: description: Addresses is a list of addresses assigned to the machine. This field is copied from the infrastructure provider reference. items: description: MachineAddress contains information for the node's address. properties: address: description: The machine address. type: string type: description: Machine address type, one of Hostname, ExternalIP, InternalIP, ExternalDNS or InternalDNS. type: string required: - address - type type: object type: array conditions: description: Conditions defines current service state of the Metal3Machine. 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 metal3machine 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 metal3machine'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 metal3machines can be added as events to the metal3machine 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 metal3machine 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 metal3machine'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 metal3machines can be added as events to the metal3machine object and/or logged in the controller's output." type: string lastUpdated: description: LastUpdated identifies when this status was last observed. format: date-time type: string metaData: description: MetaData is an object storing the reference to the secret containing the Metadata used to deploy the BareMetalHost. 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 networkData: description: NetworkData is an object storing the reference to the secret containing the network data used to deploy the BareMetalHost. 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 phase: description: Phase represents the current phase of machine actuation. E.g. Pending, Running, Terminating, Failed etc. type: string ready: description: 'Ready is the state of the metal3. TODO : Document the variable : mhrivnak: " it would be good to document what this means, how to interpret it, under what circumstances the value changes, etc."' type: boolean renderedData: description: RenderedData is a reference to a rendered Metal3Data object containing the references to metaData and networkData secrets. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic userData: description: UserData references the Secret that holds user data needed by the bare metal operator. The Namespace is optional; it will default to the metal3machine's namespace if not specified. 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 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: capm3-system/capm3-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 name: metal3machinetemplates.infrastructure.cluster.x-k8s.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: capm3-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: infrastructure.cluster.x-k8s.io names: categories: - cluster-api kind: Metal3MachineTemplate listKind: Metal3MachineTemplateList plural: metal3machinetemplates shortNames: - m3mt - m3machinetemplate - m3machinetemplates - metal3mt - metal3machinetemplate singular: metal3machinetemplate scope: Namespaced versions: - additionalPrinterColumns: - description: Time duration since creation of Metal3MachineTemplate jsonPath: .metadata.creationTimestamp name: Age type: date name: v1beta1 schema: openAPIV3Schema: description: Metal3MachineTemplate is the Schema for the metal3machinetemplates 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: Metal3MachineTemplateSpec defines the desired state of Metal3MachineTemplate. properties: nodeReuse: default: false description: When set to True, CAPM3 Machine controller will pick the same pool of BMHs' that were released during the upgrade operation. type: boolean template: description: Metal3MachineTemplateResource describes the data needed to create a Metal3Machine from a template. properties: spec: description: Spec is the specification of the desired behavior of the machine. properties: automatedCleaningMode: description: When set to disabled, automated cleaning of host disks will be skipped during provisioning and deprovisioning. enum: - metadata - disabled type: string dataTemplate: description: MetadataTemplate is a reference to a Metal3DataTemplate object containing a template of metadata to be rendered. Metadata keys defined in the metadataTemplate take precedence over keys defined in metadata field. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' type: string kind: description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string resourceVersion: description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' type: string uid: description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' type: string type: object x-kubernetes-map-type: atomic hostSelector: description: HostSelector specifies matching criteria for labels on BareMetalHosts. This is used to limit the set of BareMetalHost objects considered for claiming for a metal3machine. properties: matchExpressions: description: Label match expressions that must be true on a chosen BareMetalHost items: properties: key: type: string operator: description: Operator represents a key/field's relationship to value(s). See labels.Requirement and fields.Requirement for more details. type: string values: items: type: string type: array required: - key - operator - values type: object type: array matchLabels: additionalProperties: type: string description: Key/value pairs of labels that must exist on a chosen BareMetalHost type: object type: object image: description: Image is the image to be provisioned. properties: checksum: description: Checksum is a md5sum, sha256sum or sha512sum value or a URL to retrieve one. type: string checksumType: description: ChecksumType is the checksum algorithm for the image. e.g md5, sha256, sha512 enum: - md5 - sha256 - sha512 type: string format: description: DiskFormat contains the image disk format. enum: - raw - qcow2 - vdi - vmdk - live-iso type: string url: description: URL is a location of an image to deploy. type: string required: - checksum - url type: object metaData: description: MetaData is an object storing the reference to the secret containing the Metadata given by the user. 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 networkData: description: NetworkData is an object storing the reference to the secret containing the network data given by the user. 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 providerID: description: ProviderID will be the Metal3 machine in ProviderID format (metal3://) type: string userData: description: UserData references the Secret that holds user data needed by the bare metal operator. The Namespace is optional; it will default to the metal3machine's namespace if not specified. 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: - image type: object required: - spec type: object required: - template type: object type: object served: true storage: true subresources: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 name: metal3remediations.infrastructure.cluster.x-k8s.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: capm3-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: infrastructure.cluster.x-k8s.io names: categories: - cluster-api kind: Metal3Remediation listKind: Metal3RemediationList plural: metal3remediations shortNames: - m3r - m3remediation singular: metal3remediation scope: Namespaced versions: - additionalPrinterColumns: - description: How many times remediation controller should attempt to remediate the host jsonPath: .spec.strategy.retryLimit name: Retry limit type: string - description: How many times remediation controller has tried to remediate the node jsonPath: .status.retryCount name: Retry count type: string - description: Timestamp of the last remediation attempt jsonPath: .status.lastRemediated name: Last Remediated type: string - description: Type of the remediation strategy jsonPath: .spec.strategy.type name: Strategy type: string - description: Phase of the remediation jsonPath: .status.phase name: Phase type: string name: v1beta1 schema: openAPIV3Schema: description: Metal3Remediation is the Schema for the metal3remediations 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: Metal3RemediationSpec defines the desired state of Metal3Remediation. properties: strategy: description: Strategy field defines remediation strategy. properties: retryLimit: description: Sets maximum number of remediation retries. type: integer timeout: description: Sets the timeout between remediation retries. type: string type: description: Type of remediation. type: string type: object type: object status: description: Metal3RemediationStatus defines the observed state of Metal3Remediation. properties: lastRemediated: description: LastRemediated identifies when the host was last remediated format: date-time type: string phase: description: Phase represents the current phase of machine remediation. E.g. Pending, Running, Done etc. type: string retryCount: description: RetryCount can be used as a counter during the remediation. Field can hold number of reboots etc. type: integer 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: capm3-system/capm3-serving-cert controller-gen.kubebuilder.io/version: v0.13.0 labels: cluster.x-k8s.io/provider: infrastructure-metal3 cluster.x-k8s.io/v1beta1: v1beta1 name: metal3remediationtemplates.infrastructure.cluster.x-k8s.io spec: conversion: strategy: Webhook webhook: clientConfig: caBundle: Cg== service: name: capm3-webhook-service namespace: capm3-system path: /convert conversionReviewVersions: - v1 - v1beta1 group: infrastructure.cluster.x-k8s.io names: categories: - cluster-api kind: Metal3RemediationTemplate listKind: Metal3RemediationTemplateList plural: metal3remediationtemplates shortNames: - m3rt - m3remediationtemplate - m3remediationtemplates - metal3rt - metal3remediationtemplate singular: metal3remediationtemplate scope: Namespaced versions: - name: v1beta1 schema: openAPIV3Schema: description: Metal3RemediationTemplate is the Schema for the metal3remediationtemplates 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: Metal3RemediationTemplateSpec defines the desired state of Metal3RemediationTemplate. properties: template: description: Metal3RemediationTemplateResource describes the data needed to create a Metal3Remediation from a template. properties: spec: description: Spec is the specification of the desired behavior of the Metal3Remediation. properties: strategy: description: Strategy field defines remediation strategy. properties: retryLimit: description: Sets maximum number of remediation retries. type: integer timeout: description: Sets the timeout between remediation retries. type: string type: description: Type of remediation. type: string type: object type: object required: - spec type: object required: - template type: object status: description: Metal3RemediationTemplateStatus defines the observed state of Metal3RemediationTemplate. properties: status: description: Metal3RemediationStatus defines the observed state of Metal3Remediation properties: lastRemediated: description: LastRemediated identifies when the host was last remediated format: date-time type: string phase: description: Phase represents the current phase of machine remediation. E.g. Pending, Running, Done etc. type: string retryCount: description: RetryCount can be used as a counter during the remediation. Field can hold number of reboots etc. type: integer type: object required: - status type: object type: object served: true storage: true subresources: status: {} --- apiVersion: v1 kind: ServiceAccount metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-manager namespace: capm3-system --- apiVersion: v1 kind: ServiceAccount metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-manager namespace: capm3-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-leader-election-role namespace: capm3-system rules: - 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: Role metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-leader-election-role namespace: capm3-system rules: - apiGroups: - "" resources: - events verbs: - create --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-manager-role rules: - apiGroups: - "" resources: - events verbs: - create - get - list - patch - update - watch - apiGroups: - "" resources: - secrets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - cluster.x-k8s.io resources: - clusters verbs: - get - list - watch - apiGroups: - cluster.x-k8s.io resources: - clusters - clusters/status verbs: - get - list - watch - apiGroups: - cluster.x-k8s.io resources: - clusters/status verbs: - get - apiGroups: - cluster.x-k8s.io resources: - kubeadmcontrolplanes verbs: - create - delete - get - list - patch - update - watch - apiGroups: - cluster.x-k8s.io resources: - machinedeployments verbs: - create - delete - get - list - patch - update - watch - apiGroups: - cluster.x-k8s.io resources: - machines - machines/status verbs: - create - delete - get - list - patch - update - watch - apiGroups: - cluster.x-k8s.io resources: - machinesets verbs: - get - list - watch - apiGroups: - "" resources: - nodes verbs: - delete - get - list - patch - update - watch - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3clusters verbs: - create - delete - get - list - patch - update - watch - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3clusters/status verbs: - get - patch - update - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3dataclaims verbs: - create - delete - get - list - patch - update - watch - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3dataclaims/status verbs: - get - patch - update - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3datas verbs: - create - delete - get - list - patch - update - watch - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3datas/status verbs: - get - patch - update - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3datatemplates verbs: - create - delete - get - list - patch - update - watch - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3datatemplates/status verbs: - get - patch - update - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3machines verbs: - create - delete - get - list - patch - update - watch - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3machines/status verbs: - get - patch - update - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3machinetemplates verbs: - create - delete - get - list - patch - update - watch - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3remediations verbs: - create - delete - get - list - patch - update - watch - apiGroups: - infrastructure.cluster.x-k8s.io resources: - metal3remediations/status verbs: - get - patch - update - apiGroups: - ipam.cluster.x-k8s.io resources: - ipaddressclaims verbs: - create - delete - get - list - patch - update - watch - apiGroups: - ipam.cluster.x-k8s.io resources: - ipaddressclaims/status verbs: - get - watch - apiGroups: - ipam.cluster.x-k8s.io resources: - ipaddresses verbs: - get - list - watch - apiGroups: - ipam.cluster.x-k8s.io resources: - ipaddresses/status verbs: - get - apiGroups: - ipam.metal3.io resources: - ipaddresses verbs: - get - list - watch - apiGroups: - ipam.metal3.io resources: - ipaddresses/status verbs: - get - apiGroups: - ipam.metal3.io resources: - ipclaims verbs: - create - delete - get - list - patch - update - watch - apiGroups: - ipam.metal3.io resources: - ipclaims/status verbs: - get - watch - apiGroups: - metal3.io resources: - baremetalhosts verbs: - create - delete - get - list - patch - update - watch - apiGroups: - metal3.io resources: - baremetalhosts/status verbs: - get - patch - update --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-manager-role rules: - apiGroups: - "" resources: - events verbs: - create - get - list - patch - update - watch - apiGroups: - "" resources: - secrets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - authentication.k8s.io resources: - tokenreviews verbs: - create - apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - apiGroups: - cluster.x-k8s.io resources: - clusters verbs: - get - list - watch - apiGroups: - cluster.x-k8s.io resources: - clusters/status verbs: - get - apiGroups: - ipam.metal3.io resources: - ipaddresses verbs: - create - delete - get - list - patch - update - watch - apiGroups: - ipam.metal3.io resources: - ipaddresses/status verbs: - get - patch - update - apiGroups: - ipam.metal3.io resources: - ipclaims verbs: - create - delete - get - list - patch - update - watch - apiGroups: - ipam.metal3.io resources: - ipclaims/status verbs: - get - patch - update - apiGroups: - ipam.metal3.io resources: - ippools verbs: - create - delete - get - list - patch - update - watch - apiGroups: - ipam.metal3.io resources: - ippools/status verbs: - get - patch - update --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-leader-election-rolebinding namespace: capm3-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: capm3-leader-election-role subjects: - kind: ServiceAccount name: capm3-manager namespace: capm3-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-leader-election-rolebinding namespace: capm3-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: ipam-leader-election-role subjects: - kind: ServiceAccount name: ipam-manager namespace: capm3-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-manager-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: capm3-manager-role subjects: - kind: ServiceAccount name: capm3-manager namespace: capm3-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-manager-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: ipam-manager-role subjects: - kind: ServiceAccount name: ipam-manager namespace: capm3-system --- apiVersion: v1 data: CAPM3_FAST_TRACK: ${CAPM3_FAST_TRACK:='false'} kind: ConfigMap metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-capm3fasttrack-configmap namespace: capm3-system --- apiVersion: v1 kind: Service metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-webhook-service namespace: capm3-system spec: ports: - port: 443 targetPort: webhook-server selector: cluster.x-k8s.io/provider: infrastructure-metal3 --- apiVersion: v1 kind: Service metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-webhook-service namespace: capm3-system spec: ports: - port: 443 targetPort: ipam-webhook selector: cluster.x-k8s.io/provider: infrastructure-metal3 --- apiVersion: apps/v1 kind: Deployment metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 control-plane: controller-manager controller-tools.k8s.io: "1.0" name: capm3-controller-manager namespace: capm3-system spec: selector: matchLabels: cluster.x-k8s.io/provider: infrastructure-metal3 control-plane: controller-manager controller-tools.k8s.io: "1.0" template: metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 control-plane: controller-manager controller-tools.k8s.io: "1.0" spec: containers: - args: - --webhook-port=9443 - --enableBMHNameBasedPreallocation=${enableBMHNameBasedPreallocation:=false} - --diagnostics-address=${CAPM3_DIAGNOSTICS_ADDRESS:=:8443} - --insecure-diagnostics=${CAPM3_INSECURE_DIAGNOSTICS:=false} command: - /manager env: - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace envFrom: - configMapRef: name: capm3-capm3fasttrack-configmap image: quay.io/metal3-io/cluster-api-provider-metal3:v1.7.1 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /healthz port: healthz name: manager ports: - containerPort: 9443 name: webhook-server protocol: TCP - containerPort: 9440 name: healthz protocol: TCP - containerPort: 8443 name: metrics protocol: TCP readinessProbe: httpGet: path: /readyz port: healthz securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL privileged: false runAsGroup: 65532 runAsUser: 65532 volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert readOnly: true securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccountName: capm3-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: capm3-webhook-service-cert --- apiVersion: apps/v1 kind: Deployment metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 control-plane: controller-manager controller-tools.k8s.io: "1.0" name: ipam-controller-manager namespace: capm3-system spec: selector: matchLabels: cluster.x-k8s.io/provider: infrastructure-metal3 control-plane: controller-manager controller-tools.k8s.io: "1.0" template: metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 control-plane: controller-manager controller-tools.k8s.io: "1.0" spec: containers: - args: - --webhook-port=9443 - --diagnostics-address=${IPAM_DIAGNOSTICS_ADDRESS:=:8443} - --insecure-diagnostics=${IPAM_INSECURE_DIAGNOSTICS:=false} command: - /manager env: - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace image: quay.io/metal3-io/ip-address-manager:v1.7.1 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /healthz port: healthz name: manager ports: - containerPort: 9443 name: ipam-webhook protocol: TCP - containerPort: 9440 name: healthz protocol: TCP - containerPort: 8443 name: metrics protocol: TCP readinessProbe: httpGet: path: /readyz port: healthz securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL privileged: false runAsGroup: 65532 runAsUser: 65532 volumeMounts: - mountPath: /tmp/k8s-webhook-server/serving-certs name: cert readOnly: true securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault serviceAccountName: ipam-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: ipam-webhook-service-cert --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-serving-cert namespace: capm3-system spec: dnsNames: - capm3-webhook-service.capm3-system.svc - capm3-webhook-service.capm3-system.svc.cluster.local issuerRef: kind: Issuer name: capm3-selfsigned-issuer secretName: capm3-webhook-service-cert --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-serving-cert namespace: capm3-system spec: dnsNames: - ipam-webhook-service.capm3-system.svc - ipam-webhook-service.capm3-system.svc.cluster.local issuerRef: kind: Issuer name: ipam-selfsigned-issuer secretName: ipam-webhook-service-cert --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-selfsigned-issuer namespace: capm3-system spec: selfSigned: {} --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-selfsigned-issuer namespace: capm3-system spec: selfSigned: {} --- apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-mutating-webhook-configuration webhooks: - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3cluster failurePolicy: Fail matchPolicy: Equivalent name: default.metal3cluster.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3clusters sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3data failurePolicy: Fail matchPolicy: Equivalent name: default.metal3data.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3datas sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3dataclaim failurePolicy: Fail matchPolicy: Equivalent name: default.metal3dataclaim.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3dataclaims sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3datatemplate failurePolicy: Fail matchPolicy: Equivalent name: default.metal3datatemplate.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3datatemplates sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3machine failurePolicy: Fail matchPolicy: Equivalent name: default.metal3machine.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3machines sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3machinetemplate failurePolicy: Fail matchPolicy: Equivalent name: default.metal3machinetemplate.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3machinetemplates sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3remediation failurePolicy: Fail matchPolicy: Equivalent name: default.metal3remediation.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3remediations sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /mutate-infrastructure-cluster-x-k8s-io-v1beta1-metal3remediationtemplate failurePolicy: Fail matchPolicy: Equivalent name: default.metal3remediationtemplate.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3remediationtemplates sideEffects: None --- apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/ipam-serving-cert labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-mutating-webhook-configuration webhooks: - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: ipam-webhook-service namespace: capm3-system path: /mutate-ipam-metal3-io-v1alpha1-ipaddress failurePolicy: Fail matchPolicy: Equivalent name: default.ipaddress.ipam.metal3.io rules: - apiGroups: - ipam.metal3.io apiVersions: - v1alpha1 operations: - CREATE - UPDATE resources: - ipaddresses sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: ipam-webhook-service namespace: capm3-system path: /mutate-ipam-metal3-io-v1alpha1-ipclaim failurePolicy: Fail matchPolicy: Equivalent name: default.ipclaim.ipam.metal3.io rules: - apiGroups: - ipam.metal3.io apiVersions: - v1alpha1 operations: - CREATE - UPDATE resources: - ipclaims sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: ipam-webhook-service namespace: capm3-system path: /mutate-ipam-metal3-io-v1alpha1-ippool failurePolicy: Fail matchPolicy: Equivalent name: default.ippool.ipam.metal3.io rules: - apiGroups: - ipam.metal3.io apiVersions: - v1alpha1 operations: - CREATE - UPDATE resources: - ippools sideEffects: None --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/capm3-serving-cert labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: capm3-validating-webhook-configuration webhooks: - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3cluster failurePolicy: Fail matchPolicy: Equivalent name: validation.metal3cluster.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3clusters sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3data failurePolicy: Fail matchPolicy: Equivalent name: validation.metal3data.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3datas sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3dataclaim failurePolicy: Fail matchPolicy: Equivalent name: validation.metal3dataclaim.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3dataclaims sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3datatemplate failurePolicy: Fail matchPolicy: Equivalent name: validation.metal3datatemplate.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3datatemplates sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3machine failurePolicy: Fail matchPolicy: Equivalent name: validation.metal3machine.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3machines sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3machinetemplate failurePolicy: Fail matchPolicy: Equivalent name: validation.metal3machinetemplate.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3machinetemplates sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3remediation failurePolicy: Fail matchPolicy: Equivalent name: validation.metal3remediation.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3remediations sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: capm3-webhook-service namespace: capm3-system path: /validate-infrastructure-cluster-x-k8s-io-v1beta1-metal3remediationtemplate failurePolicy: Fail matchPolicy: Equivalent name: validation.metal3remediationtemplate.infrastructure.cluster.x-k8s.io rules: - apiGroups: - infrastructure.cluster.x-k8s.io apiVersions: - v1beta1 operations: - CREATE - UPDATE resources: - metal3remediationtemplates sideEffects: None --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: annotations: cert-manager.io/inject-ca-from: capm3-system/ipam-serving-cert labels: cluster.x-k8s.io/provider: infrastructure-metal3 name: ipam-validating-webhook-configuration webhooks: - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: ipam-webhook-service namespace: capm3-system path: /validate-ipam-metal3-io-v1alpha1-ipaddress failurePolicy: Fail matchPolicy: Equivalent name: validation.ipaddress.ipam.metal3.io rules: - apiGroups: - ipam.metal3.io apiVersions: - v1alpha1 operations: - CREATE - UPDATE resources: - ipaddresses sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: ipam-webhook-service namespace: capm3-system path: /validate-ipam-metal3-io-v1alpha1-ipclaim failurePolicy: Fail matchPolicy: Equivalent name: validation.ipclaim.ipam.metal3.io rules: - apiGroups: - ipam.metal3.io apiVersions: - v1alpha1 operations: - CREATE - UPDATE resources: - ipclaims sideEffects: None - admissionReviewVersions: - v1 - v1beta1 clientConfig: service: name: ipam-webhook-service namespace: capm3-system path: /validate-ipam-metal3-io-v1alpha1-ippool failurePolicy: Fail matchPolicy: Equivalent name: validation.ippool.ipam.metal3.io rules: - apiGroups: - ipam.metal3.io apiVersions: - v1alpha1 operations: - CREATE - UPDATE resources: - ippools sideEffects: None metadata: | apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3 kind: Metadata releaseSeries: - major: 1 minor: 7 contract: v1beta1 - major: 1 minor: 6 contract: v1beta1 - major: 1 minor: 5 contract: v1beta1 - major: 1 minor: 4 contract: v1beta1 - major: 1 minor: 3 contract: v1beta1 - major: 1 minor: 2 contract: v1beta1 - major: 1 minor: 1 contract: v1beta1 kind: ConfigMap metadata: creationTimestamp: null name: v1.7.1 namespace: capm3-system labels: provider-components: metal3