Documentation

Welcome to the developer documentation for SigOpt. If you have a question you can’t answer, feel free to contact us!
Welcome to the new SigOpt docs! If you're looking for the classic SigOpt documentation then you can find that here. Otherwise, happy optimizing!

SigOpt: Bring Your Own Cluster

You can connect to SigOpt 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.

Configuration Back to Top

SigOpt uses a kubeconfig file to connect to your cluster.

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

$ sigopt 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 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:

$ sigopt 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:

$ sigopt 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 SigOpt

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

$ kubectl config view >> kubeconfig

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