Skip to content

Commit

Permalink
add tinkerbell schemas (#141)
Browse files Browse the repository at this point in the history
  • Loading branch information
itspngu authored Mar 20, 2023
1 parent 6d73d12 commit 2c1d4ac
Show file tree
Hide file tree
Showing 6 changed files with 1,149 additions and 0 deletions.
154 changes: 154 additions & 0 deletions bmc.tinkerbell.org/job_v1alpha1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
{
"description": "Job is the Schema for the bmcjobs 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": "JobSpec defines the desired state of Job",
"properties": {
"machineRef": {
"description": "MachineRef represents the Machine resource to execute the job. All the tasks in the job are executed for the same Machine.",
"properties": {
"name": {
"description": "Name of the Machine.",
"type": "string"
},
"namespace": {
"description": "Namespace the Machine resides in.",
"type": "string"
}
},
"required": [
"name",
"namespace"
],
"type": "object",
"additionalProperties": false
},
"tasks": {
"description": "Tasks represents a list of baseboard management actions to be executed. The tasks are executed sequentially. Controller waits for one task to complete before executing the next. If a single task fails, job execution stops and sets condition Failed. Condition Completed is set only if all the tasks were successful.",
"items": {
"description": "Action represents the action to be performed. A single task can only perform one type of action. For example either PowerAction or OneTimeBootDeviceAction.",
"maxProperties": 1,
"properties": {
"oneTimeBootDeviceAction": {
"description": "OneTimeBootDeviceAction represents a baseboard management one time set boot device operation.",
"properties": {
"device": {
"description": "Devices represents the boot devices, in order for setting one time boot. Currently only the first device in the slice is used to set one time boot.",
"items": {
"description": "BootDevice represents boot device of the Machine.",
"type": "string"
},
"type": "array"
},
"efiBoot": {
"description": "EFIBoot instructs the machine to use EFI boot.",
"type": "boolean"
}
},
"required": [
"device"
],
"type": "object",
"additionalProperties": false
},
"powerAction": {
"description": "PowerAction represents a baseboard management power operation.",
"enum": [
"on",
"off",
"soft",
"status",
"cycle",
"reset"
],
"type": "string"
},
"virtualMediaAction": {
"description": "VirtualMediaAction represents a baseboard management virtual media insert/eject.",
"properties": {
"kind": {
"type": "string"
},
"mediaURL": {
"description": "mediaURL represents the URL of the image to be inserted into the virtual media, or empty to eject media.",
"type": "string"
}
},
"required": [
"kind"
],
"type": "object",
"additionalProperties": false
}
},
"type": "object",
"additionalProperties": false
},
"minItems": 1,
"type": "array"
}
},
"required": [
"machineRef",
"tasks"
],
"type": "object",
"additionalProperties": false
},
"status": {
"description": "JobStatus defines the observed state of Job",
"properties": {
"completionTime": {
"description": "CompletionTime represents time when the job was completed. The completion time is only set when the job finishes successfully.",
"format": "date-time",
"type": "string"
},
"conditions": {
"description": "Conditions represents the latest available observations of an object's current state.",
"items": {
"properties": {
"message": {
"description": "Message represents human readable message indicating details about last transition.",
"type": "string"
},
"status": {
"description": "Status is the status of the Job condition. Can be True or False.",
"type": "string"
},
"type": {
"description": "Type of the Job condition.",
"type": "string"
}
},
"required": [
"status",
"type"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"startTime": {
"description": "StartTime represents time when the Job controller started processing a job.",
"format": "date-time",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object"
}
116 changes: 116 additions & 0 deletions bmc.tinkerbell.org/machine_v1alpha1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
{
"description": "Machine is the Schema for the machines 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": "MachineSpec defines desired machine state",
"properties": {
"connection": {
"description": "Connection contains connection data for a Baseboard Management Controller.",
"properties": {
"authSecretRef": {
"description": "AuthSecretRef is the SecretReference that contains authentication information of the Machine. The Secret must contain username and password keys.",
"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",
"additionalProperties": false
},
"host": {
"description": "Host is the host IP address or hostname of the Machine.",
"minLength": 1,
"type": "string"
},
"insecureTLS": {
"description": "InsecureTLS specifies trusted TLS connections.",
"type": "boolean"
},
"port": {
"default": 623,
"description": "Port is the port number for connecting with the Machine.",
"type": "integer"
}
},
"required": [
"authSecretRef",
"host",
"insecureTLS",
"port"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"connection"
],
"type": "object",
"additionalProperties": false
},
"status": {
"description": "MachineStatus defines the observed state of Machine",
"properties": {
"conditions": {
"description": "Conditions represents the latest available observations of an object's current state.",
"items": {
"description": "MachineCondition defines an observed condition of a Machine.",
"properties": {
"lastUpdateTime": {
"description": "LastUpdateTime of the condition.",
"format": "date-time",
"type": "string"
},
"message": {
"description": "Message is a human readable message indicating with details of the last transition.",
"type": "string"
},
"status": {
"description": "Status of the condition.",
"type": "string"
},
"type": {
"description": "Type of the Machine condition.",
"type": "string"
}
},
"required": [
"status",
"type"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"powerState": {
"description": "Power is the current power state of the Machine.",
"enum": [
"on",
"off"
],
"type": "string"
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object"
}
Loading

0 comments on commit 2c1d4ac

Please sign in to comment.