Requirement | Purpose | macOS |
---|---|---|
Go | Compiler | brew install go |
Docker | Packaging | Docker for Mac |
kubebuilder | Testing | kubebuilder docs |
Requirement | install docs |
---|---|
Kind | Kind docs |
This project uses the built-in testing support for golang.
Envtest is also used and needs to be set up. Follow controller-runtime instructions and set KUBEBUILDER_ASSETS
environment variable to point to the installation directory, for instance: /usr/local/kubebuilder/bin
.
To run the tests for all go packages outside of the vendor directory, run:
$ make test
To run the e2e tests locally:
$ make e2e-local
NOTE: If you want to run the e2e tests, you need to make sure Kind is deployed in the local environment and switch the kubeconfig to an existing Kind cluster.
To run a specific e2e test locally:
$ make e2e-local TEST=TestCreateInstallPlanManualApproval
Ensure your version of go is up to date; check that you're running the same version as in go.mod with the commands:
$ head go.mod
$ go version
To build the go binary, run:
$ make build
ALM is packaged as a set of manifests for a tectonic-x-operator specialization (tectonic-alm-operator).
A new version can be generated from the helm chart by:
- Modifying the
deploy/tectonic-alm-operator/values.yaml
file for the release to include new SHAs of the container images. - Running the
package
make command, which takes a single variable (ver
)
For example:
make ver=0.3.0 package
Will generate a new set of manifests from the helm chart in deploy/chart
combined with the values.yaml
file in deploy/tectonic-alm-operator
, and output the rendered templates to deploy/tectonic-alm-operator/manifests/0.3.0
.
See the documentation in deploy/tectonic-alm-operator
for how to take the new manifests and package them as a new version of tectonic-alm-operator
.
These commands are handled for you via the Makefile. To install the project dependencies, run:
$ make vendor
To update dependencies, run:
$ make vendor-update
# verify changes
$ make test
$ make e2e-local-docker
The Makefile recipes for testing and builds ensure the project's dependencies are properly installed and vendored before running.