The API set allows you to perform CRUD operations to interact with and manage cloudspaces, spot node pools, and on-demand node pools on Rackspace Spot.

Key Concepts:

  • Organization:

    • Organization is a representation as a collection of cloudspaces (Kubernetes clusters).

    • Each organization has a unique name and organization ID (namespace) associated with it.

    • Each organization requires setting up a separate billing account for its management.

  • Namespace:

    • The namespace is a representation to identify any organization in Spot Platform.

    • Each organization has a unique namespace associated with it.

    • The namespace is used to scope resources and operations within the Spot platform.

    • Each namespace start with org-.

    • To obtain desired namespace, leverage API: list all organizations to retrieve the details of all organizations, including their associated namespaces.

  • Cloudspace:

    • Cloudspace is a representation of a Kubernetes cluster in your namespace.

    • Each cloudspace is associated with a specific region and will contain SpotNodePool and OnDemandNodePool for storing servers bidded on platform.

  • SpotNodePools and OnDemandNodePools:

    • The SpotNodePools and OnDemandNodePools are nodepools that will contain servers that users have bidded for.

    • When creating the SpotNodePools and OnDemandNodePools, cloudspace should already be created.

    • Billing should be enabled in your organization for the SpotNodePools and OnDemandNodePools to be created.

Almost all API calls require an Oauth Access Token. Refer authentication. section to obtain the Oauth Access Token.

There are some operations which does not require any oauth token for getting response. They are indicated by (unauthenticated api) in the operation summary.

The unauthenticated api operations are:

  • Oauth Token
  • Kubeconfig generation
  • Price History
  • Percentile information
  • Market Price Capacity

Server
https://spot.rackspace.com
Server Variables

  • You need to generate a Oauth Access Token to make all authenticated API calls.
  • You can generate Oauth Access Token using API below Get OAuth token
  • Also, append Bearer keyword before the Oauth Access Token in authorization header.
  • Example of authorization header:
    Authorization: Bearer <Oauth Access Token>

Fields
KeyIn
AuthorizationHeader

Oauth Token

Oauth Token APIs

Get OAuth token (unauthenticated api)

Retrieve an OAuth Access token for specified a refresh token. Take id_token value from response as Oauth access token value for all subsequent authorization API calls.

Auth
Headers
Content-Typestring

Must be set to application/x-www-form-urlencoded for the request to be processed correctly.

Default: application/x-www-form-urlencoded

Request Body
objectobject
grant_typestring

The type of grant needed. Use the literal string refresh_token as its value to obtain a new access token in response.

Default: refresh_token

client_idstring

Use mwG3lUMV8KyeMqHe4fJ5Bb3nM1vBvRNa as client_id in request parameter when requesting for access token.

Default: mwG3lUMV8KyeMqHe4fJ5Bb3nM1vBvRNa

refresh_tokenstring

Obtain a Refresh Token from the API: Rackspace Spot Console. and use it here as request parameter.

Steps:

  • Log in to the Rackspace Spot Console.

  • In the dashboard's sidebar, navigate to API Access > Terraform.

  • Click Get New Token to generate a refresh token.

  • Use the refresh token obtained as a parameter in your request.

Default:

POST /oauth/token
Copy
Responses
200

Successfully retrieved OAuth token. Take id_token value from response as Oauth access token value for all authorization API calls.

objectobject
access_tokenstring

Access token issued by the authorization server.

id_tokenstring

ID token representing the authenticated user.

scopestring

Scopes that were granted by the user.

expires_ininteger

Time in seconds until the access token expires.

token_typestring

The type of token issued.

401

Unauthorized request. Please provide valid refresh token.

500

Unexpected error

Response
Copy

Kubeconfig Generation

Kubeconfig generation APIs

Generate kubeconfig (unauthenticated API)

Generates a kubeconfig file for the specified organization and cloudspace using a refresh token. It is unauthenticated api, so doesn't require API token in headers when calling it.

Auth
Request Body
objectobject
organization_namestring

Name of the organization for which kubeconfig is to be generated.

cloudspace_namestring

Name of the cloudspace belonging to the organization.

refresh_tokenstring

Refresh token obtained via UI authentication.

POST /apis/auth.ngpc.rxt.io/v1/generate-kubeconfig
Copy
Responses
200

Kubeconfig generated successfully.

objectobject
dataobject
kubeconfigstring

Full kubeconfig YAML as a string.

messagestring
status_codeinteger
400

Bad request. Input parameter is missing or invalid.

401

Unauthorized. The refresh token is invalid or expired.

Response
Copy

Region

Region APIs

Get all regions

List objects of kind Region to provide all available regions.

Auth
GET /apis/ngpc.rxt.io/v1/regions
Copy
Responses
200

Regions obtained successfully

objectobject

RegionList is a list of Region

apiVersionstring

ngpc.rxt.io/v1

itemsarray[object]

List of regions.

apiVersionstring

ngpc.rxt.io/v1

kindstring

Region

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

RegionSpec defines the desired state of Region

countrystring

Country describes the country the region is located in. It should adhere to the "ISO 3166-1 alpha-3" standard. See: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes

maxLength: 3

minLength: 3

descriptionstring

Description is a free-form field to provide further description of the region's location.

providerobject

ProviderSpec describes the actual infrastructure/cloud backing the region For example, ironic, ospc, or whatever other clouds we may support

providerRegionNamestring
providerTypestring

ProviderSpec describes the actual infrastructure/cloud Provider backing the region For example, ironic, ospc, or whatever other clouds we may support

kindstring

RegionList

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

401

Unauthorized access

Response
Copy

Region By Name

Region by name APIs

Get region by name

Get the specified Region.

Auth
Path Params
namestring

Use a valid Region name. Some available regions are:

  • us-central-dfw-2
  • us-east-iad-1
  • eu-west-lon-1
  • uk-lon-1
  • us-west-sjc-1
  • us-central-ord-1
  • us-central-dfw-1

To get more information on available regions, refer to the regions endpoint:

Regions.

GET /apis/ngpc.rxt.io/v1/regions/{name}
Copy
Responses
200

Specific Region obtained successfully

objectobject

Region is the Schema for the regions API

apiVersionstring

ngpc.rxt.io/v1

kindstring

Region

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

RegionSpec defines the desired state of Region

countrystring

Country describes the country the region is located in. It should adhere to the "ISO 3166-1 alpha-3" standard. See: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes

maxLength: 3

minLength: 3

descriptionstring

Description is a free-form field to provide further description of the region's location.

providerobject

ProviderSpec describes the actual infrastructure/cloud backing the region For example, ironic, ospc, or whatever other clouds we may support

providerRegionNamestring
providerTypestring

ProviderSpec describes the actual infrastructure/cloud Provider backing the region For example, ironic, ospc, or whatever other clouds we may support

401

Unauthorized access

Response
Copy

Serverclass

Serverclass APIs

Get all serverclasses

List objects of kind ServerClass to provide all available serverclasses.

Auth
GET /apis/ngpc.rxt.io/v1/serverclasses
Copy
Responses
200

Serverclasses obtained successfully

objectobject

ServerClassList is a list of ServerClass

apiVersionstring

ngpc.rxt.io/v1

itemsarray[object]

List of serverclasses.

apiVersionstring

ngpc.rxt.io/v1

kindstring

serverclass

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

ServerClassSpec defines the desired state of ServerClass

availabilitystring

Availability describes the serverclass availability status For example, deprecated

categorystring

Category is a loose grouping of ServerClasses into different flavor types For example, general, compute, memory

displayNamestring

DisplayName specifies the human-readable name to use. If not set, the metadata.name should be used.

flavorTypestring

FlavorType describes whether it is a VM or bare metal. This determines certain capabilities like nested virtualization

onDemandPricingobject

OnDemandPricing contains a basic ondemand pricing for this type of servers.

coststring

Cost describes the =USD cost of this type of servers. If pricing is localized, this can be used as the base factor.

intervalstring

Interval indicates the interval used for the pricing. The format is a golang duration string, for example: 20s, 6m, or 1h6m.

providerobject

Provider contails provider specific names for the flavor and type of cloud

providerFlavorIDstring

ProviderFlavorID is the actual flavor ID in the cloud Since ServerClass.Name will be region-specific

providerTypestring

ProviderType indicates OSPC vs Ironic, etc...

regionstring

Region specifies the region where the servers belonging to this ServerClass resides in.

resourcesobject

Resources contains the characteristics of the servers that are part of this class of servers.

cpustring
memorystring
statusobject

ServerClassStatus defines the observed state of ServerClass

availableinteger

Available indicates how many servers of this class are available to be provisioned.

capacityinteger

Capacity describes how many servers are available both online and offline.

lastAuctioninteger
reservedinteger

Reserved shows how many servers of this class are currently in use by organizations.

spotPricingobject

SpotPricing contains a basic spot pricing for this type of servers. This is updated from Auction Controller based on Auction results and market variations.

hammerPricePerHourstring

HammerPricePerHour describes the current =USD cost per hour being billed for this type of servers if reserved as spot. This is intended to be used as an indicator and will vary based on Market conditions.

marketPricePerHourstring

MarketPricePerHour describes the current =USD cost per hour of this type of servers if reserved as spot. This is intended to be used as an indicator and will vary based on Market conditions.

kindstring

ServerClassList

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

401

Unauthorized access

Response
Copy

Serverclass By Name

Serverclass by name APIs

Get serverclass by name

Read the specified ServerClass

Auth
Path Params
namestring

Use a valid Serverclass name. Some available serverclasses are:

  • gp.vs1.medium-dfw
  • gp.vs1.small-dfw
  • mh.vs1.large-dfw
  • mh.vs1.xlarge-dfw
  • ch.vs1.medium-dfw
  • gp.bm2.large-dfw
  • mh.vs1.medium-dfw
  • gp.bm2.medium-dfw
  • mh.vs1.2xlarge-dfw
  • mh.vs1.2xlarge-iad
  • gp.vs1.2xlarge-lon
  • gp.vs1.xlarge-lon
  • ch.vs1.xlarge-iad
  • gp.bm2.medium-lon
  • ch.vs1.medium-iad
  • gp.bm2.small-lon
  • ch.vs1.2xlarge-iad
  • mh.vs1.xlarge-iad
  • mh.vs1.large-iad
  • ch.vs1.large-lon
  • gp.bm2.large-lon
  • mh.vs1.2xlarge-lon
  • ch.vs1.large-iad
  • gp.bm2.small-iad
  • ch.vs1.2xlarge-lon
  • ch.vs1.medium-lon
  • mh.vs1.medium-lon
  • mh.vs1.large-lon
  • mh.vs1.xlarge-lon
  • gp.vs1.small-iad
  • ch.vs1.xlarge-lon
  • io.bm2-lon
  • io.bm2-iad
  • gp.vs1.large-lon
  • ch.vs1.2xlarge-dfw
  • ch.vs1.xlarge-dfw
  • gp.vs1.2xlarge-iad
  • mh.vs1.medium-iad
  • gp.vs1.large-iad
  • gp.vs1.large-dfw
  • ch.vs1.large-dfw
  • gp.vs1.medium-lon
  • gp.vs1.xlarge-dfw
  • gp.vs1.medium-iad
  • gp.vs1.xlarge-iad

To get more information on available serverclasses, refer to the serverclasses endpoint: ServerClasses.

GET /apis/ngpc.rxt.io/v1/serverclasses/{name}
Copy
Responses
200

Specific Serverclass obtained successfully

objectobject

ServerClass is the Schema for the serverclasses API

apiVersionstring

ngpc.rxt.io/v1

kindstring

serverclass

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

ServerClassSpec defines the desired state of ServerClass

availabilitystring

Availability describes the serverclass availability status For example, deprecated

categorystring

Category is a loose grouping of ServerClasses into different flavor types For example, general, compute, memory

displayNamestring

DisplayName specifies the human-readable name to use. If not set, the metadata.name should be used.

flavorTypestring

FlavorType describes whether it is a VM or bare metal. This determines certain capabilities like nested virtualization

onDemandPricingobject

OnDemandPricing contains a basic ondemand pricing for this type of servers.

coststring

Cost describes the =USD cost of this type of servers. If pricing is localized, this can be used as the base factor.

intervalstring

Interval indicates the interval used for the pricing. The format is a golang duration string, for example: 20s, 6m, or 1h6m.

providerobject

Provider contails provider specific names for the flavor and type of cloud

providerFlavorIDstring

ProviderFlavorID is the actual flavor ID in the cloud Since ServerClass.Name will be region-specific

providerTypestring

ProviderType indicates OSPC vs Ironic, etc...

regionstring

Region specifies the region where the servers belonging to this ServerClass resides in.

resourcesobject

Resources contains the characteristics of the servers that are part of this class of servers.

cpustring
memorystring
statusobject

ServerClassStatus defines the observed state of ServerClass

availableinteger

Available indicates how many servers of this class are available to be provisioned.

capacityinteger

Capacity describes how many servers are available both online and offline.

lastAuctioninteger
reservedinteger

Reserved shows how many servers of this class are currently in use by organizations.

spotPricingobject

SpotPricing contains a basic spot pricing for this type of servers. This is updated from Auction Controller based on Auction results and market variations.

hammerPricePerHourstring

HammerPricePerHour describes the current =USD cost per hour being billed for this type of servers if reserved as spot. This is intended to be used as an indicator and will vary based on Market conditions.

marketPricePerHourstring

MarketPricePerHour describes the current =USD cost per hour of this type of servers if reserved as spot. This is intended to be used as an indicator and will vary based on Market conditions.

401

Unauthorized access

Response
Copy

Organization Api

Organizations APIs

List all organizations

List all organizations along with their details, including the associated namespaces.

Auth
GET /apis/auth.ngpc.rxt.io/v1/organizations
Copy
Responses
200

Successfully retrieved the list of organizations and namespaces.

objectobject
startinteger

Starting index for pagination.

limitinteger

Limit for the number of items per page.

lengthinteger

Number of organizations in the response.

totalinteger

Total number of organizations available.

nextstring

URL for the next page of results (if available).

organizationsarray[object]
idstring

The unique ID of the organization.

namestring

The name of the organization.

display_namestring

The display name of the organization.

metadataobject
namespacestring

The namespace associated with the organization.

400

Bad Request.

401

Unauthorized.

500

Internal Server Error. An unexpected error occurred while processing the request.

Response
Copy

Get all cloudspaces

Retrieve all CloudSpaces from the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the Cloudspace belongs to. Desired namespace value can be obtained by calling api: list of organizations.

GET /apis/ngpc.rxt.io/v1/namespaces/{namespace}/cloudspaces
Copy
Responses
200

CloudSpaces obtained successfully.

objectobject

CloudSpaceList is a list of CloudSpace

apiVersionstring

ngpc.rxt.io/v1

itemsarray[object]

List of cloudspaces.

apiVersionstring

ngpc.rxt.io/v1

Default: ngpc.rxt.io/v1

kindstring

CloudSpace

Default: CloudSpace

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

CloudSpaceSpec defines the desired state of CloudSpace

HAControlPlaneboolean

Set to Enable control plane HA and setting HACount

Default: false

bidRequestsarray[string]

Contains a list of SpotNodePool requests

cloudstring

Cloud describes to which Cloud the CloudSpace belongs to. Cloud is required if deploymentType=gen1

Default: default

clusterRefobject

ClusterRef contains a reference to the Cluster in PMK. Setting this field will disable discovery and override any discovered cluster.

  • If it is a Qbert Cluster, the Kind will be "QbertCluster", the namespace will be the project ID, and the name will be the ID.
  • If it is a CAPI Cluster, the kind will be "Cluster".
apiVersionstring

ngpc.rxt.io/v1

fieldPathstring

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.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

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

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

cnistring

CNI specifies the Container Network Interface (CNI) to be used. Supported values: calico, cilium, byocni

Enum: calico,cilium,byocni

deploymentTypestring

DeploymentType specifies which deploymentType the CloudSpace should use. options: gen1 - PMK/legacy type, gen2 - CAPI based

Enum: gen1,gen2

kubernetesVersionstring

KubernetesVersion specifies the version of Kubernetes to deploy.

networksarray[object]

Networks contain the configuration of the VM networks in this CloudSpace.

namestring
subnetstring
onDemandRequestsarray[string]

Contains a list of OnDemand requests

regionstring

Region specifies the region which the CloudSpace should be in.

serversarray[object]

Servers contains the requested set of servers for this CloudSpace.

classstring
countinteger
typestring

Type of CloudSpace

webhookstring

Optional webhook that will be invoked when Servers of this CloudSpace are released

statusobject

CloudSpaceStatus defines the observed state of CloudSpace

APIServerEndpointstring
assignedServersobject

ServerStatus contains status of servers configuring

*object
IPstring
clusterRolestring
errorstring
serverClassNamestring
serverNamestring
serverTypestring
statestring
bidsobject

Map of each bid and it's WonCount status

*object
bidNamestring
typestring
wonCountinteger
cloudspaceClassNamestring

CloudspaceClass that this cloudspace uses, valid only if deploymentType=gen2. Will be assigned by Cloudspace controller during cloudspace creation

clusterRefobject

ClusterRef contains a reference to the Cluster in PMK.

  • If it is a Qbert Cluster, the Kind will be "QbertCluster", the namespace will be the project ID, the name will be the cluster name, and the UID will be the cluster ID.
  • If it is a CAPI Cluster, the kind will be "Cluster".
clusterobject

ObjectReference contains enough information to let you inspect or modify the referred object.

New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.

  1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
  2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded.
  3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
  4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant.
  5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.

Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .

apiVersionstring

ngpc.rxt.io/v1

fieldPathstring

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.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

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

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

reasonstring
statusstring
conditionsarray[object]

Conditions defines current service state of the CloudSpace.

lastTransitionTimedate-time

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

messagestring

A human readable message indicating details about the transition. This field may be empty.

reasonstring

The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

severitystring

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

statusstring

Status of the condition, one of True, False, Unknown.

typestring

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

currentKubernetesVersionstring

CurrentKubernetesVersion contains the current version of Kubernetes running in the CloudSpace

firstReadyTimestampdate-time

Contains the time at which the cloudspace first moved to Ready phase

healthstring

Health indicates if CloudSpace has a working APIServer and available nodes

pendingAllocationsobject

Outstanding pooler Allocation IDs for Cloud Instances

*object
allocatedCountinteger
bidNamestring
bidTypestring
countinteger
serverClassNamestring
phasestring

Phase indicates the current state of the Cloud.

reasonstring

Reason contains the reason why the CloudSpace is in a certain phase.

sshSecretNamestring

SSHSecretName contains the SSH Key Secret to access nodes in the CloudSpace

upgradePhasestring

UpgradePhase indicates the current state of the CloudSpace upgrade

kindstring

CloudSpaceList

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

401

Unauthorized access.

Response
Copy

Create cloudspace

Create a CloudSpace in the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the Cloudspace belongs to. Desired namespace value can be obtained by calling api: list of organizations.

Request Body

  • Use value for apiVersion as ngpc.rxt.io/v1.

  • Use value for kind as CloudSpace.

  • In the metadata object:

    • Enter a value for the name field to name your CloudSpace.

    • Select the namespace in which the CloudSpace should be created. This should match the namespace used in the path parameter above.

    • creationTimestamp and deletionTimestamp: Represents timestamp for cloudspace creation. Leave it as default only.

  • In the spec object:

    • Provide the region from the list returned by the Regions API.

    • Enter the webhook URL (Slack channel webhook) to receive node preemption event notifications.

    • Choose the kubernetesVersion for your CloudSpace. Currently available versions are:

      • 1.31.1(latest)
      • 1.30.10
      • 1.29.6
    • You can leave cloud, cni, and HAControlPlane fields as default unless custom values are needed.

objectobject

CloudSpace is the Schema for the cloudspaces API

apiVersionstring

ngpc.rxt.io/v1

Default: ngpc.rxt.io/v1

kindstring

CloudSpace

Default: CloudSpace

metadataobject

Additional information

namestring

Name of the resource

namespacestring

Organization namespace

specobject

CloudSpaceSpec defines the desired state of CloudSpace

HAControlPlaneboolean

Set to Enable control plane HA and setting HACount

Default: false

cloudstring

Cloud describes to which Cloud the CloudSpace belongs to. Cloud is required if deploymentType=gen1

Default: default

cnistring

CNI specifies the Container Network Interface (CNI) to be used. Supported values: calico, cilium, byocni

Enum: calico,cilium,byocni

kubernetesVersionstring

KubernetesVersion specifies the version of Kubernetes to deploy.

regionstring

Region specifies the region which the CloudSpace should be in.

webhookstring

Optional webhook that will be invoked when Servers of this CloudSpace are released

POST /apis/ngpc.rxt.io/v1/namespaces/{namespace}/cloudspaces
Copy
Responses
200

CloudSpace creation request submitted successfully.

objectobject

CloudSpace is the Schema for the cloudspaces API

apiVersionstring

ngpc.rxt.io/v1

Default: ngpc.rxt.io/v1

kindstring

CloudSpace

Default: CloudSpace

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

CloudSpaceSpec defines the desired state of CloudSpace

HAControlPlaneboolean

Set to Enable control plane HA and setting HACount

Default: false

bidRequestsarray[string]

Contains a list of SpotNodePool requests

cloudstring

Cloud describes to which Cloud the CloudSpace belongs to. Cloud is required if deploymentType=gen1

Default: default

clusterRefobject

ClusterRef contains a reference to the Cluster in PMK. Setting this field will disable discovery and override any discovered cluster.

  • If it is a Qbert Cluster, the Kind will be "QbertCluster", the namespace will be the project ID, and the name will be the ID.
  • If it is a CAPI Cluster, the kind will be "Cluster".
apiVersionstring

ngpc.rxt.io/v1

fieldPathstring

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.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

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

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

cnistring

CNI specifies the Container Network Interface (CNI) to be used. Supported values: calico, cilium, byocni

Enum: calico,cilium,byocni

deploymentTypestring

DeploymentType specifies which deploymentType the CloudSpace should use. options: gen1 - PMK/legacy type, gen2 - CAPI based

Enum: gen1,gen2

kubernetesVersionstring

KubernetesVersion specifies the version of Kubernetes to deploy.

networksarray[object]

Networks contain the configuration of the VM networks in this CloudSpace.

namestring
subnetstring
onDemandRequestsarray[string]

Contains a list of OnDemand requests

regionstring

Region specifies the region which the CloudSpace should be in.

serversarray[object]

Servers contains the requested set of servers for this CloudSpace.

classstring
countinteger
typestring

Type of CloudSpace

webhookstring

Optional webhook that will be invoked when Servers of this CloudSpace are released

statusobject

CloudSpaceStatus defines the observed state of CloudSpace

APIServerEndpointstring
assignedServersobject

ServerStatus contains status of servers configuring

*object
IPstring
clusterRolestring
errorstring
serverClassNamestring
serverNamestring
serverTypestring
statestring
bidsobject

Map of each bid and it's WonCount status

*object
bidNamestring
typestring
wonCountinteger
cloudspaceClassNamestring

CloudspaceClass that this cloudspace uses, valid only if deploymentType=gen2. Will be assigned by Cloudspace controller during cloudspace creation

clusterRefobject

ClusterRef contains a reference to the Cluster in PMK.

  • If it is a Qbert Cluster, the Kind will be "QbertCluster", the namespace will be the project ID, the name will be the cluster name, and the UID will be the cluster ID.
  • If it is a CAPI Cluster, the kind will be "Cluster".
clusterobject

ObjectReference contains enough information to let you inspect or modify the referred object.

New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.

  1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
  2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded.
  3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
  4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant.
  5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.

Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .

apiVersionstring

ngpc.rxt.io/v1

fieldPathstring

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.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

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

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

reasonstring
statusstring
conditionsarray[object]

Conditions defines current service state of the CloudSpace.

lastTransitionTimedate-time

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

messagestring

A human readable message indicating details about the transition. This field may be empty.

reasonstring

The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

severitystring

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

statusstring

Status of the condition, one of True, False, Unknown.

typestring

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

currentKubernetesVersionstring

CurrentKubernetesVersion contains the current version of Kubernetes running in the CloudSpace

firstReadyTimestampdate-time

Contains the time at which the cloudspace first moved to Ready phase

healthstring

Health indicates if CloudSpace has a working APIServer and available nodes

pendingAllocationsobject

Outstanding pooler Allocation IDs for Cloud Instances

*object
allocatedCountinteger
bidNamestring
bidTypestring
countinteger
serverClassNamestring
phasestring

Phase indicates the current state of the Cloud.

reasonstring

Reason contains the reason why the CloudSpace is in a certain phase.

sshSecretNamestring

SSHSecretName contains the SSH Key Secret to access nodes in the CloudSpace

upgradePhasestring

UpgradePhase indicates the current state of the CloudSpace upgrade

201

CloudSpace created successfully.

202

CloudSpace creation request accepted successfully.

401

Unauthorized access.

Response
Copy

Delete all cloudspaces

Delete CloudSpaces from the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the Cloudspace belongs to. Desired namespace value can be obtained by calling api: list of organizations.

DELETE /apis/ngpc.rxt.io/v1/namespaces/{namespace}/cloudspaces
Copy
Responses
200

CloudSpaces deleted successfully.

objectobject

Status is a return value for calls that don't return other objects.

apiVersionstring

ngpc.rxt.io/v1

codeint32

Suggested HTTP return code for this status, 0 if not set.

detailsobject

StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

causesarray[object]

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

fieldstring

The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.

Examples: "name" - the field "name" on the current resource "items [ 0 ].name" - the field "name" on the first array entry in "items"

messagestring

A human-readable description of the cause of the error. This field may be presented as-is to a reader.

reasonstring

A machine-readable description of the cause of the error. If this value is empty there is no information available.

groupstring

The group attribute of the resource associated with the status StatusReason.

kindstring
namestring

The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

retryAfterSecondsint32

If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

uidstring

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

kindstring

Kind of kubernetes resource

messagestring

A human-readable description of the status of this operation.

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

reasonstring

A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

statusstring

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

401

Unauthorized access.

Response
Copy

Get cloudspace by name

Retrieves the details of a CloudSpace by its name from the specified namespace.

Auth
Path Params
namestring

CloudSpace Name

namespacestring

The namespace to which the Cloudspace belongs to. Desired namespace value can be obtained by calling api: list of organizations.

GET /apis/ngpc.rxt.io/v1/namespaces/{namespace}/cloudspaces/{name}
Copy
Responses
200

Specific CloudSpace obtained successfully.

objectobject

CloudSpace is the Schema for the cloudspaces API

apiVersionstring

ngpc.rxt.io/v1

Default: ngpc.rxt.io/v1

kindstring

CloudSpace

Default: CloudSpace

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

CloudSpaceSpec defines the desired state of CloudSpace

HAControlPlaneboolean

Set to Enable control plane HA and setting HACount

Default: false

bidRequestsarray[string]

Contains a list of SpotNodePool requests

cloudstring

Cloud describes to which Cloud the CloudSpace belongs to. Cloud is required if deploymentType=gen1

Default: default

clusterRefobject

ClusterRef contains a reference to the Cluster in PMK. Setting this field will disable discovery and override any discovered cluster.

  • If it is a Qbert Cluster, the Kind will be "QbertCluster", the namespace will be the project ID, and the name will be the ID.
  • If it is a CAPI Cluster, the kind will be "Cluster".
apiVersionstring

ngpc.rxt.io/v1

fieldPathstring

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.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

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

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

cnistring

CNI specifies the Container Network Interface (CNI) to be used. Supported values: calico, cilium, byocni

Enum: calico,cilium,byocni

deploymentTypestring

DeploymentType specifies which deploymentType the CloudSpace should use. options: gen1 - PMK/legacy type, gen2 - CAPI based

Enum: gen1,gen2

kubernetesVersionstring

KubernetesVersion specifies the version of Kubernetes to deploy.

networksarray[object]

Networks contain the configuration of the VM networks in this CloudSpace.

namestring
subnetstring
onDemandRequestsarray[string]

Contains a list of OnDemand requests

regionstring

Region specifies the region which the CloudSpace should be in.

serversarray[object]

Servers contains the requested set of servers for this CloudSpace.

classstring
countinteger
typestring

Type of CloudSpace

webhookstring

Optional webhook that will be invoked when Servers of this CloudSpace are released

statusobject

CloudSpaceStatus defines the observed state of CloudSpace

APIServerEndpointstring
assignedServersobject

ServerStatus contains status of servers configuring

*object
IPstring
clusterRolestring
errorstring
serverClassNamestring
serverNamestring
serverTypestring
statestring
bidsobject

Map of each bid and it's WonCount status

*object
bidNamestring
typestring
wonCountinteger
cloudspaceClassNamestring

CloudspaceClass that this cloudspace uses, valid only if deploymentType=gen2. Will be assigned by Cloudspace controller during cloudspace creation

clusterRefobject

ClusterRef contains a reference to the Cluster in PMK.

  • If it is a Qbert Cluster, the Kind will be "QbertCluster", the namespace will be the project ID, the name will be the cluster name, and the UID will be the cluster ID.
  • If it is a CAPI Cluster, the kind will be "Cluster".
clusterobject

ObjectReference contains enough information to let you inspect or modify the referred object.

New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.

  1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
  2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded.
  3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
  4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant.
  5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.

Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .

apiVersionstring

ngpc.rxt.io/v1

fieldPathstring

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.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

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

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

reasonstring
statusstring
conditionsarray[object]

Conditions defines current service state of the CloudSpace.

lastTransitionTimedate-time

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

messagestring

A human readable message indicating details about the transition. This field may be empty.

reasonstring

The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

severitystring

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

statusstring

Status of the condition, one of True, False, Unknown.

typestring

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

currentKubernetesVersionstring

CurrentKubernetesVersion contains the current version of Kubernetes running in the CloudSpace

firstReadyTimestampdate-time

Contains the time at which the cloudspace first moved to Ready phase

healthstring

Health indicates if CloudSpace has a working APIServer and available nodes

pendingAllocationsobject

Outstanding pooler Allocation IDs for Cloud Instances

*object
allocatedCountinteger
bidNamestring
bidTypestring
countinteger
serverClassNamestring
phasestring

Phase indicates the current state of the Cloud.

reasonstring

Reason contains the reason why the CloudSpace is in a certain phase.

sshSecretNamestring

SSHSecretName contains the SSH Key Secret to access nodes in the CloudSpace

upgradePhasestring

UpgradePhase indicates the current state of the CloudSpace upgrade

401

Unauthorized access.

Response
Copy

Delete cloudspace by name

Delete a CloudSpace by its name from the specified namespace.

Auth
Path Params
namestring

name of the CloudSpace

namespacestring

TThe namespace to which the Cloudspace belongs to. Desired namespace value can be obtained by calling api: list of organizations.

DELETE /apis/ngpc.rxt.io/v1/namespaces/{namespace}/cloudspaces/{name}
Copy
Responses
200

Specific CloudSpace deletion request submitted successfully.

objectobject

Status is a return value for calls that don't return other objects.

apiVersionstring

ngpc.rxt.io/v1

codeint32

Suggested HTTP return code for this status, 0 if not set.

detailsobject

StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

causesarray[object]

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

fieldstring

The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.

Examples: "name" - the field "name" on the current resource "items [ 0 ].name" - the field "name" on the first array entry in "items"

messagestring

A human-readable description of the cause of the error. This field may be presented as-is to a reader.

reasonstring

A machine-readable description of the cause of the error. If this value is empty there is no information available.

groupstring

The group attribute of the resource associated with the status StatusReason.

kindstring
namestring

The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

retryAfterSecondsint32

If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

uidstring

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

kindstring

Kind of kubernetes resource

messagestring

A human-readable description of the status of this operation.

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

reasonstring

A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

statusstring

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

202

Specific CloudSpace deletion request accepted successfully.

401

Unauthorized access.

Response
Copy

Edit cloudspace by name

Update a CloudSpace by its name from the specified namespace.

Auth
Path Params
namestring

name of the CloudSpace

namespacestring

The namespace to which the Cloudspace belongs to. Desired namespace value can be obtained by calling api: list of organizations.

Request Body

This endpoint allows you to perform operations on the cloudspace configuration.

  • op: Represents the operation to be performed.
    • add: Adds a new field or value at the specified path in spec section of object.
    • replace: Replaces the existing value at the specified path in spec section of object.
  • path: Specifies the location within the object where the operation should be applied.
    • For example, to add a new field, use /spec/newField.
    • To replace an existing field, use /spec/existingField.
  • value: Represents the data to be added or replaced at the specified path.

objectobject

Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

PATCH /apis/ngpc.rxt.io/v1/namespaces/{namespace}/cloudspaces/{name}
Copy
Responses
200

CloudSpace updated successfully.

objectobject

CloudSpace is the Schema for the cloudspaces API

apiVersionstring

ngpc.rxt.io/v1

Default: ngpc.rxt.io/v1

kindstring

CloudSpace

Default: CloudSpace

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

CloudSpaceSpec defines the desired state of CloudSpace

HAControlPlaneboolean

Set to Enable control plane HA and setting HACount

Default: false

bidRequestsarray[string]

Contains a list of SpotNodePool requests

cloudstring

Cloud describes to which Cloud the CloudSpace belongs to. Cloud is required if deploymentType=gen1

Default: default

clusterRefobject

ClusterRef contains a reference to the Cluster in PMK. Setting this field will disable discovery and override any discovered cluster.

  • If it is a Qbert Cluster, the Kind will be "QbertCluster", the namespace will be the project ID, and the name will be the ID.
  • If it is a CAPI Cluster, the kind will be "Cluster".
apiVersionstring

ngpc.rxt.io/v1

fieldPathstring

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.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

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

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

cnistring

CNI specifies the Container Network Interface (CNI) to be used. Supported values: calico, cilium, byocni

Enum: calico,cilium,byocni

deploymentTypestring

DeploymentType specifies which deploymentType the CloudSpace should use. options: gen1 - PMK/legacy type, gen2 - CAPI based

Enum: gen1,gen2

kubernetesVersionstring

KubernetesVersion specifies the version of Kubernetes to deploy.

networksarray[object]

Networks contain the configuration of the VM networks in this CloudSpace.

namestring
subnetstring
onDemandRequestsarray[string]

Contains a list of OnDemand requests

regionstring

Region specifies the region which the CloudSpace should be in.

serversarray[object]

Servers contains the requested set of servers for this CloudSpace.

classstring
countinteger
typestring

Type of CloudSpace

webhookstring

Optional webhook that will be invoked when Servers of this CloudSpace are released

statusobject

CloudSpaceStatus defines the observed state of CloudSpace

APIServerEndpointstring
assignedServersobject

ServerStatus contains status of servers configuring

*object
IPstring
clusterRolestring
errorstring
serverClassNamestring
serverNamestring
serverTypestring
statestring
bidsobject

Map of each bid and it's WonCount status

*object
bidNamestring
typestring
wonCountinteger
cloudspaceClassNamestring

CloudspaceClass that this cloudspace uses, valid only if deploymentType=gen2. Will be assigned by Cloudspace controller during cloudspace creation

clusterRefobject

ClusterRef contains a reference to the Cluster in PMK.

  • If it is a Qbert Cluster, the Kind will be "QbertCluster", the namespace will be the project ID, the name will be the cluster name, and the UID will be the cluster ID.
  • If it is a CAPI Cluster, the kind will be "Cluster".
clusterobject

ObjectReference contains enough information to let you inspect or modify the referred object.

New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.

  1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
  2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded.
  3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
  4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant.
  5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.

Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .

apiVersionstring

ngpc.rxt.io/v1

fieldPathstring

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.

kindstring

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

namestring

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespacestring

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersionstring

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

uidstring

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

reasonstring
statusstring
conditionsarray[object]

Conditions defines current service state of the CloudSpace.

lastTransitionTimedate-time

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

messagestring

A human readable message indicating details about the transition. This field may be empty.

reasonstring

The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.

severitystring

Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.

statusstring

Status of the condition, one of True, False, Unknown.

typestring

Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.

currentKubernetesVersionstring

CurrentKubernetesVersion contains the current version of Kubernetes running in the CloudSpace

firstReadyTimestampdate-time

Contains the time at which the cloudspace first moved to Ready phase

healthstring

Health indicates if CloudSpace has a working APIServer and available nodes

pendingAllocationsobject

Outstanding pooler Allocation IDs for Cloud Instances

*object
allocatedCountinteger
bidNamestring
bidTypestring
countinteger
serverClassNamestring
phasestring

Phase indicates the current state of the Cloud.

reasonstring

Reason contains the reason why the CloudSpace is in a certain phase.

sshSecretNamestring

SSHSecretName contains the SSH Key Secret to access nodes in the CloudSpace

upgradePhasestring

UpgradePhase indicates the current state of the CloudSpace upgrade

401

Unauthorized access.

Response
Copy

Get all spotnodepools

Retrieve all SpotNodePools from the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the SpotNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

GET /apis/ngpc.rxt.io/v1/namespaces/{namespace}/spotnodepools
Copy
Responses
200

SpotNodePools obtained successfully.

objectobject

SpotNodePoolList is a list of SpotNodePool

apiVersionstring

ngpc.rxt.io/v1

itemsarray[object]

List of spotnodepools. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md

apiVersionstring

ngpc.rxt.io/v1

kindstring

SpotNodePool

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

SpotNodePoolSpec defines the desired state of SpotNodePool

autoscalingobject

Autoscaling automatically adjusts the number of servers based on demand.

enabledboolean

Enables autoscaling when set to true.

Default: false

maxNodesinteger

The maximum number of servers the SpotNodePool can scale up to when autoscaling is enabled.

minNodesinteger

The minimum number of servers that should remain available in the SpotNodePool when autoscaling is enabled.

bidPricestring

The maximum price you are willing to bid for each server. The bid price must be at least equal to the market price of the selected serverClass for successful server allocation. Servers will be billed at the market price until the market price reaches the bid price, at which point the servers will be preempted.

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

customAnnotationsobject

Custom annotations to be applied to the nodes of SpotNodePool

customLabelsobject

Custom labels to be applied to the nodes of SpotNodePool

customTaintsarray[object]

Custom taints to be applied to the nodes of SpotNodePool

effectstring

Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Required. The taint key to be applied to a node.

timeAddeddate-time

TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

valuestring

The taint value corresponding to the taint key.

desiredinteger

Number of Spot Servers required within the SpotNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

statusobject

SpotNodePoolStatus defines the observed state of SpotNodePool

bidStatusstring

Bid status for bid at given bidPrice.

customMetadataStatusobject

CustomMetadataStatus tracks the keys of custom metadata currently applied to nodes

annotationsarray[string]

Annotations contains the keys of custom annotations that were applied

labelsarray[string]

Labels contains the keys of custom labels that were applied

taintsarray[string]

Taints contains the keys of custom taints that were applied

wonCountinteger

No of Spot Servers won

kindstring

SpotNodePoolList

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

401

Unauthorized access.

Response
Copy

Create spotnodepool

Create a SpotNodePool in the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the SpotNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

Request Body

  • Use value for apiVersion as ngpc.rxt.io/v1.

  • Use value for kind as SpotNodePool.

  • In the metadata object:

    • Enter a value for the name field in the metadata object to name your SpotNodePool. The name must be a lowercase UUID only.

    • Select the namespace in which the SpotNodePool should be created. This should match the namespace used in the path parameter above.

    • creationTimestamp and deletionTimestamp: Represents timestamp for SpotNodePool creation. Leave it as default only.

  • In the spec object:

    • autoscaling: Configure autoscaling settings.

      • enabled: Set whether autoscaling is enabled. (e.g., true or false)

      • maxNodes: The maximum number of nodes allowed when autoscaling is enabled.

      • minNodes: The minimum number of nodes required when autoscaling is enabled.

    • bidPrice: Define the bid price to bid for the spot servers (instances).

    • cloudSpace: Specify the name of your cloudspace in which SpotNodePool should be created.

    • desired: The desired number of resources (nodes) to be provisioned.

    • serverClass: Specify the Serverclass type for the cloudspace. Refer to Serverclass api for available serverclasses.

objectobject

SpotNodePool is the Schema for the spotnodepools API

apiVersionstring

ngpc.rxt.io/v1

kindstring

SpotNodePool

metadataobject

Additional information

namestring

Name of the resource

namespacestring

Organization namespace

specobject

SpotNodePoolSpec defines the desired state of SpotNodePool

autoscalingobject

Autoscaling automatically adjusts the number of servers based on demand.

enabledboolean

Enables autoscaling when set to true.

Default: false

maxNodesinteger

The maximum number of servers the SpotNodePool can scale up to when autoscaling is enabled.

minNodesinteger

The minimum number of servers that should remain available in the SpotNodePool when autoscaling is enabled.

bidPricestring

The maximum price you are willing to bid for each server. The bid price must be at least equal to the market price of the selected serverClass for successful server allocation. Servers will be billed at the market price until the market price reaches the bid price, at which point the servers will be preempted.

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

desiredinteger

Number of Spot Servers required within the SpotNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

POST /apis/ngpc.rxt.io/v1/namespaces/{namespace}/spotnodepools
Copy
Responses
200

SpotNodePool creation request submitted successfully.

objectobject

SpotNodePool is the Schema for the spotnodepools API

apiVersionstring

ngpc.rxt.io/v1

kindstring

SpotNodePool

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

SpotNodePoolSpec defines the desired state of SpotNodePool

autoscalingobject

Autoscaling automatically adjusts the number of servers based on demand.

enabledboolean

Enables autoscaling when set to true.

Default: false

maxNodesinteger

The maximum number of servers the SpotNodePool can scale up to when autoscaling is enabled.

minNodesinteger

The minimum number of servers that should remain available in the SpotNodePool when autoscaling is enabled.

bidPricestring

The maximum price you are willing to bid for each server. The bid price must be at least equal to the market price of the selected serverClass for successful server allocation. Servers will be billed at the market price until the market price reaches the bid price, at which point the servers will be preempted.

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

customAnnotationsobject

Custom annotations to be applied to the nodes of SpotNodePool

customLabelsobject

Custom labels to be applied to the nodes of SpotNodePool

customTaintsarray[object]

Custom taints to be applied to the nodes of SpotNodePool

effectstring

Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Required. The taint key to be applied to a node.

timeAddeddate-time

TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

valuestring

The taint value corresponding to the taint key.

desiredinteger

Number of Spot Servers required within the SpotNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

statusobject

SpotNodePoolStatus defines the observed state of SpotNodePool

bidStatusstring

Bid status for bid at given bidPrice.

customMetadataStatusobject

CustomMetadataStatus tracks the keys of custom metadata currently applied to nodes

annotationsarray[string]

Annotations contains the keys of custom annotations that were applied

labelsarray[string]

Labels contains the keys of custom labels that were applied

taintsarray[string]

Taints contains the keys of custom taints that were applied

wonCountinteger

No of Spot Servers won

201

SpotNodePool created successfully.

202

SpotNodePool creation request accepted successfully.

401

Unauthorized access.

Response
Copy

Delete all spotnodepools

Delete all SpotNodePools from the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the SpotNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

DELETE /apis/ngpc.rxt.io/v1/namespaces/{namespace}/spotnodepools
Copy
Responses
200

SpotNodePools deleted successfully.

objectobject

Status is a return value for calls that don't return other objects.

apiVersionstring

ngpc.rxt.io/v1

codeint32

Suggested HTTP return code for this status, 0 if not set.

detailsobject

StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

causesarray[object]

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

fieldstring

The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.

Examples: "name" - the field "name" on the current resource "items [ 0 ].name" - the field "name" on the first array entry in "items"

messagestring

A human-readable description of the cause of the error. This field may be presented as-is to a reader.

reasonstring

A machine-readable description of the cause of the error. If this value is empty there is no information available.

groupstring

The group attribute of the resource associated with the status StatusReason.

kindstring
namestring

The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

retryAfterSecondsint32

If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

uidstring

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

kindstring

Kind of kubernetes resource

messagestring

A human-readable description of the status of this operation.

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

reasonstring

A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

statusstring

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

401

Unauthorized access.

Response
Copy

Get spotnodepool by name

Retrieves the details of a SpotNodePool by its name from the specified namespace.

Auth
Path Params
namestring

SpotNodePool name, must be a lowercase UUID.

namespacestring

The namespace to which the SpotNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

GET /apis/ngpc.rxt.io/v1/namespaces/{namespace}/spotnodepools/{name}
Copy
Responses
200

Specific SpotNodePool obtained successfully.

objectobject

SpotNodePool is the Schema for the spotnodepools API

apiVersionstring

ngpc.rxt.io/v1

kindstring

SpotNodePool

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

SpotNodePoolSpec defines the desired state of SpotNodePool

autoscalingobject

Autoscaling automatically adjusts the number of servers based on demand.

enabledboolean

Enables autoscaling when set to true.

Default: false

maxNodesinteger

The maximum number of servers the SpotNodePool can scale up to when autoscaling is enabled.

minNodesinteger

The minimum number of servers that should remain available in the SpotNodePool when autoscaling is enabled.

bidPricestring

The maximum price you are willing to bid for each server. The bid price must be at least equal to the market price of the selected serverClass for successful server allocation. Servers will be billed at the market price until the market price reaches the bid price, at which point the servers will be preempted.

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

customAnnotationsobject

Custom annotations to be applied to the nodes of SpotNodePool

customLabelsobject

Custom labels to be applied to the nodes of SpotNodePool

customTaintsarray[object]

Custom taints to be applied to the nodes of SpotNodePool

effectstring

Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Required. The taint key to be applied to a node.

timeAddeddate-time

TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

valuestring

The taint value corresponding to the taint key.

desiredinteger

Number of Spot Servers required within the SpotNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

statusobject

SpotNodePoolStatus defines the observed state of SpotNodePool

bidStatusstring

Bid status for bid at given bidPrice.

customMetadataStatusobject

CustomMetadataStatus tracks the keys of custom metadata currently applied to nodes

annotationsarray[string]

Annotations contains the keys of custom annotations that were applied

labelsarray[string]

Labels contains the keys of custom labels that were applied

taintsarray[string]

Taints contains the keys of custom taints that were applied

wonCountinteger

No of Spot Servers won

401

Unauthorized access.

Response
Copy

Delete spotnodepool by name

Delete a SpotNodePool by its name from the specified namespace.

Auth
Path Params
namestring

SpotNodePool name, must be a lowercase UUID.

namespacestring

The namespace to which the SpotNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

DELETE /apis/ngpc.rxt.io/v1/namespaces/{namespace}/spotnodepools/{name}
Copy
Responses
200

Specific SpotNodePool deletion request submitted successfully.

objectobject

Status is a return value for calls that don't return other objects.

apiVersionstring

ngpc.rxt.io/v1

codeint32

Suggested HTTP return code for this status, 0 if not set.

detailsobject

StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

causesarray[object]

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

fieldstring

The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.

Examples: "name" - the field "name" on the current resource "items [ 0 ].name" - the field "name" on the first array entry in "items"

messagestring

A human-readable description of the cause of the error. This field may be presented as-is to a reader.

reasonstring

A machine-readable description of the cause of the error. If this value is empty there is no information available.

groupstring

The group attribute of the resource associated with the status StatusReason.

kindstring
namestring

The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

retryAfterSecondsint32

If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

uidstring

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

kindstring

Kind of kubernetes resource

messagestring

A human-readable description of the status of this operation.

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

reasonstring

A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

statusstring

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

202

Specific SpotNodePool deletion request accepted successfully.

401

Unauthorized access

Response
Copy

Edit spotnodepool by name

Update a SpotNodePool by its name from the specified namespace.

Auth
Path Params
namestring

SpotNodePool name, must be a lowercase UUID.

namespacestring

The namespace to which the SpotNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

Request Body

This endpoint allows you to perform operations on the SpotNodePool configuration.

  • op: Represents the operation to be performed.
    • add: Adds a new field or value at the specified path in spec section of object.
    • replace: Replaces the existing value at the specified path in spec section of object.
  • path: Specifies the location within the object where the operation should be applied.
    • For example, to add a new field, use /spec/newField.
    • To replace an existing field, use /spec/existingField.
  • value: Represents the data to be added or replaced at the specified path.

objectobject

Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

PATCH /apis/ngpc.rxt.io/v1/namespaces/{namespace}/spotnodepools/{name}
Copy
Responses
200

SpotNodePool updated successfully.

objectobject

SpotNodePool is the Schema for the spotnodepools API

apiVersionstring

ngpc.rxt.io/v1

kindstring

SpotNodePool

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

SpotNodePoolSpec defines the desired state of SpotNodePool

autoscalingobject

Autoscaling automatically adjusts the number of servers based on demand.

enabledboolean

Enables autoscaling when set to true.

Default: false

maxNodesinteger

The maximum number of servers the SpotNodePool can scale up to when autoscaling is enabled.

minNodesinteger

The minimum number of servers that should remain available in the SpotNodePool when autoscaling is enabled.

bidPricestring

The maximum price you are willing to bid for each server. The bid price must be at least equal to the market price of the selected serverClass for successful server allocation. Servers will be billed at the market price until the market price reaches the bid price, at which point the servers will be preempted.

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

customAnnotationsobject

Custom annotations to be applied to the nodes of SpotNodePool

customLabelsobject

Custom labels to be applied to the nodes of SpotNodePool

customTaintsarray[object]

Custom taints to be applied to the nodes of SpotNodePool

effectstring

Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Required. The taint key to be applied to a node.

timeAddeddate-time

TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

valuestring

The taint value corresponding to the taint key.

desiredinteger

Number of Spot Servers required within the SpotNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

statusobject

SpotNodePoolStatus defines the observed state of SpotNodePool

bidStatusstring

Bid status for bid at given bidPrice.

customMetadataStatusobject

CustomMetadataStatus tracks the keys of custom metadata currently applied to nodes

annotationsarray[string]

Annotations contains the keys of custom annotations that were applied

labelsarray[string]

Labels contains the keys of custom labels that were applied

taintsarray[string]

Taints contains the keys of custom taints that were applied

wonCountinteger

No of Spot Servers won

401

Unauthorized access.

Response
Copy

Get all ondemandnodepools

Retrieve all OnDemandNodePools from the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the OnDemandNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

GET /apis/ngpc.rxt.io/v1/namespaces/{namespace}/ondemandnodepools
Copy
Responses
200

OnDemandNodePools obtained successfully.

objectobject

OnDemandNodePoolList is a list of OnDemandNodePool

apiVersionstring

ngpc.rxt.io/v1

itemsarray[object]

List of ondemandnodepools. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md

apiVersionstring

ngpc.rxt.io/v1

kindstring

OnDemandNodePool

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

OnDemandNodePoolSpec defines the desired state of OnDemandNodePool

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

customAnnotationsobject

Custom annotations to be applied to the nodes of OnDemandNodePool

customLabelsobject

Custom labels to be applied to the nodes of OnDemandNodePool

customTaintsarray[object]

Custom taints to be applied to the nodes of OnDemandNodePool

effectstring

Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Required. The taint key to be applied to a node.

timeAddeddate-time

TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

valuestring

The taint value corresponding to the taint key.

desiredinteger

Number of Spot Servers required within the OnDemandNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

statusobject

OnDemandNodePoolStatus defines the observed state of OnDemandNodePool

customMetadataStatusobject

CustomMetadataStatus tracks the keys of custom metadata currently applied to nodes

annotationsarray[string]

Annotations contains the keys of custom annotations that were applied

labelsarray[string]

Labels contains the keys of custom labels that were applied

taintsarray[string]

Taints contains the keys of custom taints that were applied

reservedCountinteger

Number of reserved servers

reservedStatusstring

Status of reserved servers

kindstring

OnDemandNodePoolList

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

401

Unauthorized access.

Response
Copy

Create ondemandnodepool

Create an OnDemandNodePool in the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the OnDemandNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

Request Body

  • Use value for apiVersion as ngpc.rxt.io/v1.

  • Use value for kind as OnDemandNodePool.

  • In the metadata object:

    • Enter a value for the name field in the metadata object to name your OnDemandNodePool. The name must be a lowercase UUID only.

    • Select the namespace in which the OnDemandNodePool should be created. This should match the namespace used in the path parameter above.

    • creationTimestamp and deletionTimestamp: Represents timestamp for SpotNodePool creation. Leave it as default only.

  • In the spec object:

    • cloudSpace: Specify the name of your cloudspace in which SpotNodePool should be created.

    • desired: The desired number of resources (nodes) to be provisioned.

    • serverClass: Specify the Serverclass type for the cloudspace. Refer to Serverclass api for available serverclasses.

objectobject

OnDemandNodePool is the Schema for the ondemandnodepools API

apiVersionstring

ngpc.rxt.io/v1

kindstring

OnDemandNodePool

metadataobject

Additional information

namestring

Name of the resource

namespacestring

Organization namespace

specobject

OnDemandNodePoolSpec defines the desired state of OnDemandNodePool

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

desiredinteger

Number of Spot Servers required within the OnDemandNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

POST /apis/ngpc.rxt.io/v1/namespaces/{namespace}/ondemandnodepools
Copy
Responses
200

OnDemandNodePool creation request submitted successfully.

objectobject

OnDemandNodePool is the Schema for the ondemandnodepools API

apiVersionstring

ngpc.rxt.io/v1

kindstring

OnDemandNodePool

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

OnDemandNodePoolSpec defines the desired state of OnDemandNodePool

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

customAnnotationsobject

Custom annotations to be applied to the nodes of OnDemandNodePool

customLabelsobject

Custom labels to be applied to the nodes of OnDemandNodePool

customTaintsarray[object]

Custom taints to be applied to the nodes of OnDemandNodePool

effectstring

Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Required. The taint key to be applied to a node.

timeAddeddate-time

TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

valuestring

The taint value corresponding to the taint key.

desiredinteger

Number of Spot Servers required within the OnDemandNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

statusobject

OnDemandNodePoolStatus defines the observed state of OnDemandNodePool

customMetadataStatusobject

CustomMetadataStatus tracks the keys of custom metadata currently applied to nodes

annotationsarray[string]

Annotations contains the keys of custom annotations that were applied

labelsarray[string]

Labels contains the keys of custom labels that were applied

taintsarray[string]

Taints contains the keys of custom taints that were applied

reservedCountinteger

Number of reserved servers

reservedStatusstring

Status of reserved servers

201

OnDemandNodePool created successfully.

202

OnDemandNodePool creation request accepted successfully.

401

Unauthorized access.

Response
Copy

Delete all ondemandnodepools

Delete all OnDenamdNodePools from the specified namespace.

Auth
Path Params
namespacestring

The namespace to which the OnDemandNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

DELETE /apis/ngpc.rxt.io/v1/namespaces/{namespace}/ondemandnodepools
Copy
Responses
200

OnDemandNodePools deleted successfully.

objectobject

Status is a return value for calls that don't return other objects.

apiVersionstring

ngpc.rxt.io/v1

codeint32

Suggested HTTP return code for this status, 0 if not set.

detailsobject

StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

causesarray[object]

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

fieldstring

The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.

Examples: "name" - the field "name" on the current resource "items [ 0 ].name" - the field "name" on the first array entry in "items"

messagestring

A human-readable description of the cause of the error. This field may be presented as-is to a reader.

reasonstring

A machine-readable description of the cause of the error. If this value is empty there is no information available.

groupstring

The group attribute of the resource associated with the status StatusReason.

kindstring
namestring

The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

retryAfterSecondsint32

If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

uidstring

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

kindstring

Kind of kubernetes resource

messagestring

A human-readable description of the status of this operation.

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

reasonstring

A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

statusstring

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

401

Unauthorized access.

Response
Copy

Get ondemandnodepool by name

Retrieves the details of an OnDemandNodePool by its name from the specified namespace.

Auth
Path Params
namestring

OnDemandNodePool name, must be a lowercase UUID

namespacestring

The namespace to which the OnDemandNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

GET /apis/ngpc.rxt.io/v1/namespaces/{namespace}/ondemandnodepools/{name}
Copy
Responses
200

Specific OnDemandNodePool obtained successfully.

objectobject

OnDemandNodePool is the Schema for the ondemandnodepools API

apiVersionstring

ngpc.rxt.io/v1

kindstring

OnDemandNodePool

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

OnDemandNodePoolSpec defines the desired state of OnDemandNodePool

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

customAnnotationsobject

Custom annotations to be applied to the nodes of OnDemandNodePool

customLabelsobject

Custom labels to be applied to the nodes of OnDemandNodePool

customTaintsarray[object]

Custom taints to be applied to the nodes of OnDemandNodePool

effectstring

Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Required. The taint key to be applied to a node.

timeAddeddate-time

TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

valuestring

The taint value corresponding to the taint key.

desiredinteger

Number of Spot Servers required within the OnDemandNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

statusobject

OnDemandNodePoolStatus defines the observed state of OnDemandNodePool

customMetadataStatusobject

CustomMetadataStatus tracks the keys of custom metadata currently applied to nodes

annotationsarray[string]

Annotations contains the keys of custom annotations that were applied

labelsarray[string]

Labels contains the keys of custom labels that were applied

taintsarray[string]

Taints contains the keys of custom taints that were applied

reservedCountinteger

Number of reserved servers

reservedStatusstring

Status of reserved servers

401

Unauthorized access.

Response
Copy

Delete ondemandnodepool by name

Delete an OnDemandNodePool by its name from the specified namespace.

Auth
Path Params
namestring

OnDemandNodePool name, must be a lowercase UUID

namespacestring

The namespace to which the OnDemandNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

DELETE /apis/ngpc.rxt.io/v1/namespaces/{namespace}/ondemandnodepools/{name}
Copy
Responses
200

Specific OnDemandNodePool deletion request submitted successfully.

objectobject

Status is a return value for calls that don't return other objects.

apiVersionstring

ngpc.rxt.io/v1

codeint32

Suggested HTTP return code for this status, 0 if not set.

detailsobject

StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

causesarray[object]

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

fieldstring

The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.

Examples: "name" - the field "name" on the current resource "items [ 0 ].name" - the field "name" on the first array entry in "items"

messagestring

A human-readable description of the cause of the error. This field may be presented as-is to a reader.

reasonstring

A machine-readable description of the cause of the error. If this value is empty there is no information available.

groupstring

The group attribute of the resource associated with the status StatusReason.

kindstring
namestring

The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

retryAfterSecondsint32

If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

uidstring

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

kindstring

Kind of kubernetes resource

messagestring

A human-readable description of the status of this operation.

metadataobject

Additional information

continuestring

continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.

remainingItemCountint64

remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is estimating the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.

resourceVersionstring

String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

reasonstring

A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

statusstring

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

202

Specific OnDemandNodePool deletion request accepted successfully.

401

Unauthorized access.

Response
Copy

Edit ondemandnodepool by name

Update a OnDemandNodePool by its name from the specified namespace.

Auth
Path Params
namestring

OnDemandNodePool name, must be a lowercase UUID

namespacestring

The namespace to which the OnDemandNodePool belongs to. Desired namespace value can be obtained by calling api: list of organizations.

Request Body

This endpoint allows you to perform operations on the OnDemandNodePool configuration.

  • op: Represents the operation to be performed.
    • add: Adds a new field or value at the specified path in spec section of object.
    • replace: Replaces the existing value at the specified path in spec section of object.
  • path: Specifies the location within the object where the operation should be applied.
    • For example, to add a new field, use /spec/newField.
    • To replace an existing field, use /spec/existingField.
  • value: Represents the data to be added or replaced at the specified path.

objectobject

Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

PATCH /apis/ngpc.rxt.io/v1/namespaces/{namespace}/ondemandnodepools/{name}
Copy
Responses
200

OnDemandNodePool updated successfully.

objectobject

OnDemandNodePool is the Schema for the ondemandnodepools API

apiVersionstring

ngpc.rxt.io/v1

kindstring

OnDemandNodePool

metadataobject

Additional information

annotationsobject

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: Annotations.

creationTimestampdate-time

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.

deletionGracePeriodSecondsint64

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

deletionTimestampdate-time

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.

finalizersarray[string]

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

generateNamestring

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will return a 409.

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

generationint64

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

labelsobject

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

managedFieldsarray[object]

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.

apiVersionstring

ngpc.rxt.io/v1

fieldsTypestring

FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"

fieldsV1object

FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.

Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.

The exact format is defined in sigs.k8s.io/structured-merge-diff

managerstring

Manager is an identifier of the workflow managing these fields.

operationstring

Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.

subresourcestring

Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.

timedate-time

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.

namestring

Name of the resource

namespacestring

Organization namespace

ownerReferencesarray[object]

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

apiVersionstring

ngpc.rxt.io/v1

blockOwnerDeletionboolean

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

controllerboolean

If true, this reference points to the managing controller.

kindstring

kind of resource.

namestring

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

uidstring

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

resourceVersionstring

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

selfLinkstring

Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.

uidstring

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

specobject

OnDemandNodePoolSpec defines the desired state of OnDemandNodePool

cloudSpacestring

The name of the CloudSpace to which the SpotNodePool resource belongs. A CloudSpace with the given name must exist within the specified namespace.

customAnnotationsobject

Custom annotations to be applied to the nodes of OnDemandNodePool

customLabelsobject

Custom labels to be applied to the nodes of OnDemandNodePool

customTaintsarray[object]

Custom taints to be applied to the nodes of OnDemandNodePool

effectstring

Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Required. The taint key to be applied to a node.

timeAddeddate-time

TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.

valuestring

The taint value corresponding to the taint key.

desiredinteger

Number of Spot Servers required within the OnDemandNodePool.

serverClassstring

ServerClass name for Spot Servers. Must be a valid name from available API: ServerClasses.

statusobject

OnDemandNodePoolStatus defines the observed state of OnDemandNodePool

customMetadataStatusobject

CustomMetadataStatus tracks the keys of custom metadata currently applied to nodes

annotationsarray[string]

Annotations contains the keys of custom annotations that were applied

labelsarray[string]

Labels contains the keys of custom labels that were applied

taintsarray[string]

Taints contains the keys of custom taints that were applied

reservedCountinteger

Number of reserved servers

reservedStatusstring

Status of reserved servers

401

Unauthorized access.

Response
Copy

Price History

Price history for a server class APIs

Get price history for a server class (unauthenticated api)

Retrieve historical price data for a given server class. This api does not require bearerToken for its usage. Valid server_class values include:

  • gp.vs1.medium-dfw
  • gp.vs1.small-dfw
  • mh.vs1.large-dfw
  • mh.vs1.xlarge-dfw
  • ch.vs1.medium-dfw
  • gp.bm2.large-dfw
  • mh.vs1.medium-dfw
  • gp.bm2.medium-dfw
  • mh.vs1.2xlarge-dfw
  • mh.vs1.2xlarge-iad
  • gp.vs1.2xlarge-lon
  • gp.vs1.xlarge-lon
  • ch.vs1.xlarge-iad
  • gp.bm2.medium-lon
  • ch.vs1.medium-iad
  • gp.bm2.small-lon
  • ch.vs1.2xlarge-iad
  • mh.vs1.xlarge-iad
  • mh.vs1.large-iad
  • ch.vs1.large-lon
  • gp.bm2.large-lon
  • mh.vs1.2xlarge-lon
  • ch.vs1.large-iad
  • gp.bm2.small-iad
  • ch.vs1.2xlarge-lon
  • ch.vs1.medium-lon
  • mh.vs1.medium-lon
  • mh.vs1.large-lon
  • mh.vs1.xlarge-lon
  • gp.vs1.small-iad
  • ch.vs1.xlarge-lon
  • io.bm2-lon
  • io.bm2-iad
  • gp.vs1.large-lon
  • ch.vs1.2xlarge-dfw
  • ch.vs1.xlarge-dfw
  • gp.vs1.2xlarge-iad
  • mh.vs1.medium-iad
  • gp.vs1.large-iad
  • gp.vs1.large-dfw
  • ch.vs1.large-dfw
  • gp.vs1.medium-lon
  • gp.vs1.xlarge-dfw
  • gp.vs1.medium-iad
  • gp.vs1.xlarge-iad

Auth
Path Params
server_classstring

Server class name (e.g., gp.vs1.medium-dfw). Must be a valid name from available API: ServerClasses.

GET /history/{server_class}
Copy
Responses
200

A list of historical hammer prices

objectobject
auctionstring

Serverclass type for which the auction was held

historyarray[object]
run_atint64

Unix timestamp of the auction

hammer_pricenumber

Final price in USD

400

Invalid server class

500

Unexpected error

Response
Copy

Percentile Information

Percentile Information APIs

Get Percentile Information (unauthenticated api)

Returns percentile data for various server classes. This api does not require bearerToken for its usage.

Auth
GET /percentiles.json
Copy
Responses
200

A list of regions with server pricing details - percentile information

objectobject
regionsobject
*object
generationstring
serverclassesobject
*object
display_namestring
categorystring
descriptionstring
cpustring
memorystring
market_pricestring
20_percentilenumber
50_percentilenumber
80_percentilenumber
500

Unexpected error

Response
Copy

Market Price Capacity

Market Price Capacity (Comparable Prices) APIs

Get Market Price Capacity (Comparable Prices) (unauthenticated api)

Returns comparable pricing data. This api does not require bearerToken for its usage.

Auth
GET /comparable_prices.json
Copy
Responses
200

Regions and pricing data retrieved successfully.

objectobject
regionsobject
*object

VM instance type mapping in the region.

*object
hyperscaler_average_pricestring

Average hyperscaler price (e.g., AWS, Azure).

comparablesarray[object]

Comparable instance types and their prices.

cloudstring
classstring
pricestring
500

Unexpected error

Response
Copy