4391 lines
193 KiB
YAML
4391 lines
193 KiB
YAML
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://<bmh-uuid>)
|
|
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://<bmh-uuid>)
|
|
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.2
|
|
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.2
|
|
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.2
|
|
namespace: capm3-system
|
|
labels:
|
|
provider-components: metal3
|