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 [
]
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
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
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
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. 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
clusterConfig
object
ClusterConfig is the configuration related to a general cluster. Configuration related to the health of the cluster.
ClusterMetaAttribute contains additional cluster metadata information.
clusterRbac
object[]
Deprecated. Use clusterResources
clusterResources
object
ClusterResources defines the managment of namespace resource allocations, role bindings.
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
HostClusterConfiguration defines the configuration of host clusters, where virtual clusters be deployed
clusterEndpoint
host cluster configuration
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. 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
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. 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
Default value: false
is enabled as host cluster
lifecycleConfig
Default value: false
enable pause life cycle config
machineHealthConfig
object
MachineHealthCheckConfig defines the healthcheck timeouts for the node. The timeouts are configured by the user to overide the default healthchecks.
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
MachineManagementConfig defines the management configurations for the node. Patching OS security updates etc can be configured by user.
osPatchConfig
object
OS patch config contains properties to patch node os with latest security packages. If OsPatchConfig is not provided then node os will not be patched with latest security updates. Note: For edge based cluster (like edge-native type) the osPatchConfig is NOT applicable, the values will be ignored.
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. 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
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
cluster life cycle status of virtual cluster
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-07-03T13:23:53.927Z",
"deletionTimestamp": "2024-07-03T13:23:53.927Z",
"labels": {},
"lastModifiedTimestamp": "2024-07-03T13:23:53.927Z",
"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-07-03T13:23:53.928Z",
"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-07-03T13:23:53.928Z",
"addOnServices": [
{
"endpoint": "string",
"name": "string"
}
],
"apiEndpoints": [
{
"host": "string",
"port": 0
}
],
"clusterImport": {
"importLink": "string",
"isBrownfield": true,
"state": "string"
},
"conditions": [
{
"lastProbeTime": "2024-07-03T13:23:53.928Z",
"lastTransitionTime": "2024-07-03T13:23:53.928Z",
"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-07-03T13:23:53.928Z",
"lastTransitionTime": "2024-07-03T13:23:53.928Z",
"message": "string",
"reason": "string",
"status": "string",
"type": "string"
},
"endTime": "2024-07-03T13:23:53.928Z",
"manifests": [
{
"condition": {
"lastProbeTime": "2024-07-03T13:23:53.928Z",
"lastTransitionTime": "2024-07-03T13:23:53.928Z",
"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-03T13:23:53.928Z",
"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-07-03T13:23:53.928Z",
"patchAppliedTime": "2024-07-03T13:23:53.928Z",
"spcHash": "string",
"spcInfraHash": "string"
},
"state": "string",
"upgrades": [
{
"reason": [
"string"
],
"timestamp": "2024-07-03T13:23:53.928Z"
}
],
"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"
}
]
}
}
}