Module Manager plays an important part in the modularization ecosystem to handle installation of resources from Control Plane to runtime clusters. As a meta-controller, it manages the entire installation lifecycle of individual modules from installation, upgrades to cleanup. For more information, see the architecture summary.
The Module Manager repository contains:
The architecture and implementation are based on proof-of-concept (POC) results and can change rapidly as we work towards providing a stable solution. In general, the reconciliation and resource-processing framework is considered stable and ready to be used.
The Module Manager repository offers the following components:
System Component | Stability |
---|---|
Manifest | Alpha-Grade - do not rely on automation and watch upstream as close as possible |
Controller | In active development - expect bugs and fast-paced development |
Library | In active development - expect bugs and fast-paced development. Detailed documentation to follow. |
Module Manager reconciles the Manifest
custom resource.
The Spec
contains the necessary properties to process installations as seen in the example Sample Manifest CR and API definition below.
Spec field | Description |
---|---|
Remote | false for single-cluster mode, true (default) for dual-cluster mode |
Resource | Additional unstructured custom resource to be installed, used for implicit reconciliation via Installs |
Installs | OCI image specification for a list of Helm charts |
Config | Optional: OCI image specification for Helm configuration and set flags |
CRDs | Optional: OCI image specification for additional CRDs that are pre-installed before Helm charts are processed |
If .Spec.Remote.
is set to true
, the operator looks for a secret with the name specified by Manifest CR's label operator.kyma-project.io/kyma-name: kyma-sample
.
This secret is used to connect to an existing cluster (target) for Manifest
resource installations.
Learn how to create the required secret in Install Kyma and run lifecycle-manager operator.
For more details on OCI Image bundling and formats, read our bundling and installation guide.
You can use the component descriptor generated from this guide to independently build a Manifest Spec
based on the OCI image specifications.
NOTE: Lifecycle-Manager translates these layers from a
ModuleTemplate
resource on the Kyma Control Plane (KCP) and translates them automatically to a subsequentManifest
resource. Alternatively, you can use your own bundled OCI images. If using additional Helm configuration, you must conform to .Spec.Config format, corresponding to Helminstallation
andset
value flags, for an installation in.Spec.Installs[].Name
.
The operator uses the manifest library to process deployments on clusters.
The manifest library supports Helm chart installations from two sources: helm repositories and local paths. Additionally, it helps to process local installations of CRs, CRDs and custom state checks.
NOTE: We plan to offer Kustomize installation support, along with the existing helm installation soon.
Use the manifest library to simply process deployments on target clusters, or use it within your own operator to process deployment operations.
For example, template-operator uses the manifest library (through the declarative library) to perform necessary operations on target clusters during reconciliations.
To get started, simply import package github.com/kyma-project/module-manager/pkg/manifest
to include the main functionality provided by the library to process Helm charts, coupled with additional state handling.
For more options and information, read the InstallInfo type definition.
KUBECONFIG
environment variable to point towards the desired cluster.Run the following make
file commands:
Make command | Description |
---|---|
build | Run fmt, vet and DeepCopy method implementations |
manifests | Create RBACs CRDs based on API types |
install | Install CRDs |
run | Run operator controller locally |
KUBECONFIG
environment variable to point towards the desired cluster.Run the following commands with IMG
environment variable pointing to the image name
Make command | Description |
---|---|
docker-build | Build operator image |
docker-push | Push docker image to your repo |
deploy | Deploys the operator resources to the desired cluster |
If you want to contribute, follow the Kyma contribution guidelines.
Learn about versioning and releasing.