Registers the edge host device
POST/v1/edgehosts/register
Registers the edge host device
Request
Header Parameters
Scope the request to the specified project uid
- application/json
Body
Array [
Array [
]
]
Array [
Array [
]
Array [
Array [
]
Array [
]
Array [
]
]
]
Array [
Array [
]
]
Array [
]
Array [
]
Array [
]
Array [
]
Array [
]
Array [
Array [
]
Array [
Array [
]
]
]
aclmeta
object
Resource access control information (Read-only response data)
User or service uid which created the resource
Project's uid if the resource is under a project
Tenant's uid
metadata
object
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
annotations
object
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
labels
object
Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names
UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
spec
object
EdgeHostDeviceSpec defines the desired state of EdgeHostDevice
cloudProperties
object
Additional cloud properties of the edge host (applicable based on the cloud type)
vsphere
Vsphere cloud properties of edge host
datacenters
object[]
computeClusters
object[]
clusterProfileTemplates
object[]
packServerRefs
object[]
PackServerRefs is only used on Hubble side it is reference to pack registry servers which PackRef belongs to in hubble, pack server is a top level object, so use a reference to point to it packs within a clusterprofile can come from different pack servers, so this is an array
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
This secret is used only on Palette side use case is similar to k8s image pull secret this single secret internally should contains all the pack servers in PackServerRefs if empty, means no credential is needed to access the pack server For spectro saas, Ally will set this field before pass to palette
packs
object[]
Packs definitions here are final definitions. If ClonedFrom and ParamsOverwrite is present, then Packs are the final merge result of ClonedFrom and ParamsOverwrite So orchestration engine will just take the Packs and do the work, no need to worry about parameters merge
annotations
object
Annotations is used to allow packref to add more arbitrary information one example is to add git reference for values.yaml
digest is used to specify the version should be installed by palette when pack upgrade available, change this digest to trigger upgrade
pack is invalid when the associated tag is deleted from the registry
Possible values: [kernel
, os
, k8s
, cni
, csi
, addon
]
path to the pack logo
manifests
object[]
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
pack name
PackUID is Hubble packUID, not palette Pack.UID It is used by Hubble only.
params
object
params passed as env variables to be consumed at installation time
presets
object[]
pack registry uid
schema
object[]
pack registry server or helm repo
pack tag
Possible values: [spectro
, helm
, manifest
]
type of the pack
values represents the values.yaml used as input parameters either Params OR Values should be used, not both If both applied at the same time, will only use Values
pack version
version start from 1.0.0, matching the index of ClusterProfileSpec.Versions[] will be used by clusterSpec to identify which version is applied to the cluster
relatedObject
object
ObjectReference contains enough information to let you inspect or modify the referred object.
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
Deprecated. Use profileVersion
device
object
DeviceSpec defines the desired state of Device
Possible values: [arm64
, amd64
]
Default value: amd64
Architecture type of the edge host
cpu
object
number of cpu cores
disks
object[]
partitions
object[]
Size in GB
gpus
object[]
addresses
object
Addresses is a map of PCI device entry name to its addresses. Example entry would be "11:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1eb1] (rev a1)"- > 0000_11_00_0" The address is BDF (Bus Device Function) identifier format seperated by underscores. The first 4 bits are almost always 0000. In the above example 11 is Bus, 00 is Device,0 is function. The values of these addreses are expected in hexadecimal format
Model is the model of GPU, for a given vendor, for eg., TU104GL [Tesla T4]
Vendor is the GPU vendor, for eg., NVIDIA or AMD
memory
object
memory size in bytes
nics
object[]
os
object
host
object
EdgeHost is the underlying appliance
Set to true if auto register is disabled for the device
HostAddress is a FQDN or IP address of the Host
HostAuthToken to authorize auto registration
HostChecksum is the checksum provided by the edge host, to be persisted in SaaS
hostIdentity
HostIdentity is the identity to access the edge host
CACert is the client CA certificate
Mode indicates a system or session connection to the host
SocketPath is an optional path to the socket on the host, if not using defaults
sshSecret
object
SSHSecret to the secret containing ssh-username
SSH secret name
Private Key to access the host
HostPairingKey is the one-time pairing key to pair the edge host with the device registered in SaaS
HostUid is the ID of the EdgeHost
Mac address of edgehost
project
object
Object identity meta
properties
Additional properties of edge host
networks
object[]
NetworkName of the network where this machine will be connected
Possible values: [default
, bridge
]
NetworkType specifies the type of network
storagePools
undefined[]
service
object
ServiceSpec defines the specification of service registering edge
Possible values: [libvirt
, vsphere
, edge-native
]
Deprecated. Cloudtype of the provisioned edge host
status
object
EdgeHostDeviceStatus defines the observed state of EdgeHostDevice
health
EdgeHostHealth defines the desired health state of EdgeHostDevice
Possible values: [healthy
, unhealthy
]
inUseClusters
object[]
packs
object[]
condition
object
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Human-readable message indicating details about last transition.
Unique, one-word, CamelCase reason for the condition's last transition.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
manifests
object[]
condition
object
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Human-readable message indicating details about last transition.
Unique, one-word, CamelCase reason for the condition's last transition.
services
object[]
IP or Host from svc.Status.LoadBalancerStatus.Ingress
name of the loadbalancer service
ports
object[]
port this service exposed
The port that will be exposed by this service.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
profileStatus
object
If it is true then profile pack values has a reference to user defined macros
Possible values: [ready
, unpaired
, in-use
]
Responses
- 200
OK
- application/json
- Schema
- Example (from schema)
Schema
Array [
Array [
]
]
Array [
Array [
]
Array [
Array [
]
Array [
]
Array [
]
]
]
Array [
Array [
]
]
Array [
]
Array [
]
Array [
]
Array [
]
Array [
]
Array [
Array [
]
Array [
Array [
]
]
]
aclmeta
object
Resource access control information (Read-only response data)
User or service uid which created the resource
Project's uid if the resource is under a project
Tenant's uid
metadata
object
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
annotations
object
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
labels
object
Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names
UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
spec
object
EdgeHostDeviceSpec defines the desired state of EdgeHostDevice
cloudProperties
object
Additional cloud properties of the edge host (applicable based on the cloud type)
vsphere
Vsphere cloud properties of edge host
datacenters
object[]
computeClusters
object[]
clusterProfileTemplates
object[]
packServerRefs
object[]
PackServerRefs is only used on Hubble side it is reference to pack registry servers which PackRef belongs to in hubble, pack server is a top level object, so use a reference to point to it packs within a clusterprofile can come from different pack servers, so this is an array
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
This secret is used only on Palette side use case is similar to k8s image pull secret this single secret internally should contains all the pack servers in PackServerRefs if empty, means no credential is needed to access the pack server For spectro saas, Ally will set this field before pass to palette
packs
object[]
Packs definitions here are final definitions. If ClonedFrom and ParamsOverwrite is present, then Packs are the final merge result of ClonedFrom and ParamsOverwrite So orchestration engine will just take the Packs and do the work, no need to worry about parameters merge
annotations
object
Annotations is used to allow packref to add more arbitrary information one example is to add git reference for values.yaml
digest is used to specify the version should be installed by palette when pack upgrade available, change this digest to trigger upgrade
pack is invalid when the associated tag is deleted from the registry
Possible values: [kernel
, os
, k8s
, cni
, csi
, addon
]
path to the pack logo
manifests
object[]
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
pack name
PackUID is Hubble packUID, not palette Pack.UID It is used by Hubble only.
params
object
params passed as env variables to be consumed at installation time
presets
object[]
pack registry uid
schema
object[]
pack registry server or helm repo
pack tag
Possible values: [spectro
, helm
, manifest
]
type of the pack
values represents the values.yaml used as input parameters either Params OR Values should be used, not both If both applied at the same time, will only use Values
pack version
version start from 1.0.0, matching the index of ClusterProfileSpec.Versions[] will be used by clusterSpec to identify which version is applied to the cluster
relatedObject
object
ObjectReference contains enough information to let you inspect or modify the referred object.
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
Deprecated. Use profileVersion
device
object
DeviceSpec defines the desired state of Device
Possible values: [arm64
, amd64
]
Default value: amd64
Architecture type of the edge host
cpu
object
number of cpu cores
disks
object[]
partitions
object[]
Size in GB
gpus
object[]
addresses
object
Addresses is a map of PCI device entry name to its addresses. Example entry would be "11:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1eb1] (rev a1)"- > 0000_11_00_0" The address is BDF (Bus Device Function) identifier format seperated by underscores. The first 4 bits are almost always 0000. In the above example 11 is Bus, 00 is Device,0 is function. The values of these addreses are expected in hexadecimal format
Model is the model of GPU, for a given vendor, for eg., TU104GL [Tesla T4]
Vendor is the GPU vendor, for eg., NVIDIA or AMD
memory
object
memory size in bytes
nics
object[]
os
object
host
object
EdgeHost is the underlying appliance
Set to true if auto register is disabled for the device
HostAddress is a FQDN or IP address of the Host
HostAuthToken to authorize auto registration
HostChecksum is the checksum provided by the edge host, to be persisted in SaaS
hostIdentity
HostIdentity is the identity to access the edge host
CACert is the client CA certificate
Mode indicates a system or session connection to the host
SocketPath is an optional path to the socket on the host, if not using defaults
sshSecret
object
SSHSecret to the secret containing ssh-username
SSH secret name
Private Key to access the host
HostPairingKey is the one-time pairing key to pair the edge host with the device registered in SaaS
HostUid is the ID of the EdgeHost
Mac address of edgehost
project
object
Object identity meta
properties
Additional properties of edge host
networks
object[]
NetworkName of the network where this machine will be connected
Possible values: [default
, bridge
]
NetworkType specifies the type of network
storagePools
undefined[]
service
object
ServiceSpec defines the specification of service registering edge
Possible values: [libvirt
, vsphere
, edge-native
]
Deprecated. Cloudtype of the provisioned edge host
status
object
EdgeHostDeviceStatus defines the observed state of EdgeHostDevice
health
EdgeHostHealth defines the desired health state of EdgeHostDevice
Possible values: [healthy
, unhealthy
]
inUseClusters
object[]
packs
object[]
condition
object
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Human-readable message indicating details about last transition.
Unique, one-word, CamelCase reason for the condition's last transition.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
manifests
object[]
condition
object
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
Human-readable message indicating details about last transition.
Unique, one-word, CamelCase reason for the condition's last transition.
services
object[]
IP or Host from svc.Status.LoadBalancerStatus.Ingress
name of the loadbalancer service
ports
object[]
port this service exposed
The port that will be exposed by this service.
Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.
profileStatus
object
If it is true then profile pack values has a reference to user defined macros
Possible values: [ready
, unpaired
, in-use
]
{
"aclmeta": {
"ownerUid": "string",
"projectUid": "string",
"tenantUid": "string"
},
"metadata": {
"annotations": {},
"creationTimestamp": "2024-07-29T15:51:28.071Z",
"deletionTimestamp": "2024-07-29T15:51:28.071Z",
"labels": {},
"lastModifiedTimestamp": "2024-07-29T15:51:28.071Z",
"name": "string",
"uid": "string"
},
"spec": {
"cloudProperties": {
"vsphere": {
"datacenters": [
{
"computeClusters": [
{
"datastores": [
"string"
],
"name": "string",
"networks": [
"string"
],
"resourcePools": [
"string"
]
}
],
"folders": [
"string"
],
"name": "string"
}
]
}
},
"clusterProfileTemplates": [
{
"cloudType": "string",
"name": "string",
"packServerRefs": [
{
"kind": "string",
"name": "string",
"uid": "string"
}
],
"packServerSecret": "string",
"packs": [
{
"annotations": {},
"digest": "string",
"inValidReason": "string",
"isInvalid": true,
"layer": "kernel",
"logo": "string",
"manifests": [
{
"kind": "string",
"name": "string",
"uid": "string"
}
],
"name": "string",
"packUid": "string",
"params": {},
"presets": [
{
"add": "string",
"displayName": "string",
"group": "string",
"name": "string",
"remove": [
"string"
]
}
],
"registryUid": "string",
"schema": [
{
"format": "string",
"hints": [
"string"
],
"listOptions": [
"string"
],
"name": "string",
"readonly": true,
"regex": "string",
"required": true,
"type": "string"
}
],
"server": "string",
"tag": "string",
"type": "spectro",
"values": "string",
"version": "string"
}
],
"profileVersion": "string",
"relatedObject": {
"kind": "string",
"name": "string",
"uid": "string"
},
"type": "string",
"uid": "string",
"version": 0
}
],
"device": {
"archType": "amd64",
"cpu": {
"cores": 0
},
"disks": [
{
"controller": "string",
"partitions": [
{
"fileSystemType": "string",
"freeSpace": 0,
"mountPoint": "string",
"totalSpace": 0,
"usedSpace": 0
}
],
"size": 0,
"vendor": "string"
}
],
"gpus": [
{
"addresses": {},
"model": "string",
"vendor": "string"
}
],
"memory": {
"sizeInMB": 0
},
"nics": [
{
"dns": [
"string"
],
"gateway": "string",
"ip": "string",
"isDefault": true,
"macAddr": "string",
"nicName": "string",
"subnet": "string"
}
],
"os": {
"family": "string",
"version": "string"
}
},
"host": {
"disableAutoRegister": true,
"hostAddress": "string",
"hostAuthToken": "string",
"hostChecksum": "string",
"hostIdentity": {
"caCert": "string",
"mode": "string",
"socketPath": "string",
"sshSecret": {
"name": "string",
"privateKey": "string"
}
},
"hostPairingKey": "string",
"hostUid": "string",
"macAddress": "string",
"project": {
"name": "string",
"uid": "string"
}
},
"properties": {
"networks": [
{
"networkName": "string",
"networkType": "default"
}
],
"storagePools": [
{
"name": "string"
}
]
},
"service": {
"name": "string",
"version": "string"
},
"type": "libvirt",
"version": "string"
},
"status": {
"health": {
"agentVersion": "string",
"message": "string",
"state": "healthy"
},
"inUseClusters": [
{
"name": "string",
"uid": "string"
}
],
"packs": [
{
"condition": {
"lastProbeTime": "2024-07-29T15:51:28.071Z",
"lastTransitionTime": "2024-07-29T15:51:28.071Z",
"message": "string",
"reason": "string",
"status": "string",
"type": "string"
},
"endTime": "2024-07-29T15:51:28.071Z",
"manifests": [
{
"condition": {
"lastProbeTime": "2024-07-29T15:51:28.071Z",
"lastTransitionTime": "2024-07-29T15:51:28.071Z",
"message": "string",
"reason": "string",
"status": "string",
"type": "string"
},
"name": "string",
"uid": "string"
}
],
"name": "string",
"profileUid": "string",
"services": [
{
"host": "string",
"name": "string",
"ports": [
{
"port": 0,
"protocol": "string"
}
]
}
],
"startTime": "2024-07-29T15:51:28.071Z",
"type": "string",
"version": "string"
}
],
"profileStatus": {
"hasUserMacros": true
},
"serviceAuthToken": "string",
"state": "ready"
}
}