-
Notifications
You must be signed in to change notification settings - Fork 231
Adding a new CRD for configuration needed for Baremetal provisioning #460
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,148 @@ | ||
| apiVersion: apiextensions.k8s.io/v1beta1 | ||
| kind: CustomResourceDefinition | ||
| metadata: | ||
| name: provisionings.metal3.io | ||
| spec: | ||
| group: metal3.io | ||
| names: | ||
| kind: Provisioning | ||
| listKind: ProvisioningList | ||
| plural: provisionings | ||
| singular: provisioning | ||
| scope: Cluster | ||
| subresources: | ||
| status: {} | ||
| validation: | ||
| openAPIV3Schema: | ||
| description: 'Provisioning contains configuration used by the Provisioning | ||
| service (Ironic) to provision baremetal hosts. \n Provisioning is created | ||
| by the Openshift installer using admin or user provided information about | ||
| the provisioning network and the NIC on the server that can be used to PXE | ||
| boot it. \n This CR is a singleton, created by the installer and currently | ||
| only consumed by the machine-api-operator to bring up and update containers | ||
| in a metal3 cluster.' | ||
| type: object | ||
| required: | ||
| - spec | ||
| 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: Specification of provisioning configuration for Metal3. | ||
| type: object | ||
| properties: | ||
| provisioningInterface: | ||
| description: provisioningInterface is the name of the network interface | ||
| on a baremetal server to the provisioning network. It can have values | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This sentence seems awkward to me. I think I would say "proisioningInterface is the name of the network interface on a baremetal server that is used to provision new machines"
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thank you for the comment @imain . I will take care of it in the next MAO patch containing changes to read this CR. |
||
| like eth1 or ens3. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I like the examples here. |
||
| type: string | ||
| provisioningIP: | ||
| description: provisioningIP is the IP address assigned to the provisioningInterface | ||
| of the baremetal server. This IP address should be within the provisioning | ||
| subnet, and outside of the DHCP range. | ||
| type: string | ||
| provisioningNetworkCIDR: | ||
| description: provisioningNetworkCIDR is the network on which the baremetal | ||
| nodes are provisioned. The provisioningIP and the IPs in the dhcpRange | ||
| all come from within this network. | ||
| type: string | ||
| provisioningDHCPExternal: | ||
| description: provisioningDHCPExternal indicates whether the DHCP server for IP | ||
| addresses in the provisioning DHCP range is present within the metal3 cluster | ||
| or external to it. | ||
| type: boolean | ||
| provisioningDHCPRange: | ||
| description: Needs to be interpreted along with provisioningDHCPExternal. | ||
| If the value of provisioningDHCPExternal is set to False, then | ||
| provisioningDHCPRange represents the range of IP addresses that the DHCP server | ||
| running within the metal3 cluster can use while provisioning baremetal servers. | ||
| If the value of provisioningDHCPExternal is set to True, then the value of | ||
| provisioningDHCPRange will be ignored. When the value of provisioningDHCPExternal | ||
| is set to False, indicating an internal DHCP server and the value of | ||
| provisioningDHCPRange is not set, then the DHCP range is taken to be the default | ||
| range which goes from .10 to .100 of the provisioningNetworkCIDR. This is the only | ||
| value in all of the provisioning configuration that can be changed after the | ||
| installer has created the CR. This value needs to be two comma sererated IP | ||
| addresses within the provisioningNetworkCIDR where the 1st address represents the | ||
| start of the range and the 2nd address represents the last usable address in the | ||
| range. | ||
| type: string | ||
| status: | ||
| description: status holds observed values from the cluster. They may not | ||
| be overridden. | ||
| type: object | ||
| properties: | ||
| conditions: | ||
| description: conditions is a list of conditions and their status | ||
| type: array | ||
| items: | ||
| description: OperatorCondition is just the standard condition fields. | ||
| type: object | ||
| properties: | ||
| lastTransitionTime: | ||
| type: string | ||
| format: date-time | ||
| message: | ||
| type: string | ||
| reason: | ||
| type: string | ||
| status: | ||
| type: string | ||
| type: | ||
| type: string | ||
| generations: | ||
| description: generations are used to determine when an item needs to | ||
| be reconciled or has changed in a way that needs a reaction. | ||
| type: array | ||
| items: | ||
| description: GenerationStatus keeps track of the generation for a | ||
| given resource so that decisions about forced updates can be made. | ||
| type: object | ||
| properties: | ||
| group: | ||
| description: group is the group of the thing you're tracking | ||
| type: string | ||
| hash: | ||
| description: hash is an optional field set for resources without | ||
| generation that are content sensitive like secrets and configmaps | ||
| type: string | ||
| lastGeneration: | ||
| description: lastGeneration is the last generation of the workload | ||
| controller involved | ||
| type: integer | ||
| format: int64 | ||
| name: | ||
| description: name is the name of the thing you're tracking | ||
| type: string | ||
| namespace: | ||
| description: namespace is where the thing you're tracking is | ||
| type: string | ||
| resource: | ||
| description: resource is the resource type of the thing you're | ||
| tracking | ||
| type: string | ||
| observedGeneration: | ||
| description: observedGeneration is the last generation change you've | ||
| dealt with | ||
| type: integer | ||
| format: int64 | ||
| readyReplicas: | ||
| description: readyReplicas indicates how many replicas are ready and | ||
| at the desired state | ||
| type: integer | ||
| format: int32 | ||
| version: v1alpha1 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. are you planning going
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Promoting beta later on. But at this point want to leave it as alpha for this PR. |
||
| versions: | ||
| - name: v1alpha1 | ||
| served: true | ||
| storage: true | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit I would just say "the metal3 provisioning services", Ironic is supposed to be an implementation detail.