kratix init from an operator. Output of the command will be a working promise with api, dependencies, and resource configure workflow image generated based on the input operator that people can kubectl apply without any further customization.
Design
$> kratix init operator-promise --help
Generates a Promise from an Kubernetes Operator.
Examples
# generate a promise
kratix init operator-promise PROMISENAME --group myorg.com --version v1 --kind database
Flags:
...
api.yaml # this is the operator crd with the promise gvk
dependencies.yaml # this is the operator manifests, bundled
resource-request.yaml
resources/
configure/
workflow.yaml # this contains the copy-object pipeline definition
instance-configure/
from-api-to-operator/
Dockerfile
pipeline.sh # this is the deploy script
Tasks
[x] Generate the dependencies.yaml
[x] Generate the api.yaml from operator, replacing the gvk
[x] if no --api-from provided, but multiple crds found, error
[x] Write the workflow to generate the operator-compatible object
[x] Provide support for --split
[x] Provide support for single promise.yaml
[x] Test it e2e
[x] Consider what's a reasonable e2e integration test and what operators we want to use for testing
Context
kratix init from an operator. Output of the command will be a working promise with api, dependencies, and resource configure workflow image generated based on the input operator that people can
kubectl apply
without any further customization.Design
The command:
Outputs:
Tasks