PlantD-operator

module
v1.6.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 23, 2024 License: GPL-2.0

README

PlantD Operator

Go Report Card Release Docker images to GitHub Container Registry GitHub License

Kubernetes operator for PlantD.

Documentation

For how to install PlantD, see installation guide.

For more information about PlantD, see PlantD website.

Development

Prerequisites

To install the Prometheus Operator and K6 Operator, run the following commands:

# Install the K6 Operator
curl https://raw.githubusercontent.com/grafana/k6-operator/main/bundle.yaml | kubectl create -f -

# Install the Prometheus Operator
curl https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yaml | kubectl create -f -
CLI Commands
Generate code
make generate

This command will generate the auto-generated code such as zz_generated.deepcopy.go.

NOTE: Remember to run this command after modifying the CRD.

Generate CRD manifests
make manifests

This command will generate the CRD manifests under config.

NOTE: Remember to run this command after modifying the CRD.

Generate bundle.yaml
make bundle

This command will generate the bundle.yaml.

NOTE: Remember to run this command after modifying the CRD.

Generate CRD API reference
make docs

This command will generate the CRD API reference at docs/api/crd-api-reference.md.

NOTE: Remember to run this command after modifying the CRD.

Install/Uninstall the CRD
# Install
make install

# Uninstall
make uninstall
Deploy/Undeploy the operator
# Deploy
make deploy

# Deploy with a custom Docker image
make deploy IMG=<custom-image>

# Undeploy
make undeploy

NOTE: Remember to run

kubectl delete plantdcore -n plantd-operator-system plantdcore-core

before undeploying the operator, since the undeploying command will remove PlantD controllers before removing the PlantDCore resource, and the PlantDCore resource has a finalizer that will prevent the entire process from completing given the operator is removed before.

Release

This project uses GitHub Actions as our CI/CD pipeline and to release Docker images to GitHub Container Registry. See .github/workflows/release-ghcr.yaml for more details.

To release a new version, create a new git tag with the version number prefixed with v, e.g., v1.2.3. See semantic versioning for more details about version numbers. Then, push the git tag and the workflow will be triggered automatically. The output Docker image will be tagged with the same version number as the git tag.

You can also manually trigger the workflow to release an unversioned Docker image with a tag of the git commit hash. To do so, go to the workflow page.

References

Contributing

We welcome contributions from the open-source community, from bug fixes to new features and improvements. See CONTRIBUTING.md for more information on how to contribute.

License

PlantD is licensed under the GPLv2 License. See LICENSE for more details.

Funding

PlantD is funded by Honda's 99P labs, with implementation and ongoing support provided by the TEEL team at Carnegie Mellon University.

Contact

99p Labs TEEL Lab logo Carnegie Mellon University

For more information about the PlantD project, please contact us:

We are always open to collaboration, questions, and suggestions!

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the windtunnel v1alpha1 API group +kubebuilder:object:generate=true +groupName=windtunnel.plantd.org
Package v1alpha1 contains API Schema definitions for the windtunnel v1alpha1 API group +kubebuilder:object:generate=true +groupName=windtunnel.plantd.org
apps
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL