app-service is a component of Terminus OS, principally tasked with managing the installation, upgrade, and uninstallation of Application, Model, and Recommend among other related operations. Additionally, app-service offers a seamless interface for the convenient management of Application and Recommend.
The Application is a Custom Resource (CR) defined by k8s Custom Resource Definition (CRD). When a user initiates an installation, it is automatically created by the Application Controller.
You’ll need a Kubernetes cluster to run against. You can use KIND to get a local cluster for testing, or run against a remote cluster.
Note: Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster kubectl cluster-info shows).
- Build and push your image to the location specified by
IMG:
make docker-build docker-push IMG=<some-registry>/app-service:tag- Deploy the controller to the cluster with the image specified by
IMG:
make deploy IMG=<some-registry>/app-service:tagTo delete the CRDs from the cluster:
make uninstallUnDeploy the controller to the cluster:
make undeploy// TODO(user): Add detailed information on how you would like others to contribute to this project
This project aims to follow the Kubernetes Operator pattern
It uses Controllers which provides a reconcile function responsible for synchronizing resources untile the desired state is reached on the cluster
- Install the CRDs into the cluster:
make install- Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):
make runNOTE: You can also run this in one step by running: make install run
If you are editing the API definitions, generate the manifests such as CRs or CRDs using:
make manifestsNOTE: Run make --help for more information on all potential make targets
More information can be found via the Kubebuilder Documentation