app-service

module
v0.0.0-...-2b23c5f Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2026 License: AGPL-3.0

README

app-service

Description

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.

Getting Started

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).

Running on the cluster
  1. Build and push your image to the location specified by IMG:
make docker-build docker-push IMG=<some-registry>/app-service:tag
  1. Deploy the controller to the cluster with the image specified by IMG:
make deploy IMG=<some-registry>/app-service:tag
Uninstall CRDs

To delete the CRDs from the cluster:

make uninstall
Undeploy controller

UnDeploy the controller to the cluster:

make undeploy

Contributing

Issues and pull requests are welcome. Please open an issue to discuss substantial changes before submitting a PR.

How it works

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

Test It Out
  1. Install the CRDs into the cluster:
make install
  1. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):
make run

NOTE: You can also run this in one step by running: make install run

Modifying the API definitions

If you are editing the API definitions, generate the manifests such as CRs or CRDs using:

make manifests

NOTE: Run make --help for more information on all potential make targets

More information can be found via the Kubebuilder Documentation

Directories

Path Synopsis
cmd
app-service command
image-service command
pkg
appinstaller/v3
Package v3 wraps the v1 HelmOps for v3 apps.
Package v3 wraps the v1 HelmOps for v3 apps.
cluster
Package cluster reads the cluster.olares.io/v1alpha1 ClusterConfig singleton to resolve the platform domain.
Package cluster reads the cluster.olares.io/v1alpha1 ClusterConfig singleton to resolve the platform domain.
compute/validation
Package validation aggregates resource feasibility checks for install, upgrade and resume.
Package validation aggregates resource feasibility checks for install, upgrade and resume.
gateway
Package gateway contains helpers app-service uses to project Application state into SharedRouteRegistry (gateway.olares.io/v1alpha1) objects.
Package gateway contains helpers app-service uses to project Application state into SharedRouteRegistry (gateway.olares.io/v1alpha1) objects.
gateway/routecontrol
Package routecontrol implements app-service shared ingress route control: for each SharedRouteRegistry (SRR) it maintains the Gateway API HTTPRoute and the companion NetworkPolicy that allow app-gateway to reach the upstream Service (in the SRR namespace or upstream.serviceNamespace).
Package routecontrol implements app-service shared ingress route control: for each SharedRouteRegistry (SRR) it maintains the Gateway API HTTPRoute and the companion NetworkPolicy that allow app-gateway to reach the upstream Service (in the SRR namespace or upstream.serviceNamespace).
gateway/v1alpha1
Package v1alpha1 contains the gateway.olares.io/v1alpha1 API types.
Package v1alpha1 contains the gateway.olares.io/v1alpha1 API types.
testutil
Package testutil provides shared helpers for app-service unit tests: a scheme builder, a fake controller-runtime client, fixtures for the custom resources and workloads, and a fake HelmOps implementation.
Package testutil provides shared helpers for app-service unit tests: a scheme builder, a fake controller-runtime client, fixtures for the custom resources and workloads, and a fake HelmOps implementation.
users/activeusers
Package activeusers maintains a process-local cache of "activated" users so callers (notably the NATS event fan-out for v3 / shared apps) can answer "who is currently activated?" without hitting the kube API on every event.
Package activeusers maintains a process-local cache of "activated" users so callers (notably the NATS event fan-out for v3 / shared apps) can answer "who is currently activated?" without hitting the kube API on every event.

Jump to

Keyboard shortcuts

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