Returns the specified cluster
GET/v1/spectroclusters/:uid
Returns the specified cluster
Request​
Path Parameters
Cluster uid
Query Parameters
Comma separated tags like system,profile
Resolve pack values if set to true
Includes pack meta such as schema, presets
Filter cluster profile templates by profileType
Include non spectro labels in the cluster labels if set to true
Header Parameters
Scope the request to the specified project uid
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 [
]
Array [
]
Array [
]
Deprecated. Not used for the resource info. 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
Cloud type of the cloud config
metadata
object
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
annotations
object
Annotations are system generated key value metadata for the resource. As an input certain annotations like description can be set.
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
Labels are key value data to organize and categorize resources. Providing spectro__tag as value for a label is considered as a kubernetes compliant tag
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 of the resource.
UID is the unique identifier generated for the resource. This is not an input field for any request.
spec
object
SpectroClusterSpec defines the desired state of SpectroCluster
cloudConfigRef
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.
UID of the referent.
clusterConfig
object
ClusterMetaAttribute contains additional cluster metadata information.
clusterRbac
object[]
Deprecated. Use clusterResources
clusterResources
object
namespaces
object[]
Cluster namespaces
rbacs
object[]
Cluster RBAC role bindings
ControlPlaneHealthCheckTimeout is the timeout to check for ready state of the control plane nodes. If the node is not ready within the time out set, the node will be deleted and a new node will be launched.
hostClusterConfig
clusterEndpoint
config
ingressConfig
Ingress configuration for exposing the virtual cluster's kube-apiserver
loadBalancerConfig
Load balancer configuration for exposing the virtual cluster's kube-apiserver
Possible values: [Ingress
, LoadBalancer
]
is enabled as host cluster
clusterGroup
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.
UID of the referent.
hostCluster
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.
UID of the referent.
Default value: false
is enabled as host cluster
lifecycleConfig
Default value: false
enable pause life cycle config
machineHealthConfig
object
HealthCheckMaxUnhealthy is the value above which, if current nodes are unhealthy remediation will not be triggered Can be an absolute int64 number or a percentage string Default value is 100%, i.e by default it is disabled
NetworkReadyHealthCheckDuration is the timeout to check for the network availability. If the network is not available in the given available time, beyond the timeout check a node will be killed and a new node will be created. Default time is 10m
NodeReadyHealthCheckDuration is the timeout to check for the node ready state. If the node is not ready within the time out set, the node will be deleted and a new node will be launched. Default time is 10m
machineManagementConfig
object
osPatchConfig
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.
PatchOnBoot indicates need to do patch when node first boot up, only once
Reboot once the OS patch is applied
The schedule at which security patches will be applied to OS. Schedule should be in Cron format, see https://en.wikipedia.org/wiki/Cron for more help.
UpdateWorkerPoolsInParallel is used to decide if the update of workerpools happen in parallel. When this flag is false, the workerpools are updated sequentially.
clusterProfileTemplates
object[]
When a cluster created from a clusterprofile at t1, ClusterProfileTemplate is a copy of the draft version or latest published version of the clusterprofileSpec.clusterprofileTemplate then clusterprofile may evolve to v2 at t2, but before user decide to upgrade the cluster, it will stay as it is when user decide to upgrade, clusterProfileTemplate will be updated from the clusterprofile pointed by ClusterProfileRef
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.
UID of the referent.
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.
UID of the referent.
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.
UID of the referent.
Deprecated. Use profileVersion
Possible values: [PureManage
, AlloyMonitor
, AlloyAssist
, AlloyExtend
]
status
object
SpectroClusterStatus
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.
addOnServices
undefined[]
apiEndpoints
object[]
The hostname on which the API server is serving.
The port on which the API server is serving.
clusterImport
object
import link to download and install ally-lite, palette-lite
Deprecated. Use the 'spec.clusterType'
cluster import status
conditions
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.
fips
Possible values: [full
, none
, partial
, unknown
]
Default value: none
location
object
Cluster location information
country code for cluster location
country name for cluster location
geoLoc
object
Geolocation Latlong entity
Latitude of a resource
Longitude of a resource
region code for cluster location
region name for cluster location
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
repave
Cluster repave status
Possible values: [Pending
, Approved
, Reverted
]
Default value: Pending
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.
spcApply
object
Possible values: [DownloadAndInstall
, DownloadAndInstallLater
]
If it is true then Agent can apply the changes to the palette
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.
current operational state
upgrades
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.
virtual
appDeployments
object[]
list of apps deployed on the virtual cluster
clusterGroup
object
Object resource reference
hostCluster
object
Object resource reference
lifecycleStatus
error or success msg of lifecycle
Possible values: [Pausing
, Paused
, Resuming
, Running
, Error
]
lifecycle status
cluster virtual host status
virtualClusters
object[]
list of virtual clusters deployed on the cluster
{
"apiVersion": "string",
"kind": "string",
"metadata": {
"annotations": {},
"creationTimestamp": "2024-04-16T17:49:01.839Z",
"deletionTimestamp": "2024-04-16T17:49:01.839Z",
"labels": {},
"lastModifiedTimestamp": "2024-04-16T17:49:01.839Z",
"name": "string",
"uid": "string"
},
"spec": {
"cloudConfigRef": {
"kind": "string",
"name": "string",
"uid": "string"
},
"cloudType": "string",
"clusterConfig": {
"clusterMetaAttribute": "string",
"clusterRbac": [
{
"kind": "string",
"name": "string",
"uid": "string"
}
],
"clusterResources": {
"namespaces": [
{
"kind": "string",
"name": "string",
"uid": "string"
}
],
"rbacs": [
{
"kind": "string",
"name": "string",
"uid": "string"
}
]
},
"controlPlaneHealthCheckTimeout": "string",
"hostClusterConfig": {
"clusterEndpoint": {
"config": {
"ingressConfig": {
"host": "string",
"port": 0
},
"loadBalancerConfig": {
"externalIPs": [
"string"
],
"externalTrafficPolicy": "string",
"loadBalancerSourceRanges": [
"string"
]
}
},
"type": "Ingress"
},
"clusterGroup": {
"kind": "string",
"name": "string",
"uid": "string"
},
"hostCluster": {
"kind": "string",
"name": "string",
"uid": "string"
},
"isHostCluster": false
},
"lifecycleConfig": {
"pause": false
},
"machineHealthConfig": {
"healthCheckMaxUnhealthy": "string",
"networkReadyHealthCheckDuration": "string",
"nodeReadyHealthCheckDuration": "string"
},
"machineManagementConfig": {
"osPatchConfig": {
"onDemandPatchAfter": "2024-04-16T17:49:01.839Z",
"patchOnBoot": true,
"rebootIfRequired": true,
"schedule": "string"
}
},
"updateWorkerPoolsInParallel": true
},
"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
}
],
"clusterType": "PureManage"
},
"status": {
"abortTimestamp": "2024-04-16T17:49:01.840Z",
"addOnServices": [
{
"endpoint": "string",
"name": "string"
}
],
"apiEndpoints": [
{
"host": "string",
"port": 0
}
],
"clusterImport": {
"importLink": "string",
"isBrownfield": true,
"state": "string"
},
"conditions": [
{
"lastProbeTime": "2024-04-16T17:49:01.840Z",
"lastTransitionTime": "2024-04-16T17:49:01.840Z",
"message": "string",
"reason": "string",
"status": "string",
"type": "string"
}
],
"fips": {
"mode": "none"
},
"location": {
"countryCode": "string",
"countryName": "string",
"geoLoc": {
"latitude": 0,
"longitude": 0
},
"regionCode": "string",
"regionName": "string"
},
"packs": [
{
"condition": {
"lastProbeTime": "2024-04-16T17:49:01.840Z",
"lastTransitionTime": "2024-04-16T17:49:01.840Z",
"message": "string",
"reason": "string",
"status": "string",
"type": "string"
},
"endTime": "2024-04-16T17:49:01.840Z",
"manifests": [
{
"condition": {
"lastProbeTime": "2024-04-16T17:49:01.841Z",
"lastTransitionTime": "2024-04-16T17:49:01.841Z",
"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-04-16T17:49:01.841Z",
"type": "string",
"version": "string"
}
],
"profileStatus": {
"hasUserMacros": true
},
"repave": {
"state": "Pending"
},
"services": [
{
"host": "string",
"name": "string",
"ports": [
{
"port": 0,
"protocol": "string"
}
]
}
],
"spcApply": {
"actionType": "DownloadAndInstall",
"canBeApplied": true,
"crdDigest": "string",
"lastModifiedTime": "2024-04-16T17:49:01.841Z",
"patchAppliedTime": "2024-04-16T17:49:01.841Z",
"spcHash": "string",
"spcInfraHash": "string"
},
"state": "string",
"upgrades": [
{
"reason": [
"string"
],
"timestamp": "2024-04-16T17:49:01.841Z"
}
],
"virtual": {
"appDeployments": [
{
"kind": "string",
"name": "string",
"projectUid": "string",
"tenantUid": "string",
"uid": "string"
}
],
"clusterGroup": {
"kind": "string",
"name": "string",
"projectUid": "string",
"tenantUid": "string",
"uid": "string"
},
"hostCluster": {
"kind": "string",
"name": "string",
"projectUid": "string",
"tenantUid": "string",
"uid": "string"
},
"lifecycleStatus": {
"msg": "string",
"status": "Pausing"
},
"state": "string",
"virtualClusters": [
{
"kind": "string",
"name": "string",
"projectUid": "string",
"tenantUid": "string",
"uid": "string"
}
]
}
}
}