The Bare Metal Cloud Controller for Kubernetes allows developers to define, deploy, and manage Bare Metal Cloud servers in a unified way directly from a Kubernetes cluster.
Bare Metal Cloud • Developers Portal • API Documentation • Knowledge Base • Support
You need to have a Bare Metal Cloud account to use this Kubernetes controller.
- Go to the Bare Metal Cloud signup page.
- Follow the prompts to set up your account.
- Use your credentials to log in to the Bare Metal Cloud portal.
- Configure your environment to communicate with a Kubernetes cluster (1.18+).
- Install Kubebuilder
- Install Kustomize
- Clone this repository.
- Run
make
to build the source. - Run
make install
to install the CRD on your cluster. - Configure your BMC credentials in your environment.
- Run
make run
to run the controller locally. - Add your BMC credentials to a secret and wire that secret .
- Run
make deploy
.
The controller is available as a Docker image here: docker.pkg.github.com/phoenixnap/k8s-bmc/bmc-server-controller:latest.
- Set
USE_EXISTING_CLUSTER=true
to execute a build and test using an existing Kubernetes cluster, as specified by the active context. - Set
KUBEBUILDER_ASSETS=<KUBEBUILDER_BINS_LOCATION>
to execute tests using the Kubebuilder and Kubernetes binaries at the specified location.
- Log in to the Bare Metal Cloud portal.
- On the left side menu, click on API Credentials.
- Click the Create Credentials button.
- Fill in the Name and Description fields, select the permissions scope and click Create.
- In the table, click on Actions and select View Credentials from the dropdown.
💡 Tutorial: How to create and manage BMC credentials
Be careful moving this repository. This project is written in Go and as such uses Git repo URLs as package identifiers. If the code URL is changed the code will need to be changed appropriately.
This is a kubebuilder
project. Only minimal changes have been made to this codebase from the generated scaffolding so that maintainers can leverage as much off-the-shelf tooling and documentation as possible from the kubebuilder
project. The bulk of the application code lives in the controller component at, controllers/server_controller.go
. The API type definitions, defaulting and validating webhook logic live in the directory, api/v1
.
Become part of the Bare Metal Cloud community to get updates on new features, help us improve the platform, and engage with developers and other users.
- Follow @phoenixNAP on Twitter
- Join the official Slack channel
- Sign up for our Developers Monthly newsletter
Get in touch with us if you have questions or need help with Bare Metal Cloud.