erda

module
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Aug 15, 2024 License: Apache-2.0

README

Erda logo

An enterprise-grade Cloud-Native application platform

license Go Report Card release

Introduction | Quick Start | Installation | Documentation | CHANGELOG | Contributing

Demo

Screenshot

Introduction

Erda is an open-source platform created by Terminus to ensure 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:

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

Vision: Build any application, Deploy anywhere, Monitor anything

Architecture

The Erda project consists of multiple repsitories according to different functions. The key repositories are erda, erda-ui, erda-proto, erda-infra, erda-actions, erda-addons.

erda

It is the core repository that implements all the RESTful and gRPC interfaces of the backend services of Erda platform by multiple components in microservice architecture.

erda-ui

It is the graphical user portal of Erda platform built with React with the help of which users can work upon Erda platform very easily. It talks with erda backend services in RESTful APIs.

erda-proto

It defines a part of the communication protocols among erda backend services using Protocol Buffers. All the other protocols among erda backend services will be migrated here in the near future.

erda-infra

It is a lightweight microservices framework implements by golang. It provides many popular middleware providers such as Redis, KafKa, etcd, etc., so that developers can build a module-driven application quickly with help of it. It is also integrated into almost all the backend components in erda.

erda-actions

It holds the definition for the official Pipeline Actions of the Erda Action Marketplace as found at https://www.erda.cloud/market/action. A Pipeline Action plays as a mininal runnable unit in Erda Pipelines such as checking out source code in github, buiding a docker image, creating a deployment in a Kubernetes cluster etc.

erda-addons

It holds the definition for the official Addons of the Erda Addon Marketplace as found at https://www.erda.cloud/market/addon. An Addon holds the configration of a middleware like MySQL, Redis, etc. or a third-party service and it can be shared to different environments of applications, so that developers would not need to import the same configurations again and again in different environments.

There are some extra repositories that plays as customized third-partiy independent components and tools in Erda project such as

  • erda-proto-go generated code for Erda protobuf data modals and protocols.
  • erda-analyzer is the streaming aggregator for metrics and alert data.
  • erda-java-agent is the apm java agent in Erda platform.
  • telegraf is the plugin-driven server agent for collecting & reporting metrics.
  • kubeprober is a large-scale Kubernetes cluster diagnostic tool.
  • beats is the lightweight shippers for Elasticsearch & Logstash.
  • remotedialer is a reverse tunneling dialer.
  • erda-bot is the bot handing Github webhooks.

Quick Start

To get started, see Local installation.

Installation

Erda can be deployed in either a single node or multi-node setup. Please download binaries of Erda release and follow Installation & Configuration Guide to install Erda.

User Manual

To start using Erda, please refer to the following documentation.

Contributing

Contributions are always welcomed. Please refer to Contributing to Erda for details.

Contact Us

If you have any questions, please feel free to contact us.

License

Erda is under the Apache 2.0 license. See the LICENSE file for details.

Directories

Path Synopsis
Package apistructs api request/response结构体定义
Package apistructs api request/response结构体定义
Package bundle 定义了整个 dice 的 client 方法 用法: b := bundle.New() b.CallXXX()
Package bundle 定义了整个 dice 的 client 方法 用法: b := bundle.New() b.CallXXX()
cmd
kms
internal
apps/admin/dao
Package dbclient, Define the method of database operation, ORM, etc.
Package dbclient, Define the method of database operation, ORM, etc.
apps/cmp
Package cmp Core components of multi-cloud management platform
Package cmp Core components of multi-cloud management platform
apps/cmp/conf
Package conf Define the configuration
Package conf Define the configuration
apps/dop/dao
Package dbclient 定义数据库操作的方法, orm 等。
Package dbclient 定义数据库操作的方法, orm 等。
apps/dop/dbclient
Package dbclient defines operations about database
Package dbclient defines operations about database
apps/dop/dicehub
Package dicehub Dicehub module
Package dicehub Dicehub module
apps/dop/dicehub/conf
Package conf Dicehub 环境配置
Package conf Dicehub 环境配置
apps/dop/dicehub/dbclient
Package dbclient 数据库相关操作
Package dbclient 数据库相关操作
apps/dop/dicehub/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
apps/dop/dicehub/errcode
Package errcode Dicehub错误码
Package errcode Dicehub错误码
apps/dop/dicehub/release
Package recycle Release GC
Package recycle Release GC
apps/dop/dicehub/response
Package response release api 响应格式
Package response release api 响应格式
apps/dop/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
apps/dop/event
Package event 事件信息
Package event 事件信息
apps/dop/providers/issue/dao
Package dbclient 定义数据库操作的方法, orm 等。
Package dbclient 定义数据库操作的方法, orm 等。
apps/dop/services/apierrors
Package apierrors 定义了错误列表
Package apierrors 定义了错误列表
apps/dop/services/appcertificate
Package appcertificate 封装AppCertificate资源相关操作
Package appcertificate 封装AppCertificate资源相关操作
apps/dop/services/assetsvc
Package asset API 资产
Package asset API 资产
apps/dop/services/cdp
Package cdp pipeline相关的结构信息
Package cdp pipeline相关的结构信息
apps/dop/services/certificate
Package certificate 封装Certificate资源相关操作
Package certificate 封装Certificate资源相关操作
apps/dop/services/issue
Package issue 封装 事件 相关操作
Package issue 封装 事件 相关操作
apps/dop/services/iteration
Package iteration 封装 迭代 相关操作
Package iteration 封装 迭代 相关操作
apps/dop/services/pipeline
Package pipeline pipeline相关的结构信息
Package pipeline pipeline相关的结构信息
apps/dop/services/publisher
Package publisher 封装Publisher资源相关操作
Package publisher 封装Publisher资源相关操作
apps/dop/services/ticket
Package ticket 封装工单相关操作
Package ticket 封装工单相关操作
apps/msp/apm/exception/query
Package query is a generated GoMock package.
Package query is a generated GoMock package.
apps/msp/apm/trace/query
Package query is a generated GoMock package.
Package query is a generated GoMock package.
core/legacy
Package core_services
Package core_services
core/legacy/conf
Package conf 定义配置选项
Package conf 定义配置选项
core/legacy/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
core/legacy/services/application
Package application 应用逻辑封装
Package application 应用逻辑封装
core/legacy/services/approve
Package approve 封装Approve资源相关操作
Package approve 封装Approve资源相关操作
core/legacy/services/member
Package member 成员操作封装
Package member 成员操作封装
core/legacy/services/project
Package project 封装项目资源相关操作
Package project 封装项目资源相关操作
core/openapi/legacy/monitor
Package monitor collect and export openapi metrics
Package monitor collect and export openapi metrics
core/user/impl/uc/uc-adaptor/conf
Package conf 配置文件信息
Package conf 配置文件信息
core/user/impl/uc/uc-adaptor/dao
Package dbclient 定义数据库操作的方法, orm 等。
Package dbclient 定义数据库操作的方法, orm 等。
core/user/impl/uc/uc-adaptor/endpoints
Package endpoints API相关的数据信息
Package endpoints API相关的数据信息
pkg/innerdomain
Package innerdomain , interconversion between k8s & marathon internal domain
Package innerdomain , interconversion between k8s & marathon internal domain
pkg/user
Package user 定义通用的 user 逻辑.
Package user 定义通用的 user 逻辑.
tools/kms
Package kms provides unified Key Management Service.
Package kms provides unified Key Management Service.
tools/kms/conf
Package conf defines config options.
Package conf defines config options.
tools/kms/endpoints
Package endpoints defines all route handlers.
Package endpoints defines all route handlers.
tools/kms/endpoints/apierrors
Package apierrors defines all service errors.
Package apierrors defines all service errors.
tools/monitor/core/event/query
Package query is a generated GoMock package.
Package query is a generated GoMock package.
tools/orchestrator
Package orchestrator 编排器
Package orchestrator 编排器
tools/orchestrator/components/runtime/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
tools/orchestrator/conf
Package conf 定义了 orchestrator 所需要的配置选项,这些配置选项都是通过环境变量加载.
Package conf 定义了 orchestrator 所需要的配置选项,这些配置选项都是通过环境变量加载.
tools/orchestrator/dbclient
Package dbclient 定义数据库操作的方法, orm 等。
Package dbclient 定义数据库操作的方法, orm 等。
tools/orchestrator/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
tools/orchestrator/scheduler
TODO: refactor me, 把这个文件中的所有逻辑都去掉,只有 http 处理和 检查 参数合法性
TODO: refactor me, 把这个文件中的所有逻辑都去掉,只有 http 处理和 检查 参数合法性
tools/orchestrator/scheduler/executor/plugins/k8s
Package k8s implements managing the servicegroup by k8s cluster
Package k8s implements managing the servicegroup by k8s cluster
tools/orchestrator/scheduler/executor/plugins/k8s/addon/canal/v1
Package v1 contains API Schema definitions for the database v1 API group +kubebuilder:object:generate=true +groupName=database.erda.cloud
Package v1 contains API Schema definitions for the database v1 API group +kubebuilder:object:generate=true +groupName=database.erda.cloud
tools/orchestrator/scheduler/executor/plugins/k8s/addon/mysql/v1
Package v1 contains API Schema definitions for the database v1 API group +kubebuilder:object:generate=true +groupName=database.erda.cloud
Package v1 contains API Schema definitions for the database v1 API group +kubebuilder:object:generate=true +groupName=database.erda.cloud
Package mock is a generated GoMock package.
tools/orchestrator/scheduler/executor/plugins/k8s/configmap
Package configmap manipulates the k8s api of configmap object
Package configmap manipulates the k8s api of configmap object
tools/orchestrator/scheduler/executor/plugins/k8s/deployment
Package deployment manipulates the k8s api of deployment object
Package deployment manipulates the k8s api of deployment object
tools/orchestrator/scheduler/executor/plugins/k8s/event
Package event manipulates the k8s api of event object
Package event manipulates the k8s api of event object
tools/orchestrator/scheduler/executor/plugins/k8s/job
Package deployment manipulates the k8s api of deployment object
Package deployment manipulates the k8s api of deployment object
tools/orchestrator/scheduler/executor/plugins/k8s/k8sapi
Package k8sapi contains necessary k8s types and objects
Package k8sapi contains necessary k8s types and objects
tools/orchestrator/scheduler/executor/plugins/k8s/k8serror
Package k8serror encapsulates error of k8s object
Package k8serror encapsulates error of k8s object
tools/orchestrator/scheduler/executor/plugins/k8s/k8sservice
Package k8sservice manipulates the k8s api of service object
Package k8sservice manipulates the k8s api of service object
tools/orchestrator/scheduler/executor/plugins/k8s/namespace
Package namespace manipulates the k8s api of namespace object
Package namespace manipulates the k8s api of namespace object
tools/orchestrator/scheduler/executor/plugins/k8s/persistentvolume
Package persistentvolume manipulates the k8s api of persistentvolume object
Package persistentvolume manipulates the k8s api of persistentvolume object
tools/orchestrator/scheduler/executor/plugins/k8s/persistentvolumeclaim
Package persistentvolumeclaim manipulates the k8s api of persistentvolumeclaim object
Package persistentvolumeclaim manipulates the k8s api of persistentvolumeclaim object
tools/orchestrator/scheduler/executor/plugins/k8s/pod
Package pod manipulates the k8s api of pod object
Package pod manipulates the k8s api of pod object
tools/orchestrator/scheduler/executor/plugins/k8s/secret
Package secret manipulates the k8s api of secret object
Package secret manipulates the k8s api of secret object
tools/orchestrator/scheduler/executor/plugins/k8s/serviceaccount
Package serviceaccount manipulates the k8s api of serviceaccount object
Package serviceaccount manipulates the k8s api of serviceaccount object
tools/orchestrator/scheduler/executor/plugins/k8s/statefulset
Package statefulset manipulates the k8s api of statefulset object
Package statefulset manipulates the k8s api of statefulset object
tools/orchestrator/scheduler/impl/cluster
Package cluster impl cluster API
Package cluster impl cluster API
tools/orchestrator/scheduler/impl/cluster/clusterutil
Package clusterutil cluster utils
Package clusterutil cluster utils
tools/orchestrator/services/addon/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
tools/orchestrator/services/apierrors
Package apierrors 定义了错误列表
Package apierrors 定义了错误列表
tools/orchestrator/services/deployment
Package deployment 部署相关操作
Package deployment 部署相关操作
tools/orchestrator/services/runtime
Package runtime 应用实例相关操作
Package runtime 应用实例相关操作
tools/pipeline
Package pipeline 流水线
Package pipeline 流水线
tools/pipeline/conf
Package conf 定义了 pipeline 所需要的配置选项,这些配置选项都是通过环境变量加载.
Package conf 定义了 pipeline 所需要的配置选项,这些配置选项都是通过环境变量加载.
tools/pipeline/endpoints
Package endpoints 定义所有的 route handle.
Package endpoints 定义所有的 route handle.
tools/pipeline/metrics
Package metrics work with monitor metrics.
Package metrics work with monitor metrics.
tools/pipeline/pkg/action_info
@Title this file is used to query the action definition @Description query action definition and spec
@Title this file is used to query the action definition @Description query action definition and spec
tools/pipeline/providers/cache
@Title This file is used to cache the objects that need to be reused in the reconciler @Description The cached data is placed in the global sync.Map, you need to call clearPipelineContextCaches to clean up the corresponding data after you use it at will
@Title This file is used to cache the objects that need to be reused in the reconciler @Description The cached data is placed in the global sync.Map, you need to call clearPipelineContextCaches to clean up the corresponding data after you use it at will
tools/pipeline/services/apierrors
Package apierrors 定义了错误列表
Package apierrors 定义了错误列表
tools/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 这种 - 匹配之后,替换时根据配置的具体类型进行渲染
* v1_jsonbody 兼容 apitestsv1 里的 json body 渲染逻辑: - 反序列化,当类型是 map 或 slice 时进行处理 - value(map 的 value、slice 的 value) 必须**全量匹配** {{.+}},不支持 {{.+}}xxx 这种 - 匹配之后,替换时根据配置的具体类型进行渲染
apitestsv2/cookiejar
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
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
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
http/httpclient
Package httpclient impl http client
Package httpclient impl http client
http/httpserver
Package httpserver httpserver统一封装,使API注册更容易
Package httpserver httpserver统一封装,使API注册更容易
http/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
k8sclient/apis/keda/v1alpha1
Package v1alpha1 contains API Schema definitions for the keda v1alpha1 API group +kubebuilder:object:generate=true +groupName=keda.sh
Package v1alpha1 contains API Schema definitions for the keda v1alpha1 API group +kubebuilder:object:generate=true +groupName=keda.sh
k8sclient/apis/openyurt/v1alpha1
+groupName=apps.openyurt.io
+groupName=apps.openyurt.io
kms
kms/kmstypes
kms package 提供统一加密服务。
kms package 提供统一加密服务。
loop
Package loop 提供了一个循环执行某个方法的功能,可以自定义执行时间等。
Package loop 提供了一个循环执行某个方法的功能,可以自定义执行时间等。
mock
Package exporter is a generated GoMock package.
Package exporter is a generated GoMock package.
monitor
使用方法:
使用方法:
parser/diceyml
该 visitor 处理 diceyml 中一些字段的默认值
该 visitor 处理 diceyml 中一些字段的默认值
parser/pipelineyml/pipelineymlv1
All struct fields are required, unless "Optional" explicitly declared.
All struct fields are required, unless "Optional" explicitly declared.
schedule/schedulepolicy/constraintbuilders
Package constraintbuilders Generate various executor specific constraints (constraints) according to scheduleInfo
Package constraintbuilders Generate various executor specific constraints (constraints) according to scheduleInfo
schedule/schedulepolicy/labelconfig
Package labelconfig label 调度相关 key 名, 以及中间结构定义
Package labelconfig label 调度相关 key 名, 以及中间结构定义
secret/hmac
HMAC Algorithm
HMAC Algorithm
xmind
package xmind require python3
package xmind require python3
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