Spot
The Spot integration automates Elastigroup and Ocean operations and optimizes your cloud infrastructure.
Configure Spot in Spot Connect
- In the left main menu, click Connect and click Settings.
- Under the Cloud Services tab, select Spot by NetApp.
- Configure a new authorization instance with the information below.
Details needed to set up a Spot Authorization instance in Spot Connect:
| Parameter | Description | Required |
|---|---|---|
| Integration Alias | A name for the integration instance | True |
| Spot Programmatic Access Token | A Spot Programmatic Access Token is recommended or you may use a Personal Access Token | True |
Follow these steps in your Spot account to generate a Spot programmatic access token.
-
In the top right, click the user icon and click Settings.
-
In the left menu, click Settings and click API.
-
Click Permanent Tokens and on the top right, click Generate Token.
-
Select Programmatic User to generate a new permanent access token.
-
Enter a Token name and click Generate.
Integration Actions
You can add these actions in the Spot Connect workflow builder as part of your workflow.
- Spot Elastigroup AWS
- Spot Ocean AWS
- Spot Elastigroup Detach Instance
- Spot AWS Update Stateful Instance
- Spot Remove Idle GitHub Runner
- Spot Ocean Cluster Copy VNG
- Spot Ocean Cost Analyzer
- Spot Ocean Rightsizing k8s Resources
Spot Elastigroup AWS
Use this action to run a selected Spot Elastigroup AWS operation.
Input
| Parameter | Description | Required |
|---|---|---|
| Spot Instance | Select a Spot integration instance | True |
| Spot Account | Select a Spot account | True |
| Spot Operation | Select operation for Spot Elastigroup AWS | True |
There can be additional required or optional input values to enter based on the Spot Operation selected.
Output
| Parameter | Type | Description |
|---|---|---|
| output | Map | Output of Spot Elastigroup AWS operation in Map type |
| output_json | Object | Output of Spot Elastigroup AWS operation in Object type |
| execution_status | String | Status of run (i.e.: S_OK / E_FAIL) |
Action Example
Complete the following information:
- Spot Instance: Select a Spot instance.
- Spot Account: Select a Spot account.
- Spot Operation: Select a Spot operation.
- Group ID: Provide groupId of Spot Elastigroup AWS for Scale Up.
- Adjustment (Optional Inputs): Configure optional input for Scale Up.
Spot Ocean AWS
Use this action to run a selected Spot Ocean AWS operation.
Input
| Parameter | Description | Required |
|---|---|---|
| Spot Instance | Select a spot integration instance | True |
| Spot Account | Select a Spot account | True |
| Spot Operation | Select operation for Spot Ocean AWS | True |
There can be additional required or optional input values to enter based on the Spot Operation selected.
Output
| Parameter | Type | Description |
|---|---|---|
| output | Map | Output of Spot Elastigroup AWS operation in Map type |
| output_json | Object | Output of Spot Elastigroup AWS operation in Object type |
| execution_status | String | Status of run (ie: S_OK / E_FAIL) |
Action Example
Complete the following information:
- Spot Instance: Select a Spot instance.
- Spot Account: Select a Spot account.
- Spot Operation: Select a Spot operation.
- OceanClusterId: Provide oceanClusterId for Get Cluster.
Spot Elastigroup Detach Instance
Use this action to detach an instance from Spot Elastigroup AWS.
Input
| Parameter | Description | Required |
|---|---|---|
| Spot Instance | Select a spot integration instance | True |
| Spot Account | Select a Spot account | True |
| Group Id | Select a Spot Account Group | True |
| Instance Id to Detach | Add Instance Id to be detached | True |
| Terminate Instances | Should Terminate Instances Criteria | True |
| Decrement Target Capacity | Should Decrement Target Capacity Criteria | True |
| Draining Timeout (Seconds) | Time to drain the instance before it is detached | True |
Output
| Parameter | Type | Description |
|---|---|---|
| group_id | String | Group Id of Spot Elastigroup AWS |
| execution_status | String | Status of run (i.e.: S_OK / E_FAIL) |
| instance_id | String | Detached instance_id |
Action Example
Complete the following information:
- Spot Instance: Select a Spot instance.
- Spot Account: Select a Spot account.
- Group ID: Select Elastigroup Id.
- Instance Id to Detach: Enter an instance ID to detach.
- Terminate Instances: Select true or false to confirm whether this action will terminate the instance.
- Decrement Target Capacity: Select a Decrement Target Capacity.
- Draining Timeout: Select the draining timeout (in seconds).
Spot AWS Update Stateful Instance
Use this action to update a stateful instance.
Input
| Parameter | Description | Required |
|---|---|---|
| Spot Instance | Select a spot integration instance | True |
| Spot Account | Select a Spot account | True |
| Managed Instance Ids | Select a Spot Managed Instance IDs | True |
| Operation | Select Stateful Instance Operation | True |
Output
| Parameter | Type | Description |
|---|---|---|
| successful_ids | StringList | List of stateful instances successfully updated state |
| failed_ids | StringList | List of stateful instances failed to update state |
| execution_status | String | Status of run (i.e.: S_OK / E_FAIL) |
Action Example
Complete the following information:
- Spot Instance: Select a Spot instance.
- Spot Account: Select a Spot account.
- Managed Instance Ids: Select Spot managed instance IDs.
- Operation: Select operation on stateful instance.
Spot Remove Idle GitHub Runner
Use this action to detach a Spot Elastigroup AWS instance and remove idle GitHub runner.
Input
| Parameter | Description | Required |
|---|---|---|
| Spot Instance | Select a spot integration instance | True |
| GitHub Repository | Select a GitHub repository | True |
| Spot Account | Select a Spot account | True |
| Instance Ids | Add instances IDs | True |
| Terminate Instances | Select Stateful Instance Operation | True |
| Decrement Target Capacity | Should Decrement Target Capacity Criteria | True |
| Draining Timeout (Seconds) | Time to drain the instance before it is detached | True |
Output
| Parameter | Type | Description |
|---|---|---|
| detached_instance_ids | StringList | List of instances detached from Spot Elastigroup AWS |
| execution_status | String | Status of run (i.e.: S_OK / E_FAIL) |
| removed_runner_ids | StringList | List of runners removed from GitHub |
Action Example
Complete the following information:
- Spot Instance: Select a Spot instance.
- GitHub Repository: Select a GitHub repository.
- Spot Account: Select a Spot account.
- Elastigroup: Select Spot Elastigroup AWS
- Terminate Instances: Select true or false to confirm whether this action will terminate the instance.
- Decrement Target Capacity: Select the decrement capacity of target instances
- Draining timeout: Select the draining timeout (in seconds).
Spot Ocean Cluster Copy VNG
Use this action to create a new virtual node group from an existing Spot Ocean cluster VNG configuration.
Input
| Parameter | Description | Required |
|---|---|---|
| Spot Instance | Select a Spot integration instance | True |
| Spot Account | Select a Spot account | True |
| Ocean Cluster | Select a Spot Ocean Cluster | True |
| Ocean Cluster VNG | Select a Spot Ocean Cluster VNG | True |
| Edit Cluster VNG | Spot Ocean cluster VNG configuration JSON | True |
| Virtual Node Group Name | Name of the new virtual node group | True |
Output
| Parameter | Type | Description |
|---|---|---|
| ocean_id | String | List of instances detached from Spot Elastigroup AWS |
| source_vng_id | String | Source Virtual Node Group ID |
| execution_status | String | Status of run (i.e.: S_OK / E_FAIL) |
| dest_vng_id | String | Destination Virtual Node Group ID |
| dest_vng_name | String | Destination Virtual Node Group Name |
Action Example
Complete the following information:
- Spot Instance: Select a Spot instance.
- Spot Account: Select a Spot account.
- Ocean Cluster: Select Spot Ocean AWS cluster.
- Ocean Cluster VNG: Select Spot Ocean AWS cluster Virtual Node Group.
- Edit Cluster VNG: Edit the Cluster VNG configuration.
- Virtual Node Group Name: Enter the name of the Virtual Node Group.
Spot Ocean Cost Analyzer
Use this action to fetch the aggregated cost data for Spot Ocean AWS ECS cluster.
Input
| Parameter | Description | Required |
|---|---|---|
| Spot Instance | Select a Spot integration instance. | True |
| Spot Account | Select a Spot account. | True |
| Cluster Type | Cluster type can be K8S or ECS | True Note: Only ECS is supported. |
| Ocean Cluster | Select Spot Ocean Cluster ID from the dropdown | True |
| Number Of Days | Number of days to collect data for. | True |
| End Time | End Time. If provided, Number of Days is calculated backwards from this. Otherwise, the node will collect data based on number of days for current date when it is triggered. | False |
Output
| Parameter | Type | Description |
|---|---|---|
| output_data | Object | Cost data of selected Spot Ocean AWS Kubernetes/ECS cluster, as JSON Array. |
| execution_status | String | Status of run (i.e.: S_OK / E_FAIL) |
Action Example
Complete the following information:
- Spot Instance: Select a Spot instance.
- Spot Account: Select a Spot account.
- Cluster Type: Select Spot Ocean AWS cluster type.
- Ocean Cluster: Select Spot Ocean AWS cluster.
- Number of Days: Add the number of days to collect data.
- End Time (Optional): If provided, the number of days is calculated backward from the selected date.
Spot Ocean Rightsizing k8s Resources
Action to fetch Rightsizing recommendations from Spot Ocean cluster and update Kubernetes resources.
Input
| Parameter | Description | Required |
|---|---|---|
| Spot API Token/ Alias | Select a Spot integration instance | True |
| Spot Account | Select a Spot account | True |
| Ocean Cluster | Select Spot Ocean Cluster from the dropdown | True |
| AWS S3 Bucket with K8s Manifests or Helm Config | AWS S3 bucket where K8s Manifests or Helm Config is stored | False |
| AWS S3 Prefix | Complete path in front of the object name (including the bucket name) | False |
| Namespace | Select one or more Kubernetes namespaces for which resources should be updated | False |
| Deployment Name | Select one or more Kubernetes deployment names for which resources should be updated | False |
| Container Name | Select one or more Kubernetes container names for which resources should be updated | False |
| Multiplier | Constant for multiplying CPU and Memory resources (default multiplier value is 1.0) | False |
Output
| Parameter | Type | Description |
|---|---|---|
| s3_bucket | String | AWS S3 bucket where Helm charts are uploaded |
| skipped_s3_objects | Object | List of K8s manifest files skipped |
| updated_helm_s3_objects | StringList | List of K8s manifest files updated with Spot Ocean AWS rightsizing recommendations |
| execution_status | String | Status of run (ie: S_OK / E_FAIL) |
Action Example
Complete the following information:
- Spot API Token/Alias: Select a Spot API Token/Alias.
- Spot Account: Select a Spot account.
- Ocean AWS Cluster: Select a Spot Ocean AWS cluster.
- AWS S3 Bucket with K8s Manifests or Helm Config: Select AWS S3 bucket.
Optional:
- AWS S3 Prefix: Select an AWS S3 prefix with helm charts to be updated with Spot Ocean AWS rightsizing recommendations.
- Namespace, Deployment Name, and Container Name: Select the namespace deployment name and container name to fetch Spot Ocean AWS rightsizing recommendations and update Helm charts.
- Multiplier: Provide a multiplier value to multiply CPU and memory resources. The default is 1.0.