
The auth service (Dex) does not depend on the SIP scheduling output like the other services do, so it can be put in place independet of SIP. This will remove complexity from SIP and give more flexibility in how we deploy Dex through kustomize. Change-Id: I1f871ae3be7d228cef867af6bed8ffffd6d0ea56
571 lines
23 KiB
YAML
571 lines
23 KiB
YAML
apiVersion: apiextensions.k8s.io/v1beta1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
labels:
|
|
clusterctl.cluster.x-k8s.io: ""
|
|
name: baremetalhosts.metal3.io
|
|
spec:
|
|
additionalPrinterColumns:
|
|
- JSONPath: .status.operationalStatus
|
|
description: Operational status
|
|
name: Status
|
|
type: string
|
|
- JSONPath: .status.provisioning.state
|
|
description: Provisioning status
|
|
name: Provisioning Status
|
|
type: string
|
|
- JSONPath: .spec.consumerRef.name
|
|
description: Consumer using this host
|
|
name: Consumer
|
|
type: string
|
|
- JSONPath: .spec.bmc.address
|
|
description: Address of management controller
|
|
name: BMC
|
|
type: string
|
|
- JSONPath: .status.hardwareProfile
|
|
description: The type of hardware detected
|
|
name: Hardware Profile
|
|
type: string
|
|
- JSONPath: .spec.online
|
|
description: Whether the host is online or not
|
|
name: Online
|
|
type: string
|
|
- JSONPath: .status.errorMessage
|
|
description: Most recent error
|
|
name: Error
|
|
type: string
|
|
group: metal3.io
|
|
names:
|
|
kind: BareMetalHost
|
|
listKind: BareMetalHostList
|
|
plural: baremetalhosts
|
|
shortNames:
|
|
- bmh
|
|
- bmhost
|
|
singular: baremetalhost
|
|
scope: Namespaced
|
|
subresources:
|
|
status: {}
|
|
validation:
|
|
openAPIV3Schema:
|
|
description: BareMetalHost is the Schema for the baremetalhosts 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: BareMetalHostSpec defines the desired state of BareMetalHost
|
|
properties:
|
|
bmc:
|
|
description: How do we connect to the BMC?
|
|
properties:
|
|
address:
|
|
description: Address holds the URL for accessing the controller
|
|
on the network.
|
|
type: string
|
|
credentialsName:
|
|
description: The name of the secret containing the BMC credentials
|
|
(requires keys "username" and "password").
|
|
type: string
|
|
disableCertificateVerification:
|
|
description: DisableCertificateVerification disables verification
|
|
of server certificates when using HTTPS to connect to the BMC.
|
|
This is required when the server certificate is self-signed, but
|
|
is insecure because it allows a man-in-the-middle to intercept
|
|
the connection.
|
|
type: boolean
|
|
required:
|
|
- address
|
|
- credentialsName
|
|
type: object
|
|
bootMACAddress:
|
|
description: Which MAC address will PXE boot? This is optional for some
|
|
types, but required for libvirt VMs driven by vbmc.
|
|
pattern: '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'
|
|
type: string
|
|
bootMode:
|
|
description: Select the method of initializing the hardware during boot.
|
|
enum:
|
|
- UEFI
|
|
- legacy
|
|
type: string
|
|
consumerRef:
|
|
description: ConsumerRef can be used to store information about something
|
|
that is using a host. When it is not empty, the host is considered
|
|
"in use".
|
|
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
|
|
description:
|
|
description: Description is a human-entered text used to help identify
|
|
the host
|
|
type: string
|
|
externallyProvisioned:
|
|
description: ExternallyProvisioned means something else is managing
|
|
the image running on the host and the operator should only manage
|
|
the power status and hardware inventory inspection. If the Image field
|
|
is filled in, this field is ignored.
|
|
type: boolean
|
|
hardwareProfile:
|
|
description: What is the name of the hardware profile for this host?
|
|
It should only be necessary to set this when inspection cannot automatically
|
|
determine the profile.
|
|
type: string
|
|
image:
|
|
description: Image holds the details of the image to be provisioned.
|
|
properties:
|
|
checksum:
|
|
description: Checksum is the checksum for the image.
|
|
type: string
|
|
url:
|
|
description: URL is a location of an image to deploy.
|
|
type: string
|
|
required:
|
|
- checksum
|
|
- url
|
|
type: object
|
|
networkData:
|
|
description: NetworkData holds the reference to the Secret containing
|
|
content of network_data.json which is passed to Config Drive
|
|
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
|
|
online:
|
|
description: Should the server be online?
|
|
type: boolean
|
|
taints:
|
|
description: Taints is the full, authoritative list of taints to apply
|
|
to the corresponding Machine. This list will overwrite any modifications
|
|
made to the Machine on an ongoing basis.
|
|
items:
|
|
description: The node this Taint is attached to has the "effect" on
|
|
any pod that does not tolerate the Taint.
|
|
properties:
|
|
effect:
|
|
description: Required. The effect of the taint on pods that do
|
|
not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule
|
|
and NoExecute.
|
|
type: string
|
|
key:
|
|
description: Required. The taint key to be applied to a node.
|
|
type: string
|
|
timeAdded:
|
|
description: TimeAdded represents the time at which the taint
|
|
was added. It is only written for NoExecute taints.
|
|
format: date-time
|
|
type: string
|
|
value:
|
|
description: Required. The taint value corresponding to the taint
|
|
key.
|
|
type: string
|
|
required:
|
|
- effect
|
|
- key
|
|
type: object
|
|
type: array
|
|
userData:
|
|
description: UserData holds the reference to the Secret containing the
|
|
user data to be passed to the host before it boots.
|
|
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
|
|
required:
|
|
- online
|
|
type: object
|
|
status:
|
|
description: BareMetalHostStatus defines the observed state of BareMetalHost
|
|
properties:
|
|
errorMessage:
|
|
description: the last error message reported by the provisioning subsystem
|
|
type: string
|
|
errorType:
|
|
description: ErrorType indicates the type of failure encountered when
|
|
the OperationalStatus is OperationalStatusError
|
|
enum:
|
|
- registration error
|
|
- inspection error
|
|
- provisioning error
|
|
- power management error
|
|
type: string
|
|
goodCredentials:
|
|
description: the last credentials we were able to validate as working
|
|
properties:
|
|
credentials:
|
|
description: SecretReference represents a Secret Reference. It has
|
|
enough information to retrieve secret in any namespace
|
|
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
|
|
credentialsVersion:
|
|
type: string
|
|
type: object
|
|
hardware:
|
|
description: The hardware discovered to exist on the host.
|
|
properties:
|
|
cpu:
|
|
description: CPU describes one processor on the host.
|
|
properties:
|
|
arch:
|
|
type: string
|
|
clockMegahertz:
|
|
description: ClockSpeed is a clock speed in MHz
|
|
count:
|
|
type: integer
|
|
flags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
model:
|
|
type: string
|
|
required:
|
|
- arch
|
|
- clockMegahertz
|
|
- count
|
|
- flags
|
|
- model
|
|
type: object
|
|
firmware:
|
|
description: Firmware describes the firmware on the host.
|
|
properties:
|
|
bios:
|
|
description: The BIOS for this firmware
|
|
properties:
|
|
date:
|
|
description: The release/build date for this BIOS
|
|
type: string
|
|
vendor:
|
|
description: The vendor name for this BIOS
|
|
type: string
|
|
version:
|
|
description: The version of the BIOS
|
|
type: string
|
|
required:
|
|
- date
|
|
- vendor
|
|
- version
|
|
type: object
|
|
required:
|
|
- bios
|
|
type: object
|
|
hostname:
|
|
type: string
|
|
nics:
|
|
items:
|
|
description: NIC describes one network interface on the host.
|
|
properties:
|
|
ip:
|
|
description: The IP address of the device
|
|
type: string
|
|
mac:
|
|
description: The device MAC addr
|
|
pattern: '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'
|
|
type: string
|
|
model:
|
|
description: The name of the model, e.g. "virt-io"
|
|
type: string
|
|
name:
|
|
description: The name of the NIC, e.g. "nic-1"
|
|
type: string
|
|
pxe:
|
|
description: Whether the NIC is PXE Bootable
|
|
type: boolean
|
|
speedGbps:
|
|
description: The speed of the device
|
|
type: integer
|
|
vlanId:
|
|
description: The untagged VLAN ID
|
|
format: int32
|
|
type: integer
|
|
vlans:
|
|
description: The VLANs available
|
|
items:
|
|
description: VLAN represents the name and ID of a VLAN
|
|
properties:
|
|
id:
|
|
description: VLANID is a 12-bit 802.1Q VLAN identifier
|
|
format: int32
|
|
type: integer
|
|
name:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
type: array
|
|
required:
|
|
- ip
|
|
- mac
|
|
- model
|
|
- name
|
|
- pxe
|
|
- speedGbps
|
|
- vlanId
|
|
type: object
|
|
type: array
|
|
ramMebibytes:
|
|
type: integer
|
|
storage:
|
|
items:
|
|
description: Storage describes one storage device (disk, SSD,
|
|
etc.) on the host.
|
|
properties:
|
|
hctl:
|
|
description: The SCSI location of the device
|
|
type: string
|
|
model:
|
|
description: Hardware model
|
|
type: string
|
|
name:
|
|
description: A name for the disk, e.g. "disk 1 (boot)"
|
|
type: string
|
|
rotational:
|
|
description: Whether this disk represents rotational storage
|
|
type: boolean
|
|
serialNumber:
|
|
description: The serial number of the device
|
|
type: string
|
|
sizeBytes:
|
|
description: The size of the disk in Bytes
|
|
format: int64
|
|
type: integer
|
|
vendor:
|
|
description: The name of the vendor of the device
|
|
type: string
|
|
wwn:
|
|
description: The WWN of the device
|
|
type: string
|
|
wwnVendorExtension:
|
|
description: The WWN Vendor extension of the device
|
|
type: string
|
|
wwnWithExtension:
|
|
description: The WWN with the extension
|
|
type: string
|
|
required:
|
|
- name
|
|
- rotational
|
|
- serialNumber
|
|
- sizeBytes
|
|
type: object
|
|
type: array
|
|
systemVendor:
|
|
description: HardwareSystemVendor stores details about the whole
|
|
hardware system.
|
|
properties:
|
|
manufacturer:
|
|
type: string
|
|
productName:
|
|
type: string
|
|
serialNumber:
|
|
type: string
|
|
required:
|
|
- manufacturer
|
|
- productName
|
|
- serialNumber
|
|
type: object
|
|
required:
|
|
- cpu
|
|
- firmware
|
|
- hostname
|
|
- nics
|
|
- ramMebibytes
|
|
- storage
|
|
- systemVendor
|
|
type: object
|
|
hardwareProfile:
|
|
description: The name of the profile matching the hardware details.
|
|
type: string
|
|
lastUpdated:
|
|
description: LastUpdated identifies when this status was last observed.
|
|
format: date-time
|
|
type: string
|
|
operationHistory:
|
|
description: OperationHistory holds information about operations performed
|
|
on this host.
|
|
properties:
|
|
deprovision:
|
|
description: OperationMetric contains metadata about an operation
|
|
(inspection, provisioning, etc.) used for tracking metrics.
|
|
properties:
|
|
end:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
start:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
type: object
|
|
inspect:
|
|
description: OperationMetric contains metadata about an operation
|
|
(inspection, provisioning, etc.) used for tracking metrics.
|
|
properties:
|
|
end:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
start:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
type: object
|
|
provision:
|
|
description: OperationMetric contains metadata about an operation
|
|
(inspection, provisioning, etc.) used for tracking metrics.
|
|
properties:
|
|
end:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
start:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
type: object
|
|
register:
|
|
description: OperationMetric contains metadata about an operation
|
|
(inspection, provisioning, etc.) used for tracking metrics.
|
|
properties:
|
|
end:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
start:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
type: object
|
|
type: object
|
|
operationalStatus:
|
|
description: OperationalStatus holds the status of the host
|
|
enum:
|
|
- ""
|
|
- OK
|
|
- discovered
|
|
- error
|
|
type: string
|
|
poweredOn:
|
|
description: indicator for whether or not the host is powered on
|
|
type: boolean
|
|
provisioning:
|
|
description: Information tracked by the provisioner.
|
|
properties:
|
|
ID:
|
|
description: The machine's UUID from the underlying provisioning
|
|
tool
|
|
type: string
|
|
image:
|
|
description: Image holds the details of the last image successfully
|
|
provisioned to the host.
|
|
properties:
|
|
checksum:
|
|
description: Checksum is the checksum for the image.
|
|
type: string
|
|
url:
|
|
description: URL is a location of an image to deploy.
|
|
type: string
|
|
required:
|
|
- checksum
|
|
- url
|
|
type: object
|
|
state:
|
|
description: An indiciator for what the provisioner is doing with
|
|
the host.
|
|
type: string
|
|
required:
|
|
- ID
|
|
- state
|
|
type: object
|
|
triedCredentials:
|
|
description: the last credentials we sent to the provisioning backend
|
|
properties:
|
|
credentials:
|
|
description: SecretReference represents a Secret Reference. It has
|
|
enough information to retrieve secret in any namespace
|
|
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
|
|
credentialsVersion:
|
|
type: string
|
|
type: object
|
|
required:
|
|
- errorMessage
|
|
- hardwareProfile
|
|
- operationHistory
|
|
- operationalStatus
|
|
- poweredOn
|
|
- provisioning
|
|
type: object
|
|
type: object
|
|
version: v1alpha1
|
|
versions:
|
|
- name: v1alpha1
|
|
served: true
|
|
storage: true
|