Skip to content

Task: Implement deploy-flux command for openmcp-bootstrapper #194

@reshnm

Description

@reshnm

Understand the Task

Description

The deploy-flux command has the following arguments:

  • componentLocation: This is the location from the openmcp-root-component can be consumed. This is configurable so that it is possible to deploy different variants or even add-ons that are not part of the github.com/openmcp-project/openmcp component. The componentLocation also contains the version of the component.
  • deploymentTemplates: This argument specifies the resource name within the the openmcp-root-component that contains the deployment templates that are being used to create the deployment specification in the target git repository
  • deploymentRepository: This argument represents a git repository url where the deployment specification will be stored. This will be used in the fluxcd GitSource for .spec.url.
  • deploymentRepositoryBranch: The branch in the deploymentRepository where deployment specification is stored. This will be used in the fluxcd GitSource for .spec.ref.branch.

and the following flags:

  • --ocm-config: The OCM configuration to use
  • --git-credentials: A git credentials configuration file that configure basic auth, personal access token, ssh private key. This will be used in the fluxcd GitSource for spec.secretRef to authenticate against the deploymentRepository. If not set, no authentication will be configured.
  • --kubeconfig: The kubeconfig of the Kubernetes cluster on which the flux deployment will be created/updated. If not set, the current context will be used.
  • --fluxcd-namespace: The namespace on the Kubernetes cluster in which the namespaced fluxcd resources will be deployed. Default flux-system.

The general flow of this command is:

  1. download the openmcp-root-component via the OCM cli
  2. extract the deployment templates resource out of the openmcp-root-component
  3. find the deployment template for fluxcd in the template resource
  4. execute the fluxcd deployment template. The deployment template execution will receive input values like the OCI image locations of the individual deployments (helm controller, kustomize controller, source controller)
  5. apply the templated resources to the target Kubernetes cluster in the specified namespace
  6. create a fluxcd GitSource for the given deploymentRepository and deploymentRepositoryBranch (and --git-credentials if set) in the fluxcd namespace.

Any further valuable resources.

No response

What is required to accept the Task as done.

Done Criteria

  • Code has been reviewed by other team members
  • Internal technical Documentation created/updated
  • New / changed code is documented
  • Unit Tests created for new code or existing Unit Tests updated
  • Integration Test Suite updated
  • Enduser Documentation updated (if applicable)
  • Successful demonstration in Review

Metadata

Metadata

Assignees

Labels

area/open-mcpAll ManagedControlPlane related issueskind/taskGeneral task that needs to be done.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions