Bootstrap Kyma using new reconciler architecture
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 Moduleproviding the necessary information as an OCI image with the appropriate layers and configuration so that it can be deployed. - Create a
Kyma Modulefrom 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 Templatesfor 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