provider-vultr
is composed of a golang project and can be built directly with standard golang
tools. We currently support two different platforms for building:
- Linux: most modern distros should work although most testing has been done on Ubuntu
- Mac: macOS 10.6+ is supported
An Intel-based machine (recommend 2+ cores, 2+ GB of memory and 128GB of SSD). Inside your build environment (Docker for Mac or a VM), 6+ GB memory is also recommended.
The following tools are need on the host:
- curl
- docker (1.12+) or Docker for Mac (17+)
- git
- make
- golang
- rsync (if you're using the build container on mac)
- helm (v2.8.2+)
- kubebuilder (v1.0.4+)
You can build the Crossplane Vultr Provider for the host platform by simply running the command below.
Building in parallel with the -j
option is recommended.
make -j4
The first time make
is run, the build submodule will be synced and
updated. After initial setup, it can be updated by running make submodules
.
Run make help
for more options.
Official Crossplane builds are done inside a build container. This ensures that we get a consistent build, test and release environment. To run the build inside the cross container run:
build/run make -j4
The first run of build/run
will build the container itself and could take a few minutes to complete, but subsequent builds should go much faster.
Once your Cluster is up and running, you'll need to install Crossplane.
We recommend using Helm to install Crossplane. You can find the official documentation here. These are the commands:
kubectl create namespace crossplane-system
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update
helm install crossplane --namespace crossplane-system crossplane-stable/crossplane
Next install this Vultr Crossplane provider:
# clone this repo
git clone [email protected]:vultr/crossplane-provider-vultr.git
cd provider-vultr
# install the crds
kubectl apply -f package/crds
Run the provider:
make run
Configure the provider:
# change the examples/secret.yaml to use your VULTR_API_KEY
kubectl apply -f examples/providerconfig/secret.yaml
kubectl apply -f examples/providerconfig/providerconfig.yaml
Go to the examples-generated directory in this repo, find the Vultr product you'd like to deploy, make any needed changes to the yaml file, and then create the resource.
For example, if you'd like to spin up a VKE Cluster, run the command
kubectl apply -f examples-generated/vultr/kubernetes.yaml
# wait a bit
kubectl get managed
and check your Vultr account to see if the resource has been created.