erda

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2021 License: AGPL-3.0

README

Erda - An enterprise-grade application building, development, monitoring platform

Erda logo

Introduction

Erda is an open-source platform created by Terminus to ensuring the development of microservice applications. It provides DevOps, microservice governance, and multi-cloud management capabilities. The multi-cloud architecture based on Kubernetes and application-centric DevOps and microservice governance can make the development, operation, monitoring, and problem diagnosis of complex business applications simpler and more efficient.

Functional Architecture

Erda is mainly composed of the following parts, they are

  • DevOps
  • Microservice Governance, include Application Performance Management, Monitoring, Log Analysis, API Gateway, etc.
  • Multi-cloud Management
  • Edge Computing
  • FastData Management

Erda's vision is "Build any application, Deploy anywhere, Monitor everything".

Screenshot

Screenshot

Architecture

We split the codes of erda into multiple repositories according to different function. The key repositories are erda, erda-proto, erda-infra, erda-ui.

erda It is the main repository.

erda-proto Store the communication protocol definitions between erda internal services, and the componentized protocol definitions between the web front-end and back-end services.

erda-infra It is a basic repository, which stores some common and basic module codes, including the wrappers of middleware SDK, etc.

erda-ui It is erda's web system and an essential component of erda. Due to the separation of front-end and back-end, it is an independent repository.

User Documentation

To start using Erda, please see our user documentation. Before using, you need to see the installation document to install erda.

Contributing

This section is in progress here Contributing to Erda

Contact Us

We look forward to your connecting with us, you can ask us any questions.

License

Erda is under the AGPL 3.0 license. See the LICENSE file for details.

Directories

Path Synopsis
Package apistructs api request/response结构体定义 Package apistructs 自动化运行脚本相关 UnifiedFileTree 统一目录树协议
Package apistructs api request/response结构体定义 Package apistructs 自动化运行脚本相关 UnifiedFileTree 统一目录树协议
build
Package bundle 定义了整个 dice 的 client 方法 用法: b := bundle.New() b.CallXXX() Package bundle 见 bundle.go Package bundle 见 bundle.go Package bundle 见 bundle.go
Package bundle 定义了整个 dice 的 client 方法 用法: b := bundle.New() b.CallXXX() Package bundle 见 bundle.go Package bundle 见 bundle.go Package bundle 见 bundle.go
cmd
kms
ops
qa
modules
apim
Package apim API 管理
Package apim API 管理
apim/conf
package conf defines configurations
package conf defines configurations
apim/dbclient
package dbclient defines operations about database
package dbclient defines operations about database
apim/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
apim/services/apierrors
Package apierrors 定义了错误列表
Package apierrors 定义了错误列表
apim/services/assetsvc
Package asset API 资产
Package asset API 资产
cmdb
Package cmdb dice元数据管理
Package cmdb dice元数据管理
cmdb/conf
Package conf 定义配置选项
Package conf 定义配置选项
cmdb/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
cmdb/services/appcertificate
Package certificate 封装AppCertificate资源相关操作
Package certificate 封装AppCertificate资源相关操作
cmdb/services/application
Package application 应用逻辑封装
Package application 应用逻辑封装
cmdb/services/approve
Package approve 封装Approve资源相关操作
Package approve 封装Approve资源相关操作
cmdb/services/certificate
Package certificate 封装Certificate资源相关操作
Package certificate 封装Certificate资源相关操作
cmdb/services/cloudaccount
Package account 账号逻辑封装
Package account 账号逻辑封装
cmdb/services/issue
Package issue 封装 事件 相关操作
Package issue 封装 事件 相关操作
cmdb/services/iteration
Package iteration 封装 迭代 相关操作
Package iteration 封装 迭代 相关操作
cmdb/services/member
Package member 成员操作封装
Package member 成员操作封装
cmdb/services/org
Package org 封装企业资源相关操作
Package org 封装企业资源相关操作
cmdb/services/project
Package project 封装项目资源相关操作
Package project 封装项目资源相关操作
cmdb/services/publisher
Package publisher 封装Publisher资源相关操作
Package publisher 封装Publisher资源相关操作
cmdb/services/ticket
Package ticket 封装工单相关操作
Package ticket 封装工单相关操作
dicehub
Package dicehub Dicehub module
Package dicehub Dicehub module
dicehub/conf
Package conf Dicehub 环境配置
Package conf Dicehub 环境配置
dicehub/dbclient
Package dbclient 数据库相关操作
Package dbclient 数据库相关操作
dicehub/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
dicehub/errcode
Package errcode Dicehub错误码
Package errcode Dicehub错误码
dicehub/event
Package event DiceHub关键操作事件发送逻辑
Package event DiceHub关键操作事件发送逻辑
dicehub/recycle
Package recycle Release GC处理
Package recycle Release GC处理
dicehub/registry
Package registry docker registry manifest操作
Package registry docker registry manifest操作
dicehub/response
Package response release api 响应格式
Package response release api 响应格式
eventbox/register
对外提供 API 用于注册特定 label 对 其他 label 的关系 暂定这个特定 label 的 key 为 "REGISTERED_LABEL".(constant.RegisterLabelKey) e.g.
对外提供 API 用于注册特定 label 对 其他 label 的关系 暂定这个特定 label 的 key 为 "REGISTERED_LABEL".(constant.RegisterLabelKey) e.g.
eventbox/register/label
default register labels here
default register labels here
eventbox/server
TODO: refactor this module when pkg/httpserver ready
TODO: refactor this module when pkg/httpserver ready
gittar-adaptor
Package adaptor gittar adaptor的初始化
Package adaptor gittar adaptor的初始化
gittar-adaptor/conf
Package conf 配置文件信息
Package conf 配置文件信息
gittar-adaptor/endpoints
Package endpoints API相关的数据信息 Package endpoints Info的handle Package endpoints release的handle
Package endpoints API相关的数据信息 Package endpoints Info的handle Package endpoints release的handle
gittar-adaptor/event
Package event 事件信息
Package event 事件信息
gittar-adaptor/service/apierrors
Package apierrors api的错误返回信息
Package apierrors api的错误返回信息
gittar-adaptor/service/cdp
Package cdp pipeline相关的结构信息
Package cdp pipeline相关的结构信息
gittar-adaptor/service/pipeline
Package pipeline pipeline相关的结构信息
Package pipeline pipeline相关的结构信息
kms
Package kms provides unified Key Management Service.
Package kms provides unified Key Management Service.
kms/conf
Package conf defines config options.
Package conf defines config options.
kms/endpoints
Package endpoints defines all route handlers.
Package endpoints defines all route handlers.
kms/endpoints/apierrors
Package apierrors defines all service errors.
Package apierrors defines all service errors.
openapi/api/apis/dicehub
Package apis dice api集合 Package apis dice api集合
Package apis dice api集合 Package apis dice api集合
openapi/monitor
Package monitor collect and export openapi metrics Package monitor collect and export openapi metrics
Package monitor collect and export openapi metrics Package monitor collect and export openapi metrics
ops
Package ops Core components of multi-cloud management platform Package ops Core components of multi-cloud management platform
Package ops Core components of multi-cloud management platform Package ops Core components of multi-cloud management platform
ops/conf
Package conf Define the configuration
Package conf Define the configuration
orchestrator
Package orchestrator 编排器
Package orchestrator 编排器
orchestrator/conf
Package conf 定义了 orchestrator 所需要的配置选项,这些配置选项都是通过环境变量加载.
Package conf 定义了 orchestrator 所需要的配置选项,这些配置选项都是通过环境变量加载.
orchestrator/dbclient
Package dbclient 定义数据库操作的方法, orm 等。
Package dbclient 定义数据库操作的方法, orm 等。
orchestrator/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
orchestrator/services/apierrors
Package apierrors 定义了错误列表
Package apierrors 定义了错误列表
orchestrator/services/deployment
Package deployment 部署相关操作
Package deployment 部署相关操作
orchestrator/services/runtime
Package runtime 应用实例相关操作
Package runtime 应用实例相关操作
pipeline
Package pipeline 流水线
Package pipeline 流水线
pipeline/conf
Package conf 定义了 pipeline 所需要的配置选项,这些配置选项都是通过环境变量加载.
Package conf 定义了 pipeline 所需要的配置选项,这些配置选项都是通过环境变量加载.
pipeline/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
pipeline/metrics
Package metrics work with monitor metrics.
Package metrics work with monitor metrics.
pipeline/pipengine/queue
Package queue includes: - priority queue - enhanced queue based on priority queue - throttler for pipeline based on enhanced queue
Package queue includes: - priority queue - enhanced queue based on priority queue - throttler for pipeline based on enhanced queue
pipeline/services/apierrors
Package apierrors 定义了错误列表
Package apierrors 定义了错误列表
pkg/etcdclient
由于要实现 多个eventbox实例同时watch相同目录,并且只处理一次,而etcd库中提供的分布式锁在etcd断开连接时候有问题, eventbox中用事务来实现, 但是需要一个 etcd client, 所以在这个文件实现一下 NewEtcdClient
由于要实现 多个eventbox实例同时watch相同目录,并且只处理一次,而etcd库中提供的分布式锁在etcd断开连接时候有问题, eventbox中用事务来实现, 但是需要一个 etcd client, 所以在这个文件实现一下 NewEtcdClient
pkg/innerdomain
Package innerdomain , interconversion between k8s & marathon internal domain 旧版本的内部地址格式 <servicename>.<servicegroup-name>.<servicegroup-namespace>.<suffix1>.<suffix2>.marathon.l4lb.thisdcos.directory e.g.
Package innerdomain , interconversion between k8s & marathon internal domain 旧版本的内部地址格式 <servicename>.<servicegroup-name>.<servicegroup-namespace>.<suffix1>.<suffix2>.marathon.l4lb.thisdcos.directory e.g.
pkg/user
Package user 定义通用的 user 逻辑.
Package user 定义通用的 user 逻辑.
qa
qa/dao
Package dbclient 定义数据库操作的方法, orm 等。
Package dbclient 定义数据库操作的方法, orm 等。
qa/services/apierrors
Package apierrors 定义了错误列表
Package apierrors 定义了错误列表
scheduler/executor/plugins/k8s
Package k8s implements managing the servicegroup by k8s cluster
Package k8s implements managing the servicegroup by k8s cluster
scheduler/executor/plugins/k8s/configmap
Package configmap manipulates the k8s api of configmap object
Package configmap manipulates the k8s api of configmap object
scheduler/executor/plugins/k8s/deployment
Package deployment manipulates the k8s api of deployment object
Package deployment manipulates the k8s api of deployment object
scheduler/executor/plugins/k8s/event
Package event manipulates the k8s api of event object Package event manipulates the k8s api of event object Package event manipulates the k8s api of event object
Package event manipulates the k8s api of event object Package event manipulates the k8s api of event object Package event manipulates the k8s api of event object
scheduler/executor/plugins/k8s/ingress
Package ingress manipulates the k8s api of ingress object
Package ingress manipulates the k8s api of ingress object
scheduler/executor/plugins/k8s/k8sapi
Package k8sapi contains necessary k8s types and objects
Package k8sapi contains necessary k8s types and objects
scheduler/executor/plugins/k8s/k8serror
Package k8serror encapsulates error of k8s object
Package k8serror encapsulates error of k8s object
scheduler/executor/plugins/k8s/k8sservice
Package k8sservice manipulates the k8s api of service object
Package k8sservice manipulates the k8s api of service object
scheduler/executor/plugins/k8s/namespace
Package namespace manipulates the k8s api of namespace object
Package namespace manipulates the k8s api of namespace object
scheduler/executor/plugins/k8s/persistentvolume
Package persistentvolume manipulates the k8s api of persistentvolume object
Package persistentvolume manipulates the k8s api of persistentvolume object
scheduler/executor/plugins/k8s/persistentvolumeclaim
Package persistentvolumeclaim manipulates the k8s api of persistentvolumeclaim object
Package persistentvolumeclaim manipulates the k8s api of persistentvolumeclaim object
scheduler/executor/plugins/k8s/pod
Package pod manipulates the k8s api of pod object
Package pod manipulates the k8s api of pod object
scheduler/executor/plugins/k8s/role
Package role manipulates the k8s api of role object
Package role manipulates the k8s api of role object
scheduler/executor/plugins/k8s/rolebinding
Package rolebinding manipulates the k8s api of rolebinding object
Package rolebinding manipulates the k8s api of rolebinding object
scheduler/executor/plugins/k8s/secret
Package secret manipulates the k8s api of secret object
Package secret manipulates the k8s api of secret object
scheduler/executor/plugins/k8s/serviceaccount
Package serviceaccount manipulates the k8s api of serviceaccount object
Package serviceaccount manipulates the k8s api of serviceaccount object
scheduler/executor/plugins/k8s/statefulset
Package statefulset manipulates the k8s api of statefulset object
Package statefulset manipulates the k8s api of statefulset object
scheduler/executor/plugins/k8sspark/sparkapplication
Package sparkapplication manipulates the k8s api of sparkapplication object
Package sparkapplication manipulates the k8s api of sparkapplication object
scheduler/impl/cluster
Package cluster impl cluster API
Package cluster impl cluster API
scheduler/impl/cluster/clusterutil
Package clusterutil cluster utils
Package clusterutil cluster utils
scheduler/schedulepolicy/constraintbuilders
Package constraintbuilders Generate various executor specific constraints (constraints) according to scheduleInfo
Package constraintbuilders Generate various executor specific constraints (constraints) according to scheduleInfo
scheduler/schedulepolicy/labelconfig
Package labelconfig label 调度相关 key 名, 以及中间结构定义
Package labelconfig label 调度相关 key 名, 以及中间结构定义
scheduler/server
TODO: refactor me, 把这个文件中的所有逻辑都去掉,只有 http 处理和 检查 参数合法性
TODO: refactor me, 把这个文件中的所有逻辑都去掉,只有 http 处理和 检查 参数合法性
uc-adaptor/conf
Package conf 配置文件信息
Package conf 配置文件信息
uc-adaptor/dao
Package dbclient 定义数据库操作的方法, orm 等。
Package dbclient 定义数据库操作的方法, orm 等。
uc-adaptor/endpoints
Package endpoints API相关的数据信息 Package endpoints Info的handle
Package endpoints API相关的数据信息 Package endpoints Info的handle
volume-provisioner
Package volumeprovisioner is a persistent volume claim provisioner for kubernetes.
Package volumeprovisioner is a persistent volume claim provisioner for kubernetes.
pkg
apitestsv2
* v1_jsonbody 兼容 apitestsv1 里的 json body 渲染逻辑: - 反序列化,当类型是 map 或 slice 时进行处理 - value(map 的 value、slice 的 value) 必须**全量匹配** {{.+}},不支持 {{.+}}xxx 这种 - 匹配之后,替换时根据配置的具体类型进行渲染 举例: - 例如 map 有一组 kv 为 "key1": "{{ticketID}}" - 若参数 ticketID 为 integer(10),渲染结果为 "key1": 10 - 若参数 ticketID 为 string("10"),渲染结果为 "key1": "10" - 假如 map 有一组 kv 为 "key1": {{ticketID}} - 此时反序列化失败,不进行 v1 渲染 - 此时走 v2 渲染逻辑,即文本渲染。
* v1_jsonbody 兼容 apitestsv1 里的 json body 渲染逻辑: - 反序列化,当类型是 map 或 slice 时进行处理 - value(map 的 value、slice 的 value) 必须**全量匹配** {{.+}},不支持 {{.+}}xxx 这种 - 匹配之后,替换时根据配置的具体类型进行渲染 举例: - 例如 map 有一组 kv 为 "key1": "{{ticketID}}" - 若参数 ticketID 为 integer(10),渲染结果为 "key1": 10 - 若参数 ticketID 为 string("10"),渲染结果为 "key1": "10" - 假如 map 有一组 kv 为 "key1": {{ticketID}} - 此时反序列化失败,不进行 v1 渲染 - 此时走 v2 渲染逻辑,即文本渲染。
apitestsv2/cookiejar
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
clientgo/apis/flinkoperator/v1beta1
Package v1beta1 is the v1beta1 version of the flinkcluster API.
Package v1beta1 is the v1beta1 version of the flinkcluster API.
clientgo/apis/openyurt/v1alpha1
+groupName=apps.openyurt.io Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.openyurt.io
+groupName=apps.openyurt.io Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.openyurt.io
clientgo/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
clientgo/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
clientgo/clientset/versioned/typed/flinkoperator/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientgo/clientset/versioned/typed/openyurt/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
cron
Package cron implements a cron spec parser and job runner.
Package cron implements a cron spec parser and job runner.
dag
Use: 1.
Use: 1.
envconf
Package envconf 从环境变量加载配置项用于初始化具体的配置对象。
Package envconf 从环境变量加载配置项用于初始化具体的配置对象。
goroutinepool
Usage: poolSize := 10 pool := goroutinepool.New(poolSize) pool.Start() pool.Go(func(){...}) // `Go' will return `NoMoreWorkerErr' if no more worker available pool.MustGo(func(){...}) // `MustGo' will block until any worker available pool.Stop() // `Stop' will block to wait all workers done pool.Start() // and the same pool can be reused
Usage: poolSize := 10 pool := goroutinepool.New(poolSize) pool.Start() pool.Go(func(){...}) // `Go' will return `NoMoreWorkerErr' if no more worker available pool.MustGo(func(){...}) // `MustGo' will block until any worker available pool.Stop() // `Stop' will block to wait all workers done pool.Start() // and the same pool can be reused
httpclient
Package httpclient impl http client Package httpclient impl http client
Package httpclient impl http client Package httpclient impl http client
httpserver
Package httpserver httpserver统一封装,使API注册更容易
Package httpserver httpserver统一封装,使API注册更容易
httpserver/errorresp
Package errorresp 封装了错误定义
Package errorresp 封装了错误定义
jsonstore/cacheetcd
LRU + Watch
LRU + Watch
jsonstore/etcd
Package etcd 是 jsonstore 使用 etcd 作为 backend 的实现
Package etcd 是 jsonstore 使用 etcd 作为 backend 的实现
jsonstore/memetcd
内存 + etcd, 内存中的数据自动与 etcd 中同步
内存 + etcd, 内存中的数据自动与 etcd 中同步
jsonstore/stm
Package stm impl jsonstore stm with etcd concurrency package
Package stm impl jsonstore stm with etcd concurrency package
jsonstore/storetypes
Package storetypes define jsonstore public types
Package storetypes define jsonstore public types
jsonstore/timeout
重复插入key相同的value, 不更新该key的deadline
重复插入key相同的value, 不更新该key的deadline
kms
kms/kmstypes
kms package 提供统一加密服务。
kms package 提供统一加密服务。
loop
Package loop 提供了一个循环执行某个方法的功能,可以自定义执行时间等。
Package loop 提供了一个循环执行某个方法的功能,可以自定义执行时间等。
monitor
使用方法: 从环境变量中根据规则解析出 logrus 日志前缀 与 eventbox dest 的映射关系。
使用方法: 从环境变量中根据规则解析出 logrus 日志前缀 与 eventbox dest 的映射关系。
parser/diceyml
该 visitor 处理 diceyml 中一些字段的默认值 原本的parser会把 global env 塞到各个 service 的 env 去 找出依赖却不存在的 service 找出没有被其他service依赖的后端service, 前端service不考虑(也就是有expose的service) 检查 service name 合法性
该 visitor 处理 diceyml 中一些字段的默认值 原本的parser会把 global env 塞到各个 service 的 env 去 找出依赖却不存在的 service 找出没有被其他service依赖的后端service, 前端service不考虑(也就是有expose的service) 检查 service name 合法性
parser/pipelineyml/pipelineymlv1
All struct fields are required, unless "Optional" explicitly declared.
All struct fields are required, unless "Optional" explicitly declared.
strutil
Package strutil 字符串工具包
Package strutil 字符串工具包
terminal/table
example: 1.
example: 1.
xmind
package xmind require python3
package xmind require python3
providers
some tools in this package
some tools in this package
cli

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL