Archived Documentation

Welcome to the developer documentation for SigOpt. If you have a question you can’t answer, feel free to contact us!
You are currently viewing archived SigOpt documentation. The newest documentation can be found here.
This feature is currently in alpha. Please contact us if you would like more information.

SigOpt Orchestrate: Bring Your Own Cluster

You can connect to SigOpt Orchestrate and run experiments using any Kubernetes cluster! If you are using Google Cloud Platform, Microsoft Azure, or bringing your own cluster on AWS, use this section to learn how to connect your existing Kubernetes cluster to SigOpt Orchestrate.

Configuration Back to Top

SigOpt Orchestrate uses a kubeconfig file to connect to your cluster.

If you already have your kubeconfig file, you can use it to connect to SigOpt Orchestrate with the --kubeconfig argument:

orchestrate cluster connect \
  --cluster-name my-cluster \
  --provider custom \
  --registry my-registry \ # example: gcr.io/[project-id]
  --kubeconfig $HOME/.kube/config

For example, if you have a Google Kubernetes Engine (GKE) cluster up and running, and have the gcloud CLI installed, you can run the following command to generate your kubeconfig:

gcloud container clusters get-credentials <CLUSTER-NAME> [--region <GCP-REGION>]

Initial Setup Back to Top

SigOpt Orchestrate needs to create some extra resources before running on an existing cluster. Please run the following command after connecting to your cluster for the first time:

orchestrate cluster install-plugins

This only needs to be done one time for each custom cluster you use.

Custom Image Registries Back to Top

Clusters with the provider custom will use Docker Hub as their default container registry.

To override the default options with a custom image registry, provide the --registry argument when you connect to your cluster:

orchestrate cluster connect \
  --cluster-name tiny-cluster \
  --provider custom \
  --kubeconfig /path/to/kubeconfig \
  --registry myregistrydomain:port

kubeconfig File Not Found Back to Top

For this section, you will need to install kubectl, a tool for communicating with Kubernetes clusters.

Test Cluster

Test whether or not your development environment is properly setup to talk to your Kubernetes cluster:

$ kubectl get svc

NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
svc/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   1m

If your output looks like the one above, you are ready to proceed to the next step. If your output looks significantly different, or contains an error, please contact your Kubernetes administrator to help you configure access to your cluster.

Connect to Orchestrate

Use kubectl to copy the kubeconfig to a local file, and then connect to SigOpt Orchestrate.

kubectl config view >> kubeconfig

orchestrate cluster connect \
  --cluster-name my-cluster \
  --provider custom \
  --registry my-registry \ # example: gcr.io/[project-id]
  --kubeconfig kubeconfig