cli icon indicating copy to clipboard operation
cli copied to clipboard

Bootstrap Kyma using new reconciler architecture

Open clebs opened this issue 3 years ago • 0 comments

Overview

The new way of deploying Kyma consists of deploying Kyma Modules which are OCI images with a CNUDIE descriptor that contain operators that take care of the lifecycle of the module. To install a module, a Module Template is created out of its metadata that can be applied to a cluster directly as a kubernetes manifest.

To be able to build, release and deploy the modules, as well as generate the module templates, we need tooling that enables developers.

Description

The Kyma CLI needs a set of commands to support the new notion of Kyma Modules described previously and enable developers to publish their own modules as easily as possible.

Requirements

  • Create a Kyma Module providing the necessary information as an OCI image with the appropriate layers and configuration so that it can be deployed.
  • Create a Kyma Module from a pre-existing OCI image by adding the necessary layers and metadata on top.
  • Allow users to push and pull Kyma Modules.
  • Allow users to sign Kyma Modules.
  • Generate Module Templates for a given module so they can be deployed on clusters.
  • Allow users to deploy modules using the CLI into a cluster.
  • Allow users to list available modules.
  • Allow users to enable/disable modules.

Non-functional requirements

  • Concurrency safe execution: callers should be able to run many deploy/provision/undeploy processes in the same host (no shared files or resources).
  • Idem potency: running the same operation twice should yield the same result state on the target cluster, as well as be able to generate the same OCI image given the same input every time.
  • Components have to be signed and verifiable.

Proposed solution

The Kyma CLI is in an ideal position to take the role as single tool for the complete bootstrapping process. As such, the CLI will provide commands to create, bundle, unpack and verify Kyma modules, as well as to provisioning and installation of kyma runtimes. It already provides some of the listed features and would need to be adjusted to the new model.

The CLI can be run in all scenarios without any impediments and would provide a stable and robust interface for the kyma lifecycle.

Tasks

  • Module management
    • [x] #1301
    • [x] #1323
    • [x] #1317
    • [x] #1310
    • [x] #1336
    • [x] TBC - has to be revisited. #1324
    • [x] #1309
    • [x] #1335
    • [x] #1366
    • [x] #1368
    • [ ] #1302
    • [ ] #1303
    • [x] #1365
    • [ ] #1367
    • [ ] #1423
  • Provisioning

    No tasks yet

  • Deployment
    • [x] #1316
    • [x] #1318 (Refactor existing deploy-command to use new reconciler-arch)
    • [ ] #1327
    • [ ] #1328
    • [ ] #1422

clebs avatar Jun 21 '22 07:06 clebs