CoreWeave
Search
K

NodeJS

An example implementation in NodeJS of a kubernetes client to interact with a Virtual Server resource on CoreWeave Cloud.

Implementation

The example is broken down into two parts, the client, which is glue code layered on top of the godaddy implementation of a kubernetes-client, and the application; both of which are described below.

Client

The client (client.js) provides an interface to create a Kubernetes client using your Kubernetes credentials (token). client.js may be dropped into any application and used to interface with the Virtual Server resource.
A set of functions specific to creating, modifying, and checking the status of a Virtual Server are additionally provided, which operate as follows:
Function name
Description
init()
Initializes the client
init() must be called prior to using the client
namespace
Namespace in which the Virtual Server is deployed
name
Name of the Virtual Server
virtualServer.start({namespace, name})
Starts a stopped Virtual Server
virtualServer.stop({namespace, name})
Stops a running Virtual Server
virtualServer.get({namespace, name})
Retrieves a Virtual Server
virtualServer.ready({namespace, name})
Stopping function that waits for the VirtualMachineReady status condition of a Virtual Server
virtualServer.delete({namespace, name})
Deletes a Virtual Server
manifest
A Virtual Server manifest (JSON/Object) - See Examples
virtualServer.list({namespace})
Lists all Virtual Servers
virtualServer.create(manifest)
Creates a Virtual Server
virtualServer.update(manifest)
Update an existing Virtual Server

Application

The application (main.js) implements client.js in order to create, watch, get, and update an example Virtual Server.
The example application serves as an example of how to implement client.js. Additionally, the example application illustrates how one might retrieve status information from a running Virtual Server, retrieving its run state and network information.
Finally, the example shows how to simply interface with the kubevirt __ subresource API in order to start and stop a Virtual Server.

Example

{
apiVersion: "virtualservers.coreweave.com/v1alpha1",
kind: "VirtualServer",
metadata: {
name: "example-vs",
namespace: "my-namespace"
},
spec: {
region: "ORD1",
os: {
type: "linux"
},
resources: {
gpu: {
type: "Quadro_RTX_4000",
count: 1
},
cpu: {
count: 3
},
memory: "16Gi"
},
storage: {
root: {
size: "40Gi",
storageClassName: "ceph-ssd-2-replica",
source: {
pvc: {
namespace: "vd-images",
name: "ubuntu2004-docker-master-20210323-ord1"
}
}
}
},
users: [
{
username, #Set from environment variable
password #Set from environment variable
}
],
network: {
public: true,
tcp: {
ports: [
22,
443,
60443,
4172,
3389,
]
},
udp: {
ports: [
4172,
3389
]
}
},
initializeRunning: true
}
}
Last modified 4mo ago