Instant Kubernetes clusters for prototypes, experimentation, development and testing.
We will make this easier, do not fear.
Go to releases and find the latest release.
Download the latest ".js" release
Install to
/usr/local/bin:$ sudo mv ~/Download/qkube-v0.32.1.js /usr/local/bin/qkube $ sudo chmod +x /usr/local/bin/qkube $ qkube ls
Have fun!
Not relevant right now
$ qkube login<opens browser, GitHub/Google login/signup>$ qkube newCreated cluster "fimble-shimble" of size medium (5000mcpu, 128GiB).Using cluster "fimble-shimble" as your default kubectl context.Now you can play with it:
$ kubectl get all...You can also request a different size:
$ qkube new --size smallCreating new cluster "dinker-pinker" of size small (1000mcpu, 64GiB)...Using cluster "dinker-pinker" as your default kubectl context.You can request a cluster with a specific name:
$ qkube new --name my-bangbang-cluster$ qkube ls fimble-shimble medium* dinker-pinker small bangly-pangly small$ qkube use bangly-panglyCluster "bangly-pangly" is now your default kubectl context.$ qkube rm bangly-panglyCluster "bangly-pangly" is gone forever.# DockerfileFROM hashicorp/http-echo
ENV ECHO_TEXT "Hello, quickube!"$ docker build -t dinker-pinker.quickube.sh/echo .
$ k8s registry password | docker login dinker-pinker.quickube.sh -u admin --password-stdin
$ docker push dinker-pinker.quickube.sh/echo# manifest.yamlapiVersion: apps/v1kind: Deploymentmetadata:
name: echospec:
replicas: 1selector:
matchLabels:
app: echotemplate:
metadata:
labels:
app: echospec:
containers:
- name: echoimage: dinker-pinker.quickube.sh/echo:latestports:
- containerPort: 5678
---
apiVersion: v1kind: Servicemetadata:
name: echospec:
ports:
- port: 5678selector:
app: echotype: ClusterIP
---
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:
name: echospec:
rules:
- https:
paths:
- backend:
service:
name: echoport:
number: 5678path: /echopathType: PrefixAnd apply:
$ kubectl apply -f manifest.yamlAnd now it can be accessed from the internets via HTTPS :-):
$ curl https://dinker-pinker.quickube.sh/echoHello, quickube!Create an invite URL for a cluster:
$ qkube invite bangly-panglyhttps://quickube.sh/join/bangly-pangly?key=xosdfkjsdf39dfjhsdf9lInvitee clicks the link, logs in, and the cluster is added to their account.
Now, it's just there:
$ qkube use bangly-pangly
Using cluster "bangly-pangly" as your default kubectl context.POST /clusters
Request body:
{
"size": "small"| "medium" | "large" | "xlarge","region": "<provider-dependent>",
"provider": "aws"| "azure" | "gcp"
}Response:
{
"name": "bangly-pangly",
"size": "small"| "medium" | "large" | "xlarge","region": "<provider-dependent>",
"provider": "aws"| "azure" | "gcp"
}GET /clusters/:name/creds
Response:
{
"publicIp": "1.2.3.4",
"size": "medium",
"region": "us-east-1",
"provider": "aws",
"kubeconfig": "<kubeconfig...>",
"registryPassword": "x2923847usdcbjs8kjsdfsdf"
}GET /clusters
Response:
{
"clusters": [
{
"name": "bangly-pangly",
"size": "small"| "medium" | "large" | "xlarge","region": "<provider-dependent>",
"provider": "aws"| "azure" | "gcp"
}
]
}DELETE /clusters/:name
POST /clusters/:name/invites
Response:
{
"invite": "https://quickube.sh/join/bangly-pangly?key=xosdfkjsdf39dfjhsdf9l"
}cd scripts/launch-instance
./launch.sh(you'll need AWS creds in your environment)
- IP allow list, in customer VPC
- Custom domain names (e.g. bangly-pangly.acme.com)
- Cluster templates (e.g. preloaded secrets, services, argo, etc)
- Self-hosted in customer account and managed by us
- Remote debugging with hot reloading
- Auto-create for pull requests (preview environments)
- RBAC