MCPcopy Index your code
hub / github.com/caicloud/cyclone

github.com/caicloud/cyclone @v1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.0 ↗ · + Follow
2,117 symbols 6,439 edges 393 files 1,328 documented · 63%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Cyclone

Build Status Go Report Card CII Best Practices Coverage Status GoDoc License

Cyclone is a powerful workflow engine and end-to-end pipeline solution implemented with native Kubernetes resources, with no extra dependencies. It can run anywhere Kubernetes is deployed: public cloud, on-prem or hybrid cloud.

Cyclone is architectured with a low-level workflow engine that is application agnostic, offering capabilities like workflow DAG scheduling, resource lifecycle management and most importantly, a pluggable and extensible framework for extending the core APIs. Above which, Cyclone provides built-in support for high-level functionalities, with CI/CD pipelines and AI DevOps being two notable examples, and it is possible to expand to more use cases as well.

With Cyclone, users end up with the flexibility of workflow orchestration and the usability of complete CI/CD and AI DevOps solutions.

Features

  • DAG graph scheduling: Cyclone supports DAG workflow execution
  • Parameterization: stage (unit of execution) can be parameterized to maximize configuration reuse
  • External integration: external systems like SCM, docker registry, S3 can be easily integrated with Cyclone
  • Triggers: Cyclone supports cron and webhook trigger today, with upcoming support for other types of triggers
  • Controllability: workflow execution can be paused, resumed, retried or cancelled
  • Multi-cluster: workflow can be executed in different clusters from where Cyclone is running
  • Multi-tenancy: resource manifests and workflow executions are grouped and isolated per tenant
  • Garbage Collection: automatic resource cleanup after workflow execution
  • Logging: logs are persisted and independent from workflow lifecycle, enabling offline inspection
  • Built-in Pipeline: curated DAG templates and stage runtimes for running DevOps pipelines for both regular software and AI development
  • Delegation Workload: Delegate some complicated stage to be executed in external systems, instead of Cyclone.

Quick Start

Cyclone has been tested with Kubernetes 1.12, 1.13 and 1.14.

Make sure Helm with a version higher than 2.10 is installed (install guide), then install Cyclone with:

$ helm install --name cyclone --namespace cyclone-system ./manifests/cyclone-public

If you want to configure the installation or want to install from source code, please refer to Cyclone Install Guide.

Then you can access Cyclone with kubectl or Cyclone web (http://:30022).

Community

  • Slack: Join Cyclone Community for disscussions and posting questions. If you are not yet a member of Cyclone Slack, you may sign up here.

Aditional Tools

  • cycli Cyclone CLI interface

Roadmap

Cyclone Roadmap

Contributing

If you are interested in contributing to Cyclone, please checkout CONTRIBUTING.md. We welcome any code or non-code contribution!

Licensing

Cyclone is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Extension points exported contracts — how you extend this code

WorkflowNamespaceLister (Interface)
WorkflowNamespaceLister helps list and get Workflows. All objects returned here must be treated as read-only. [21 implementers]
pkg/k8s/listers/cyclone/v1alpha1/workflow.go
Provider (Interface)
Provider represents the interface of SCM provider. [5 implementers]
pkg/server/biz/scm/scm.go
Generator (Interface)
Generator is used to generate specific type of string value, for example, fixed length random string, timestamp. [2 implementers]
pkg/common/values/generators.go
ReadBytes (Interface)
ReadBytes reads and returns a single byte. If no byte is available, returns an error. [1 implementers]
pkg/util/websocket/websocket.go
PodEventWatcher (Interface)
PodEventWatcher watches Kubernetes events for a pod and records Warning type events to WorkflowRun status. [1 implementers]
pkg/workflow/workflowrun/podwatcher.go
StageNamespaceLister (Interface)
StageNamespaceLister helps list and get Stages. All objects returned here must be treated as read-only. [21 implementers]
pkg/k8s/listers/cyclone/v1alpha1/stage.go
Manager (Interface)
Manager is an interface described hook management functions [1 implementers]
pkg/server/biz/hook/hook.go
Interface (Interface)
Interface consists of kubernetes and cyclone interfaces
pkg/util/k8s/client.go

Core symbols most depended-on inside this repo

CycloneV1alpha1
called by 139
pkg/util/k8s/client.go
Get
called by 100
pkg/k8s/listers/cyclone/v1alpha1/stage.go
Do
called by 70
pkg/server/biz/scm/bitbucket/server/v1Client.go
TenantNamespace
called by 61
pkg/server/common/utils.go
ConvertK8sError
called by 52
pkg/util/cerr/error.go
Add
called by 47
pkg/workflow/workflowrun/gc.go
WorkflowRuns
called by 46
pkg/k8s/informers/cyclone/v1alpha1/interface.go
Name
called by 43
pkg/leaderelection/healthz.go

Shape

Method 879
Function 783
Struct 279
Interface 75
Class 71
TypeAlias 22
FuncType 8

Languages

Go85%
TypeScript15%

Modules by API surface

pkg/apis/cyclone/v1alpha1/zz_generated.deepcopy.go136 symbols
web/src/api/index.js47 symbols
pkg/server/handler/v1alpha1/helper.go35 symbols
pkg/server/apis/v1alpha1/types.go34 symbols
pkg/workflow/workflowrun/podwatcher.go27 symbols
pkg/workflow/workflowrun/operator.go27 symbols
pkg/server/handler/v1alpha1/workflowrun.go24 symbols
pkg/server/biz/scm/github/github.go24 symbols
pkg/workflow/coordinator/coordinator.go23 symbols
pkg/k8s/clientset/typed/cyclone/v1alpha1/workflowtrigger.go23 symbols
pkg/k8s/clientset/typed/cyclone/v1alpha1/workflowrun.go23 symbols
pkg/workflow/workload/pod/builder.go22 symbols

For agents

$ claude mcp add cyclone \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page