Cyclone has been tested with Kubernetes 1.12, 1.13 and 1.14.
Cyclone can be easily installed with Helm with a version higher than 2.10, refer to helm install guide for Helm installation.
You can use helm template
to generate Kubernetes manifests for Cyclone and then install it using kubectl apply
,
or you can use helm install
to manage Cyclone installation by Tiller.
You can install Tiller after Helm is ready with command:
$ helm init --history-max 200
The simplest way to install Cyclone is using Helm chart. By default, images are pulled from DockerHub, so make sure DockerHub is accessible from your cluster.
$ helm install --name cyclone --namespace cyclone-system ./helm/cyclone
If you want to use your own private registry, you can configure it as:
$ helm install --name cyclone --namespace cyclone-system --set imageRegistry.registry=cargo.caicloud.xyz,imageRegistry.project=release ./helm/cyclone
For more detailed configuration, please use values file, default values file is a good reference on how to write it.
$ helm install --name cyclone --namespace cyclone-system -f <path-to-your-values-file> ./helm/cyclone
If you want to release after change charts, you can upgrade with command:
$ helm upgrade cyclone ./helm/cyclone
If you want to uninstall Cyclone, you can clean up it with command:
$ helm delete --purge cyclone
Parameter | Description | Default |
---|---|---|
imageRegistry.registry |
Image registry where to pull images | docker.io |
imageRegistry.project |
Project in the registry where to pull Cyclone component images | caicloud |
imageRegistry.libraryProject |
Project in the registry where to pull common images, like busybox |
library |
serverAddress |
Address of the Cyclone Server (provides Restful APIs) | cyclone-server.default.svc.cluster.local::7099 |
systemNamespace |
Namespace where Cyclone will be installed | default |
Parameter | Description | Default |
---|---|---|
engine.images |
Images used in workflow engine, for example, engine.images.gc (default alpine:3.8 ) defines image used for garbage collection. |
alpine:3.8 for engine.images.gc , docker:18.03-dind for dind |
engine.gc.enabled |
Whether enable garbage collection | true |
engine.gc.delaySeconds |
Time to wait before cleaning up execution of a workflow. It gives users chance to check the execution details (for example, pods, data on PVC) when execution finished | 300 |
engine.gc.retry |
How many times to retry (include the initial one, so 1 means no retry) when performing GC |
1 |
engine.limits.maxWorkflowRuns |
Maximum number of execution records to keep for each workflow | 50 |
engine.resourceRequirement |
Default resource requirements that would be applied to each stage, if non specified when execute a workflow | CPU: 50m/100m, Memory: 128Mi/256Mi |
engine.notification.url |
URL where to notify workflow execution result, it's Cyclone server by default | http://cyclone-server.default.svc.cluster.local::7099/apis/v1alpha1/notifications |
engine.developMode |
Whether it's in develop mode, in develop mode, ImagePullPolicy would be Always in the engine |
true |
engine.executionContext.namespace |
If no execution context(cluster, namespace, PVC) specified when run workflow, use this namespace in control cluster | cyclone-system |
engine.executionContext.pvc |
If no execution context specified when run workflow, use this PVC | cyclone-pvc-system |
Parameter | Description | Default |
---|---|---|
server.listenAddress |
Address where Cyclone server will serve | 0.0.0.0 |
server.listenPort |
Port that Cyclone server will serve on | 7099 |
server.nodePort |
Node port that Cyclone server will expose its service from the cluster | 30011 |
server.init.defaultTenant |
Whether init default tenant system in the installation |
true |
server.init.templates |
Whether init stage templates | true |
server.openControlCluster |
When a tenant created, whether to open control cluster for the tenant to run workflow, to open control cluster, PVC would be created | true |
server.pvc.storageClass |
Default StorageClass used to create PVC | Empty string |
server.pvc.size |
Default PVC size if not specified | 10Gi |
server.resourceRequirement |
Resource quota applied to namespace create for tenant to run workflow | CPU: 1/2, Memory: 2Gi/4Gi |
server.storageWatcher.reportUrl |
URL to report PVC usage, it's Cyclone server by default | http://cyclone-server.default.svc.cluster.local::7099/apis/v1alpha1/storage/usages |
server.storageWatcher.intervalSeconds |
Time interval to report PVC usage | 30 |
server.storageWatcher.resourceRequirements |
Resource requirements applied to the storage watcher pod | CPU: 50m/100m, Memory: 32Mi/64Mi |
Parameter | Description | Default |
---|---|---|
web.replicas |
Replicas of cyclone web | 1 |
web.listenPort |
Port Cyclone web will listen on | 80 |
web.nodePort |
Node port that Cyclone web will expose its service | 30022 |
If you'd like to build images from the source code, please do it as:
$ docker login <registry> -u <user> -p <pwd>
$ make push REGISTRIES=<registry>/<project>
Here / specifies the registry and project where to push your images, for example, cargo.caicloud.xyz/release
.
Then install Cyclone with Helm.
$ helm install --name cyclone --namespace cyclone-system --set imageRegistry.registry=<registry>,imageRegistry.project=<project> ./helm/cyclone