Layotto is an application runtime developed using Golang, which provides various distributed capabilities for applications

Related tags

DevOps Tools layotto
Overview

Layotto (L8):To be the next layer of OSI layer 7

查看中文版本

Layotto is an application runtime developed using Golang, which provides various distributed capabilities for applications, such as state management, configuration management, and event pub/sub capabilities to simplify application development.

Layotto uses the open source MOSN as the base, in addition to providing distributed capabilities, it also provides Service Mesh's ability to control traffic.

Features

  • Service Communication
  • Service Governance.Such as traffic hijacking and observation, service rate limiting, etc
  • Configuration management
  • State management
  • Event publish and subscribe
  • Health check, query runtime metadata
  • Multilingual programming based on WASM

Project Architecture

As shown in the architecture diagram below, Layotto uses the open source MOSN as the base to provide network layer management capabilities while providing distributed capabilities. The business logic can directly interact with Layotto through a lightweight SDK without paying attention to the specific back-end infrastructure.

Layotto provides sdk in various languages. The sdk interacts with Layotto through grpc. Application developers only need to specify their own infrastructure type through the configuration file configure file provided by Layotto. No coding changes are required, which greatly improves the portability of the program.

Architecture

Quickstarts and Samples

Get started with Layotto

See the quick start guide configuration demo with apollo that can help you get started with Layotto.

Use Pub/Sub API

Implementing Pub/Sub Pattern using Layotto and Redis

Use State API to manage state

State management demo with redis

Traffic intervention on the 4th layer network

Dump TCP Traffic

Flow Control on the 7th layer network

Method Level Flow Control

Health check and metadata query

Use Layotto Actuator for health check and metadata query

Service Invocation

Hello World

Dubbo JSON RPC

Multilingual programming based on WASM

WASM on Layotto

Community

Contact Us

Platform Link
💬 DingTalk (preferred) Search the group number: 31912621 or scan the QR code below

Contributing to Layotto

See the Development Guide contributing to get started with building and developing.

Comments
  • 配置下发通道与配置热加载

    配置下发通道与配置热加载

    希望提供一个通用的配置下发的grpc协议通道,用于layotto与控制面的交互(可以参考go-control-plane), 可以随意定义用户可以,随意的定义下发配置的策略内容

    用途: 1.redis、kafka客户端流量管理控制,可能需要容灾切换、灰度发布策略切换 2.redis连接参数调整、安全弱密码自动切换

    enhancement community meeting topic wip 
    opened by unionhu 60
  • [Proposal] OSS api design

    [Proposal] OSS api design

    Dapr现状

    dapr现在在bindings里面支持了aliyun OSS的实现,具体实现可以参照oss。 ​

    dapr的Binding的分为Input和Out前者就是个类似于sub的能力,收到事件,调用回调函数。后者就是对后端的组件进行一些CRUD操作,如下: ​

    const (
    	GetOperation    OperationKind = "get"
    	CreateOperation OperationKind = "create"
    	DeleteOperation OperationKind = "delete"
    	ListOperation   OperationKind = "list"
    )
    

      // Invokes binding data to specific output bindings
      rpc InvokeBinding(InvokeBindingRequest) returns (InvokeBindingResponse) {}
    
    
    // InvokeBindingRequest is the message to send data to output bindings
    message InvokeBindingRequest {
      // The name of the output binding to invoke.
      string name = 1;
    
      // The data which will be sent to output binding.
      bytes data = 2;  //对象数据
    
      // The metadata passing to output binding components
      // 
      // Common metadata property:
      // - ttlInSeconds : the time to live in seconds for the message. 
      // If set in the binding definition will cause all messages to 
      // have a default time to live. The message ttl overrides any value
      // in the binding definition.
      map<string,string> metadata = 3;  //OSS的key存在这里面
    
      // The name of the operation type for the binding to invoke
      string operation = 4;  //增删改查
    }
    
    // InvokeBindingResponse is the message returned from an output binding invocation
    message InvokeBindingResponse {
      // The data which will be sent to output binding.
      bytes data = 1;
    
      // The metadata returned from an external system
      map<string,string> metadata = 2;
    }
    

    InvokeBinding是一个Unary的rpc调用,这对于OSS这种支持大文件需要流式传输的功能肯定是没法支持的。 ​

    方案

    方案一:

    增加InvokeService为stream的rpc调用: ​

      // InvokeService do rpc calls
      rpc InvokeService(InvokeServiceRequest) returns (InvokeResponse) {}
    
    	改为:
    
    	// InvokeService do rpc calls
      rpc InvokeService(stream InvokeServiceRequest) returns (stream InvokeResponse) {}
    

    先给Dapr提了个Issue来跟踪: https://github.com/dapr/dapr/issues/3338

    方案二:

    本身dapr的binding的概念就不是一个很好的抽象,感觉就是什么都可以做。但又不知道应该用来做哪些东西。对于OSS这种流式传输的,我们也可以在pb中单独抽象出一类接口:

      // Get file with stream.
      rpc GetFile(GetFileRequest) returns (stream GetFileResponse) {}
    
      // Put file with stream.
      rpc PutFile(stream PutFileRequest) returns (google.protobuf.Empty) {}
    
    message GetFileRequest {
      //
      string store_name = 1;
      // The name of the file or object want to get.
      string name = 2;
      // The metadata for user set.
      map<string,string> metadata = 3;
    }
    
    message GetFileResp {
      bytes data = 1;
    }
    
    message PutFileRequest {
      string store_name = 1;
      // The name of the file or object want to put.
      string name = 2;
      // The data which will be store.
      bytes data = 3;
      // The metadata for user set.
      map<string,string> metadata = 4;
    }
    
    

    enhancement stale 
    opened by wenxuwan 36
  • Deploy layotto on AWS and Alibaba Cloud, together with native sidecar

    Deploy layotto on AWS and Alibaba Cloud, together with native sidecar

    @kevinten10 目前遇到了多语言维护成本高的痛点,在调研 sidecar 模式

    但是遇到了问题:

    1. 已经在 AWS 和 阿里云上用了原生 sidecar (AWS app mesh 和 阿里云 ASM,其实都是 envoy),在开启了透明流量劫持的情况下, 再部署个 layotto sidecar 会不会冲突?
    2. 已经有了原生 sidecar (envoy), 再部个 mosn 比较冗余。能否部署一个 layotto 独立sidecar,但是里面不带mosn?

    需求细节:

    • rpc 需要走 layotto sidecar,因为有一些 tracing、可观测性相关逻辑要自己写;
    • 云上的 mesh 不好做扩展、不考虑把扩展逻辑做在 envoy 里(AWS envoy 想扩展得自己打镜像、再交给 AWS 托管,有额外的运维成本,不想这么做)
    • 考虑私有云采用 sdk(因为要复用已有中间件,不可能换个语言重写一遍)云上用 sidecar 模式。值得学习

    action:

    • [ ] 把 layotto 拆个独立包,以不带 mosn 的方式启动 @seeflood
    • [ ] 找个 AWS 环境,二进制运行,看看流量冲突问题 @kevinten10
    stale 
    opened by seeflood 33
  • feature: Decoupled type

    feature: Decoupled type

    What this PR does:

    Which issue(s) this PR fixes:

    Fixes #513

    Special notes for your reviewer:

    Does this PR introduce a user-facing change?:

    将COMPONENT NAME与具体的中间件类型解藕,在COMPONENT NAME块中KEY:VAKLUE对新增type:name (name为中间件类型)
    
    image cla:yes size/XXL incompatible community meeting topic 
    opened by akkw 27
  • Double buffer for sequencer catch

    Double buffer for sequencer catch

    What this PR does:

    Using double buffer to solve the problem of sequencer local cache.

    Which issue(s) this PR fixes:

    Fixes #158

    Special notes for your reviewer:

    Does this PR introduce a user-facing change?:

    
    
    cla:yes size/XL 
    opened by ZLBer 24
  • Zookeeper lock

    Zookeeper lock

    What this PR does:

    add zookeeper lock

    Which issue(s) this PR fixes:

    Fixes #104

    Special notes for your reviewer:

    @seeflood

    Does this PR introduce a user-facing change?:

    
    
    cla:yes size/XL First-time contributor 
    opened by ZLBer 24
  • implement distributied lock with redis cluster

    implement distributied lock with redis cluster

    What this PR does:

    add redis cluster lock(red lock implement)

    Which issue(s) this PR fixes:

    Fixes #249

    cla:yes size/XXL First-time contributor 
    opened by whalesongAndLittleFish 22
  • bookinfo部署问题

    bookinfo部署问题

    环境

    preview server k8s yaml: https://github.com/LXPWing/preview-server-k8s-yml

    线上实验室配置文件: https://github.com/LXPWing/mosn-tutorial/tree/master/layotto/layotto-with-bookinfo

    bookinfo k8s yaml: https://github.com/LXPWing/layotto/tree/main/deploy/k8s/bookinfo

    线上实验室演示:https://killercoda.com/lixingpeng/course/layotto/layotto-with-bookinfo

    问题

    preview server与bookinfo都部署在default namespace下, preview server yml中设置replicas: 1但实际部署中会超出1个pod且报错,同时preview server pod中的镜像数量会比yml中设置的多1个。bookinfo 的一些pod也会出现超出设置数量且报错。

    image

    尝试解决

    preview server和bookinfo的namespace分离,但是preview serve一直处于ContainerCreating

    image

    stale 
    opened by LXPWing 18
  • proposal: IM notify API [SaaS API]

    proposal: IM notify API [SaaS API]

    Hi, This is IM notify API proposal.

    What would you like to be added:

    saas api: IM notify api

    Why is this needed:

    https://github.com/mosn/layotto/issues/712

    Support situation:

    |IM|Docs| |---|---| |Dingtalk| https://open.dingtalk.com/document/group/send-a-dingtalk-robot-message | |Dingtalk dapr| https://docs.dapr.io/zh-hans/reference/components-reference/supported-bindings/alicloud-dingtalk/ |

    API spec:

    // Saas API
    // Send the message to IM.
    rpc SendIM(SendIMRequest) returns (SendIMResponse) {}
    
    ------
    
    // SendIMRequest is the message send to im.
    message SendIMRequest {
    
      // The invoke Id.
      string id = 1;
    
      // The saas service name, like 'dingtalk'/'wechat'/'...'
      string saas_name = 2;
    
      // The api access token.
      string secret = 3;
    
      // The IM sender tag.
      string sender_id = 4;
    
      // The IM receivers tag.
      repeated string receivers = 5;
    
      // The IM message type, like 'text'/'table'/'...'
      string message_type = 6;
    
      // The IM message data.
      bytes message_data = 7;
    
      // The metadata which will be sent to IM components.
      map<string, string> metadata = 8;
    }
    
    message SendIMResponse {
      // The saas requestId.
      string request_id = 1;
    
      // The data response from IM service.
      bytes data = 2;
    
      // The metadata returned from IM service.
      map<string, string> metadata = 3;
    }
    

    字段设计考虑:

    1. IM原生API非常复杂,难取交集

    无论是dingtalk,还是wechat等IM工具。在原生API设计上都有很多自己独特的请求参数,这取决于IM自身的一些设计。

    例如:

    • 消息模板ID:有的IM具有模板,有的IM不需要模板即可发送。
    • 收件人格式:有的IM发送给自生成的ID,有的则使用 用户名/手机号 等进行发送。

    2. IM具有绑定性,弱移植性

    一个公司,哪怕部署到混合云,大概率也只会使用一种IM工具,很少听说不同云的消息要发送给不同IM。

    所以本身IM代码就不需要很强的可移植性,那么对于一些特有的字段,可以接受放在metadata中。

    3. Runtime API取核心字段,其他字段放metadata

    尽可能取多种IM都有的一些概念,将这些字段放在API中,其他字段放metadata。

    对于一次IM发送,有几个字段是必需的:

    1. sender_id:发送账号的id/tag
    2. receivers:接收账号的id/tag
    3. message_type:如今的IM都支持多媒体,所以使用该字段标识消息类型
    4. message_data:对应message_type的消息体

    以及,设计两个基础字段:

    1. id:用于进行一定的标识,从而可以实现基于id获取配置的功能。往往IM的配置相对静态,可以通过id获取IM的相关配置,减少在metadata中的字段
    2. saas_name:多IM场景时使用,保留这样的可拓展性,但一般用不到该场景。当用到该场景时,由于不同IM的发送参数有巨大差异,如果在代码中传递metadata等字段,则可能无法移植,这时候就需要上述的 id 功能。

    一个密钥字段:

    1. secret:往往是accessToken,但也可通过上述 id 功能,由id获取对应的配置,在配置中获取accessToken。所以该字段往往不需要显式传入,但仍然在API中进行保留,以便于直接调用。

    stale 
    opened by kevinten10 18
  • feat:add hdfs support

    feat:add hdfs support

    Signed-off-by: bokket [email protected]

    What this PR does: add Hdfs oss support for Layotto file system interface.

    Which issue(s) this PR fixes:

    Fixes #236

    Special notes for your reviewer:

    Does this PR introduce a user-facing change?:

    
    
    cla:yes size/XL First-time contributor 
    opened by bokket 18
  • [Proposal]Secret API design

    [Proposal]Secret API design

    Add Layotto secret API. To generate key dependent interface definitions, similar to dapr

    English explanation will be added later

    Secret API设计文档

    本文档讨论"密钥相关"的API

    1. 需求

    1.1. 密钥管理

    Q: 为何需要密钥管理?

    A: 应用程序在执行过程中大多数会使用专门的密钥去访问外部服务,通常需要建议一个对应的密钥存储来管理。

    Q: Layotto Secret API充当的角色?

    A: 提供管理密钥以及允许开发人员通过API获得密钥的功能,充当密钥管理者角色。

    2. 产品调研

    | 平台方 | 提供功能 | |--|--| |dapr|访问权限(可依赖各自云产品支持),密钥管理,检索密钥| |云密钥产品相关|访问权限,密钥管理,检索密钥|

    3. grpc API设计

    在制定对应API时,需要考虑每个密钥的唯一资源定位因素有哪些?

    • 存放空间地址
    • 密钥对应名称
    • 密钥对应版本
    • 密钥对应状态

      其中最为主要的则是前两个。版本默认latest,而状态则默认取生效,如没有生效的密钥,则需要业务去判断下一步操作。

    3.1. proto定义

      // Gets secrets from secret stores.
      rpc GetSecret(GetSecretRequest) returns (GetSecretResponse) {}
    
      // Gets a bulk of secrets
      rpc GetBulkSecret(GetBulkSecretRequest) returns (GetBulkSecretResponse) {}
      
      // GetSecretRequest is the message to get secret from secret store.   
    message GetSecretRequest {
      // The name of secret store.
      string store_name = 1;
    
      // The name of secret key.
      string key = 2;
    
      // The metadata which will be sent to secret store components.
      // Contains version, status, and so on...
      map<string,string> metadata = 3;
    }
    
    // GetSecretResponse is the response message to convey the requested secret.
    message GetSecretResponse {
      // data is the secret value. Some secret store, such as kubernetes secret
      // store, can save multiple secrets for single secret key.
      map<string, string> data = 1;
    }
    
    
    // GetBulkSecretRequest is the message to get the secrets from secret store.
    message GetBulkSecretRequest {
      // The name of secret store.
      string store_name = 1;
    
      // The metadata which will be sent to secret store components.
      map<string,string> metadata = 2;
    }
    
    
    // GetBulkSecretResponse is the response message to convey the requested secrets.
    message GetBulkSecretResponse {
      // data hold the secret values. Some secret store, such as kubernetes secret
      // store, can save multiple secrets for single secret key.
      map<string, SecretResponse> data = 1;
    }
    
    
    // SecretResponse is a map of decrypted string/string values
    message SecretResponse {
      map<string, string> secrets = 1;
    }
    

    Q: 是否由Layotto帮用户实现对应密钥获取实现?

    A: API和Layotto运行时不管这事,由sdk或者用户自己处理,或者某个特殊组件想实现这个feature也可以。

    4. 组件API

    package secretstores
    
    type SecretStore interface {
    		// Init authenticates with the actual secret store and performs other init operation
    	Init(metadata Metadata) error
    	// GetSecret retrieves a secret using a key and returns a map of decrypted string/string values
    	GetSecret(req GetSecretRequest) (GetSecretResponse, error)
    	// BulkGetSecrets retrieves all secrets in the store and returns a map of decrypted string/string values
    	BulkGetSecret(req BulkGetSecretRequest) (BulkGetSecretResponse, error)
    }
    
    // GetSecretRequest describes a get secret request from a secret store.
    type GetSecretRequest struct {
    	Name     string            `json:"name"`
    	Metadata map[string]string `json:"metadata"`
    }
    
    // BulkGetSecretRequest describes a bulk get secret request from a secret store.
    type BulkGetSecretRequest struct {
    	Metadata map[string]string `json:"metadata"`
    }
    
    // GetSecretResponse describes the response object for a secret returned from a secret store.
    type GetSecretResponse struct {
    	Data map[string]string `json:"data"`
    }
    
    // BulkGetSecretResponse describes the response object for all the secrets returned from a secret store.
    type BulkGetSecretResponse struct {
    	Data map[string]map[string]string `json:"data"`
    }
    
    // DefaultSecretRefKeyName is the default key if secretKeyRef.key is not given.
    const DefaultSecretRefKeyName = "_value"
    
    // Metadata contains a secretstore specific set of metadata properties.
    type Metadata struct {
    	Properties map[string]string `json:"properties,omitempty"`
    }
    

    参考资料

    dapr密钥管理概览

    AWS Secrets Manager

    Microsoft Key Vault

    Azure Key Vault

    阿里云密钥管理服务

    enhancement pinned 
    opened by MentosL 18
  • feat: add  LockKeepAlive function for renewal lease

    feat: add LockKeepAlive function for renewal lease

    What this PR does:

    add LockKeepAlive function for renewal lease

    Which issue(s) this PR fixes:

    Fixes #

    Special notes for your reviewer:

    Does this PR introduce a user-facing change?:

    
    
    cla:yes size/XXL 
    opened by wenxuwan 1
  • docs: component ref doc

    docs: component ref doc

    What this PR does: reopen for https://github.com/mosn/layotto/pull/820 Which issue(s) this PR fixes:

    Fixes #

    Special notes for your reviewer:

    Does this PR introduce a user-facing change?:

    
    
    cla:yes size/L 
    opened by ZLBer 0
  • Integrate with wit-bindgen; 集成wit-bindgen

    Integrate with wit-bindgen; 集成wit-bindgen

    1. Background

    The wit-bindgen project officially provided by WebAssembly can enable better interaction between the wasm module and the runtime, avoiding the development of various data conversion logics, and now Layotto integrates wasmtime, so we want to integrate wit-bindgen to improve the user's ability to develop wasm modules experience.

    2. What I have tried

    1. define a wit file:
    record person {
      name: string,
      age: u32,
    }
    
    test: func(who: person) -> string
    
    1. develop user module
    use hello::*;
    
    wit_bindgen_rust::import!("wit/hello.wit");
    
    fn main() {
        let p = Person{name:"gj", age: 18};
        let result = test(p);
        print!("result: {}", result);
    }
    
    1. add implementation in wasmtime
    use hello::*;
    
    wit_bindgen_rust::export!("/Users/gujin/workspace/rust/hello-wasmtime/wit/hello.wit");
    
    struct Hello {}
    
    impl hello::Hello for Hello {
        fn test(p: Person) -> String {
            return p.name;
        }
    }
    
    //register to wasmtime
    
    

    In this way, the test function can be implemented, but how to register this implementation with wasmtime and provide services to users has not yet been found.

    3. what need to do

    1. Learn how to integrate wit-bindgen with wasmtime
    2. Learn how to integrate wit-bindgen with wasmtime-go

    References:

    1. https://github.com/bytecodealliance/wit-bindgen
    2. https://github.com/fermyon/spin
    3. discussion:#611

    中文

    一、背景

    WebAssembly 官方提供的 wit-bindgen 项目可以让 wasm 模块跟运行时之间更好的交互,避免开发各种数据转换逻辑,现在Layotto集成了wasmtime,因此想要集成wit-bindgen来提高用户开发wasm模块的体验。

    二、做过的一些尝试

    1. 自定义一个wit文件:
    record person {
      name: string,
      age: u32,
    }
    
    test: func(who: person) -> string
    
    1. 用户开发时使用
    use hello::*;
    
    wit_bindgen_rust::import!("wit/hello.wit");
    
    fn main() {
        let p = Person{name:"gj", age: 18};
        let result = test(p);
        print!("result: {}", result);
    }
    
    1. 运行时提供具体实现
    use hello::*;
    
    wit_bindgen_rust::export!("/Users/gujin/workspace/rust/hello-wasmtime/wit/hello.wit");
    
    struct Hello {}
    
    impl hello::Hello for Hello {
        fn test(p: Person) -> String {
            return p.name;
        }
    }
    
    //把实现注册到wasmtime
    

    这样可以实现test接口,但是如何把该实现注册到wasmtime,对用户提供服务还没有找到办法。

    三、需要做什么

    1. 调研用wasmtime集成wit-bindgen的方法
    2. 调研用wasmtime-go集成wit-bindgen的方法

    参考资料:

    1. https://github.com/bytecodealliance/wit-bindgen
    2. https://github.com/fermyon/spin
    3. 之前的讨论:#611
    help wanted WebAssembly community meeting topic 
    opened by zhenjunMa 1
  • Develop a java demo for OSS API; 为 OSS API 开发一个 java demo

    Develop a java demo for OSS API; 为 OSS API 开发一个 java demo

    What would you like to be added:

    Develop a java demo for OSS API.

    Now we already have quickstart docs for this API, and we need a demo to show users how to invoke this API.

    You can take the lock api quickstart as an example:

    image

    The java demo of lock api is here.

    Reference:

    Here are some resources to help you work on this issue.

    Quickstart doc for this API: https://mosn.io/layotto/#/en/start/oss/start

    API definition (the .proto file): https://github.com/mosn/layotto/blob/main/spec/proto/extension/v1/s3/oss.proto

    java sdk: https://github.com/layotto/java-sdk

    API design doc/discussion: https://mosn.io/layotto/#/zh/design/oss/design

    Why is this needed:

    Java users need it.

    good first issue help wanted easy kind/demo 
    opened by seeflood 0
  • Develop a new component for delay queue API; 为

    Develop a new component for delay queue API; 为"延迟消息 API"开发新的组件

    What would you like to be added:

    Develop a new component for delay queue API.

    Choose an open source component or cloud service you like to implement this API.

    For example, you can choose any one in the list below:

    • [ ] RocketMQ
    • [ ] Active MQ
    • [ ] Rabbit MQ
    • [ ] QMQ
    • [ ] Cloud service provided by Alibaba cloud
    • [ ] Cloud service provided by AWS
    • [ ] Cloud service provided by Google cloud
    • [ ] Cloud service provided by tencent cloud
    • [ ] Cloud service provided by qiniu cloud
    • [ ] anything else

    What is this API used for?: DelayQueue is a special kind of message queue, which lets you postpone the delivery of new messages to consumers. For example, you can invoke this API and tell the message queue "please send this message to the consumers after 5 minutes".

    Reference:

    Here are some resources to help you work on this issue.

    API definition(the .proto file): https://github.com/mosn/layotto/blob/main/spec/proto/extension/v1/delay_queue/delay_queue.proto

    Component development guide: https://mosn.io/layotto/#/en/development/developing-component

    Component development guide(in chinese): https://mosn.io/layotto/#/zh/development/developing-component

    An example pull request to develop a new component: #807

    API design doc/discussion: https://github.com/mosn/layotto/issues/617

    chinese: 选择一个你喜欢的开源组件或云服务实现延迟消息 API, 参考资料见上。

    Why is this needed:

    We need more components to make this API useful

    good first issue help wanted medium kind/component 
    opened by seeflood 8
  • Develop a new component for email API; 为 email API 开发新的组件

    Develop a new component for email API; 为 email API 开发新的组件

    What would you like to be added:

    Develop a new component for email API.

    Choose an open source component or cloud service you like to implement this API.

    For example, you can choose any one in the list below:

    • [ ] Cloud service provided by Alibaba cloud
    • [ ] Cloud service provided by AWS
    • [ ] Cloud service provided by Azure
    • [ ] Cloud service provided by Google cloud
    • [ ] Cloud service provided by tencent cloud
    • [ ] Cloud service provided by qiniu cloud
    • [ ] anything else

    Reference:

    An example pull request :

    API quickstart doc:

    API reference: https://mosn.io/layotto/api/v1/email.html

    API design doc/discussion: https://github.com/mosn/layotto/issues/717

    chinese: 选择一个你喜欢的开源组件或云服务实现 email API 参考资料见上。

    Why is this needed:

    We need more components to make this API useful

    good first issue help wanted medium kind/component 
    opened by seeflood 0
Releases(v0.5.0-rc)
  • v0.5.0-rc(Oct 21, 2022)

    What's Changed

    Features

    • feat(api): add DelayQueue API by @seeflood in https://github.com/mosn/layotto/pull/786
    • feat(api): encrypt/decrypt api by @seeflood in https://github.com/mosn/layotto/pull/791
    • feat(api): sms api by @seeflood in https://github.com/mosn/layotto/pull/814
    • feat(api): support email api & phone call api by @seeflood in https://github.com/mosn/layotto/pull/780
    • feat(generator): generate new methods for existing APIs by @seeflood in https://github.com/mosn/layotto/pull/784
    • feat(oss api): support ceph oss by @wlwilliamx in https://github.com/mosn/layotto/pull/775
    • feat(sdk): OSS go sdk by @seeflood in https://github.com/mosn/layotto/pull/771
    • feat: Add support for Dapr pubsub API by @LXPWing in https://github.com/mosn/layotto/pull/465
    • feat: InvokeService support specific target address by @wenxuwan in https://github.com/mosn/layotto/pull/739
    • feat: add cmds to deploy layotto by @Xunzhuo in https://github.com/mosn/layotto/pull/731
    • feat: add jaeger by @LXPWing in https://github.com/mosn/layotto/pull/590
    • feat: add sequencer api component with snowflake algorithm by @OOOOlh in https://github.com/mosn/layotto/pull/767
    • feat: add zipkin by @LXPWing in https://github.com/mosn/layotto/pull/642
    • feat: azure-servicebus component for DelayQueue API by @seeflood in https://github.com/mosn/layotto/pull/807
    • feat: code generator by @seeflood in https://github.com/mosn/layotto/pull/779
    • feat: component ref by @ZLBer in https://github.com/mosn/layotto/pull/761
    • feat: deploy Layotto with istio 1.10 by @seeflood in https://github.com/mosn/layotto/pull/697
    • feat: doc generator by @seeflood in https://github.com/mosn/layotto/pull/769
    • feat: dynamic load wasm file(#191) by @nanjingboy in https://github.com/mosn/layotto/pull/577
    • feat: dynamic secret by @ZLBer in https://github.com/mosn/layotto/pull/574
    • feat: implement oss interface by @wenxuwan in https://github.com/mosn/layotto/pull/556
    • feat: implement sequencer api with mysql by @GimmeCyy in https://github.com/mosn/layotto/pull/605
    • feat: modify component configuration during runtime by @seeflood in https://github.com/mosn/layotto/pull/762
    • feat: modify istio version& add layotto_without_xds by @seeflood in https://github.com/mosn/layotto/pull/714
    • feat: move bookinfo yaml in layotto by @LXPWing in https://github.com/mosn/layotto/pull/760
    • feat: replace pr title validator by @Xunzhuo in https://github.com/mosn/layotto/pull/526
    • feat: return rpc detail error message by @wenxuwan in https://github.com/mosn/layotto/pull/811
    • feat: specify callback ip in config.json by @seeflood in https://github.com/mosn/layotto/pull/685
    • feat: translate test-quickstart by @LXPWing in https://github.com/mosn/layotto/pull/633
    • feat: use copier to convert structs by @seeflood in https://github.com/mosn/layotto/pull/803
    • feature: Add prometheus demo by @LXPWing in https://github.com/mosn/layotto/pull/480
    • feature: Decoupled type by @akkw in https://github.com/mosn/layotto/pull/549
    • feature: Optimized pubsub api demo by @X-10A in https://github.com/mosn/layotto/pull/594
    • feature: optimized sequencer api demo by @GimmeCyy in https://github.com/mosn/layotto/pull/600
    • feat: add sequencer api component with snowflake algorithm by @OOOOlh in https://github.com/mosn/layotto/pull/734
    • feat(api): add email.proto by @seeflood in https://github.com/mosn/layotto/pull/729
    • feat(api): add ivr.proto by @seeflood in https://github.com/mosn/layotto/pull/727

    Fix & Refactor & Test

    • fix(docs): deadlink in sidebar by @seeflood in https://github.com/mosn/layotto/pull/798
    • fix: GetNextId in ZK component throw zk: node does not exist by @bxiiiiii in https://github.com/mosn/layotto/pull/752
    • fix: Incorrect conversion between integer types by @Xunzhuo in https://github.com/mosn/layotto/pull/789
    • fix: Revert "feat: add js document" by @seeflood in https://github.com/mosn/layotto/pull/817
    • fix: Unit tests fail in component package by @leemos-xx in https://github.com/mosn/layotto/pull/658
    • fix: add secretstores.Metadata by @seeflood in https://github.com/mosn/layotto/pull/582
    • fix: add proto option by @zhenjunMa in https://github.com/mosn/layotto/pull/772
    • fix: add secret ref key by @ZLBer in https://github.com/mosn/layotto/pull/724
    • fix: check markdown grammar issues by @leemos-xx in https://github.com/mosn/layotto/pull/665
    • fix: configuration API returns wrong store_name by @MichaelDeSteven in https://github.com/mosn/layotto/pull/641
    • fix: configuration API returns wrong app_id by @MichaelDeSteven in https://github.com/mosn/layotto/pull/629
    • fix: dead-link-checker can't find out dead links (#596) by @xujiajiadexiaokeai in https://github.com/mosn/layotto/pull/609
    • fix: deadlinks cause ci failed by @Xunzhuo in https://github.com/mosn/layotto/pull/696
    • fix: delete layotto's dependency on go-sdk by @zhenjunMa in https://github.com/mosn/layotto/pull/461
    • fix: example errors & ci errors by @seeflood in https://github.com/mosn/layotto/pull/787
    • fix: fix legacy issues of #549 by @seeflood in https://github.com/mosn/layotto/pull/604
    • fix: goimports failed in make all by @rayowang in https://github.com/mosn/layotto/pull/583
    • fix: hello component by @MichaelDeSteven in https://github.com/mosn/layotto/pull/695
    • fix: jaeger code error by @LXPWing in https://github.com/mosn/layotto/pull/662
    • fix: jaeger tracer nil pointer by @seeflood in https://github.com/mosn/layotto/pull/644
    • fix: move s3 pb to specify directory by @wenxuwan in https://github.com/mosn/layotto/pull/758
    • fix: ut unstable of zk lock by @ZLBer in https://github.com/mosn/layotto/pull/701
    • refactor: infra and cmds by @Xunzhuo in https://github.com/mosn/layotto/pull/785
    • refactor: replace current apollo sdk with the official one by @MichaelDeSteven in https://github.com/mosn/layotto/pull/663
    • test: add integrate test by @bxiiiiii in https://github.com/mosn/layotto/pull/795

    CI

    • ci: add proto file comments linter by @MichaelDeSteven in https://github.com/mosn/layotto/pull/733
    • ci: automatically upload binary files when releasing new version by @SignorMercurio in https://github.com/mosn/layotto/pull/566
    • ci: build proxyv2 image and push it to dockerhub by @seeflood in https://github.com/mosn/layotto/pull/655
    • ci: check unused package in go.mod by @seeflood in https://github.com/mosn/layotto/pull/595
    • ci: compile proto files into code and doc by @seeflood in https://github.com/mosn/layotto/pull/637
    • ci: deadlink checker ignores https://docs.buf.build/ by @seeflood in https://github.com/mosn/layotto/pull/737
    • ci: fix CI issues and improve make script by @seeflood in https://github.com/mosn/layotto/pull/562
    • ci: fix license script by @seeflood in https://github.com/mosn/layotto/pull/602
    • ci: linter check submodules by @seeflood in https://github.com/mosn/layotto/pull/601
    • ci: make error message in "🌈 Go Style Check" more readable by @seeflood in https://github.com/mosn/layotto/pull/678
    • ci: rename CI jobs to keep naming style consistent by @seeflood in https://github.com/mosn/layotto/pull/735
    • ci: upgrade title checker by @seeflood in https://github.com/mosn/layotto/pull/638

    Chores

    • chore(make): make license to add licnese headers for all code files. by @seeflood in https://github.com/mosn/layotto/pull/572
    • chore: Use docker-compose to run quickstart by @seeflood in https://github.com/mosn/layotto/pull/632
    • chore: Use docker-compose to start minIO and layotto by @bxiiiiii in https://github.com/mosn/layotto/pull/648
    • chore: add a demo for deployment on k8s as a sidecar by @seeflood in https://github.com/mosn/layotto/pull/742
    • chore: auto-generate the pb code and api-reference docs based on the proto files by @seeflood in https://github.com/mosn/layotto/pull/764
    • chore: demo should panic when errors occur by @seeflood in https://github.com/mosn/layotto/pull/650
    • chore: fix the CI by @seeflood in https://github.com/mosn/layotto/pull/639
    • chore: fix the format issue by @helbing in https://github.com/mosn/layotto/pull/793
    • chore: improve dapr pubsub api by @seeflood in https://github.com/mosn/layotto/pull/725
    • chore: modify code structure to make it easier to generate code. by @seeflood in https://github.com/mosn/layotto/pull/774
    • chore: remove linters which is deprecated by @helbing in https://github.com/mosn/layotto/pull/805
    • chore: remove redundent json files by @seeflood in https://github.com/mosn/layotto/pull/606
    • chore: rename seeflood/protoc-gen-p6 to layotto/protoc-gen-p6 by @seeflood in https://github.com/mosn/layotto/pull/815
    • chore: set deadlink validation to schedule, move out of PRs by @Xunzhuo in https://github.com/mosn/layotto/pull/788
    • chore: some cleanup work for oss api by @seeflood in https://github.com/mosn/layotto/pull/746
    • chore: upgrade components-contrib by @seeflood in https://github.com/mosn/layotto/pull/802
    • chore: upgrade dependency mosn to v1.1.0 by @dzdx in https://github.com/mosn/layotto/pull/770
    • chore: upgrade mosn dependency by @dzdx in https://github.com/mosn/layotto/pull/673
    • chore: use start --config parameters in some demos by @seeflood in https://github.com/mosn/layotto/pull/698
    • chore: use docker-compose to start etcd and layotto #635 by @YoungMa962 in https://github.com/mosn/layotto/pull/657

    Docs

    • docs :translate the zh to en by @NTH19 in https://github.com/mosn/layotto/pull/581
    • docs(en): add en operation doc by @palering in https://github.com/mosn/layotto/pull/656
    • docs(secret): secretStores -> secret_store by @seeflood in https://github.com/mosn/layotto/pull/578
    • docs: Translate the api-plugin quickstart into Chinese by @IRONICBo in https://github.com/mosn/layotto/pull/681
    • docs: add secret_ref.md into sidebar by @seeflood in https://github.com/mosn/layotto/pull/711
    • docs: add contributors graph by @Xunzhuo in https://github.com/mosn/layotto/pull/570
    • docs: add demo deploy k8s standalone yaml. by @kevinten10 in https://github.com/mosn/layotto/pull/728
    • docs: add docs for istio integration by @seeflood in https://github.com/mosn/layotto/pull/720
    • docs: add guide for local development & add label spec by @seeflood in https://github.com/mosn/layotto/pull/719
    • docs: add js document by @LZHK1ng in https://github.com/mosn/layotto/pull/813
    • docs: add local connect to remote layotto sidecar guide by @kevinten10 in https://github.com/mosn/layotto/pull/721
    • docs: add oss quickstart into the sidebar by @seeflood in https://github.com/mosn/layotto/pull/749
    • docs: add secret demo and doc by @ZLBer in https://github.com/mosn/layotto/pull/525
    • docs: automatically add space between chinese and english by @seeflood in https://github.com/mosn/layotto/pull/667
    • docs: fix expired QR code by @seeflood in https://github.com/mosn/layotto/pull/740
    • docs: fix stale contributor guide by @seeflood in https://github.com/mosn/layotto/pull/718
    • docs: fix stale description for community roles by @seeflood in https://github.com/mosn/layotto/pull/703
    • docs: improve contribution guide by @seeflood in https://github.com/mosn/layotto/pull/568
    • docs: improve dev guide by @seeflood in https://github.com/mosn/layotto/pull/743
    • docs: improve quickstart contribution guide by @seeflood in https://github.com/mosn/layotto/pull/555
    • docs: lock demo by @akkw in https://github.com/mosn/layotto/pull/783
    • docs: remove “last update time of this doc” by @seeflood in https://github.com/mosn/layotto/pull/616
    • docs: run skywalking demo with docker by @seeflood in https://github.com/mosn/layotto/pull/660
    • docs: run state and sequencer quickstart with java sdk by @seeflood in https://github.com/mosn/layotto/pull/683
    • docs: secret demo by @fft0518 in https://github.com/mosn/layotto/pull/804
    • docs: translate and update configuration-api-with-apollo by @MichaelDeSteven in https://github.com/mosn/layotto/pull/668
    • docs: translate hot_to_generate_api_doc by @pmupkin in https://github.com/mosn/layotto/pull/806
    • docs: update community doc by @seeflood in https://github.com/mosn/layotto/pull/677
    • docs: update image url to fix the inaccessibility by @seeflood in https://github.com/mosn/layotto/pull/621
    • docs: update proto file docs by @MichaelDeSteven in https://github.com/mosn/layotto/pull/736
    • docs: webassembly code analysis by @rayowang in https://github.com/mosn/layotto/pull/575
    • docs:solve the problem of URL inaccessibility by @azhsmesos in https://github.com/mosn/layotto/pull/619

    New Contributors

    • @SignorMercurio made their first contribution in https://github.com/mosn/layotto/pull/566
    • @NTH19 made their first contribution in https://github.com/mosn/layotto/pull/581
    • @X-10A made their first contribution in https://github.com/mosn/layotto/pull/594
    • @xujiajiadexiaokeai made their first contribution in https://github.com/mosn/layotto/pull/609
    • @azhsmesos made their first contribution in https://github.com/mosn/layotto/pull/619
    • @MichaelDeSteven made their first contribution in https://github.com/mosn/layotto/pull/629
    • @bxiiiiii made their first contribution in https://github.com/mosn/layotto/pull/648
    • @palering made their first contribution in https://github.com/mosn/layotto/pull/656
    • @YoungMa962 made their first contribution in https://github.com/mosn/layotto/pull/657
    • @leemos-xx made their first contribution in https://github.com/mosn/layotto/pull/658
    • @IRONICBo made their first contribution in https://github.com/mosn/layotto/pull/681
    • @OOOOlh made their first contribution in https://github.com/mosn/layotto/pull/734
    • @helbing made their first contribution in https://github.com/mosn/layotto/pull/793
    • @fft0518 made their first contribution in https://github.com/mosn/layotto/pull/804
    • @pmupkin made their first contribution in https://github.com/mosn/layotto/pull/806
    • @LZHK1ng made their first contribution in https://github.com/mosn/layotto/pull/813

    Full Changelog: https://github.com/mosn/layotto/compare/v0.4.0...v0.5.0-rc

    Source code(tar.gz)
    Source code(zip)
    layotto.darwin_amd64.zip(59.73 MB)
    layotto.darwin_arm64.zip(57.98 MB)
    layotto.linux_amd64.zip(60.33 MB)
    layotto.linux_arm64.zip(56.50 MB)
  • v0.4.0(May 13, 2022)

    What's Changed

    Feature

    java sdk support File API by @ccx1024cc @ccx1024cc Add startup hooks by @seeflood @seeflood api-plugin by @seeflood @seeflood Add support for Dapr InvokeService and InvokeBinding API by @seeflood @seeflood add mongo distributed lock by @LXPWing @LXPWing add comment of wasm by @LXPWing @LXPWing make parameters of API plugin extendable by @seeflood @seeflood add hdfs support by @bokket @bokket add sequencer of mongo by @LXPWing @LXPWing support dapr state api by @zach030 @zach030 ADD SECRET API by @MentosL @MentosL add file api impl tencent cloud oss by @stulzq @stulzq add file qiniu cloud oss by @stulzq @stulzq add in-memory sequencer by @stulzq @stulzq add in-memory lock by @stulzq @stulzq add skywalking trace by @stulzq @stulzq add Redis Component in integrate test by @zhenjunMa @zhenjunMa

    Bugfixs

    fix in-mem component issues by @seeflood @seeflood fix zk lock ut by @ZLBer @ZLBer package testing/fstest is not in GOROOT of golang1.14 by @wenxuwan @wenxuwan compile warning on mac os 12 by @stulzq @stulzq correct wrong symbols by @Xunzhuo @Xunzhuo fix: trace not running by @stulzq @stulzq fix: dubbo demo fails (#458) by @rayowang in https://github.com/mosn/layotto/pull/459

    Enhancements

    don't compile the actuator module if users don't need it by @seeflood @seeflood chore: optimize dockerfiles and makefiles by @Xunzhuo @Xunzhuo add auto build and release workflow by @Xunzhuo @Xunzhuo provide powerful github piplines by @Xunzhuo @Xunzhuo optimize codes and reopen lint test ci by @Xunzhuo @Xunzhuo refactor: remove java-sdk and add link to repo by @kevinten10 in https://github.com/mosn/layotto/pull/357 chore: add state comments by @GimmeCyy in https://github.com/mosn/layotto/pull/487 chore: add actuator comments by @Holdonbei in https://github.com/mosn/layotto/pull/479 doc: Add blog flow control document. by @kuaile-zc in https://github.com/mosn/layotto/pull/488 feat: upgrade assemblyscript faas demo(#256) by @nanjingboy in https://github.com/mosn/layotto/pull/486 feature: Upgrade the wasm demo developed by rust(#255) by @nanjingboy in https://github.com/mosn/layotto/pull/475 fix: Publish subscription caused by metadata does not fill in caused … by @akkw in https://github.com/mosn/layotto/pull/524 fix: FaaS quickstart fails by @rayowang in https://github.com/mosn/layotto/pull/537 fix:aws oss by @akkw in https://github.com/mosn/layotto/pull/523 fix: upgrade mosn to v1.0.1 to fix error of mosn stageManager by @rayowang in https://github.com/mosn/layotto/pull/557

    New Contributors

    • @bokket made their first contribution in https://github.com/mosn/layotto/pull/276
    • @rayowang made their first contribution in https://github.com/mosn/layotto/pull/459
    • @GimmeCyy made their first contribution in https://github.com/mosn/layotto/pull/487
    • @Holdonbei made their first contribution in https://github.com/mosn/layotto/pull/479
    • @kuaile-zc made their first contribution in https://github.com/mosn/layotto/pull/488
    • @nanjingboy made their first contribution in https://github.com/mosn/layotto/pull/486
    • @jieeny made their first contribution in https://github.com/mosn/layotto/pull/474
    • @GOODBOY008 made their first contribution in https://github.com/mosn/layotto/pull/499
    • @akkw made their first contribution in https://github.com/mosn/layotto/pull/524
    • @wlwilliamx made their first contribution in https://github.com/mosn/layotto/pull/560

    Full Changelog: https://github.com/mosn/layotto/compare/v0.3.0...v0.4.0-rc

    docker image: https://hub.docker.com/r/layotto/layotto

    Source code(tar.gz)
    Source code(zip)
    layotto.darwin_amd64.zip(49.90 MB)
    layotto.darwin_arm64.zip(49.91 MB)
    layotto.linux_amd64.zip(52.15 MB)
    layotto.linux_arm64.zip(48.82 MB)
  • v0.3.0(Dec 6, 2021)

    What's Changed

    1. Application Runtime

    a. File API

    • add aws oss support
    • add minio oss support

    b. Lock API

    • add redis cluster support
    • add consul support

    c. Pub/Sub API

    • add in-memory support
    • add metadata field in TopicEventRequest

    d. State API

    • add in-memory support

    e. Sequencer ID API

    • add double buffer feature

    2. FaaS&WebAssembly

    • FaaS POC feature

    3. SDK

    • Java SDK release v1.0.0
    • add dotnet sdk (GA)
    • add js sdk (GA)

    4. Other

    • support http channel deadconn detection
    • Fixed int64 overflow problems on JavaScript
    • add/update some documents
    • add some workflows

    Acknowledgements

    Thanks to everyone who made this release possible! @zach030 @LXPWing @whalesongAndLittleFish @fengmk2 @RayneHwang @seeflood @nobodyiam @zhenjunMa @ZLBer @Nancy945 @Xunzhuo @wenxuwan @MoonShining

    New Contributors

    • @zach030 made their first contribution in https://github.com/mosn/layotto/pull/235
    • @LXPWing made their first contribution in https://github.com/mosn/layotto/pull/290
    • @whalesongAndLittleFish made their first contribution in https://github.com/mosn/layotto/pull/284
    • @fengmk2 made their first contribution in https://github.com/mosn/layotto/pull/316
    • @RayneHwang made their first contribution in https://github.com/mosn/layotto/pull/319

    Full Changelog: https://github.com/mosn/layotto/compare/v0.2.0...v0.3.0

    Source code(tar.gz)
    Source code(zip)
    layotto_darwin_amd64(103.95 MB)
    layotto_linux_amd64(118.26 MB)
  • v0.2.0(Sep 30, 2021)

    • Support File API
    • Support Binding API
    • Tracing and metrics
    • More components for existing API
    • Fix security issues and reduce the risk of panic
    • Isolation and code reuse of different components
    • WASM modules hot reload
    • More features for go sdk
    • Java sdk
    • Add more documents and fix typo
    • Add community governance rules
    • Maybe some other features I might forget :(

    Thank you all for your contributions(names are listed in arbitrary order) ! @x-shadow-man @Xunzhuo @stulzq @arcosx @MentosL @keleqnma @hellomyboy @liubin @zu1k @nobodyiam @khotyn @tianjipeng @ZLBer @wenxuwan @zhenjunMa @MoonShining @seeflood

    Note: the assets here are binary files,you can run the file without unzip it.

    Source code(tar.gz)
    Source code(zip)
    layotto_darwin_amd64(119.23 MB)
    layotto_linux_amd64(105.74 MB)
  • v0.1.0(Jul 30, 2021)

Owner
MOSN
The Cloud Native Proxy for Edge or Service Mesh
MOSN
Metrics go: CudgX indicator management tool, which integrates monitoring and data analysis indicator capabilities

Metrics-Go metrics-go 是cudgx指标打点工具,它集成了监控和数据分析指标能力。 数据流程 指标数据流程为: 用户代码调用打点 SDK指标

Galaxy-Future 11 Oct 13, 2022
PolarDB Stack is a DBaaS implementation for PolarDB-for-Postgres, as an operator creates and manages PolarDB/PostgreSQL clusters running in Kubernetes. It provides re-construct, failover swtich-over, scale up/out, high-available capabilities for each clusters.

PolarDB Stack开源版生命周期 1 系统概述 PolarDB是阿里云自研的云原生关系型数据库,采用了基于Shared-Storage的存储计算分离架构。数据库由传统的Share-Nothing,转变成了Shared-Storage架构。由原来的N份计算+N份存储,转变成了N份计算+1份存储

null 23 Nov 8, 2022
Open Source runtime tool which help to detect malware code execution and run time mis-configuration change on a kubernetes cluster

Kube-Knark Project Trace your kubernetes runtime !! Kube-Knark is an open source tracer uses pcap & ebpf technology to perform runtime tracing on a de

Chen Keinan 32 Sep 19, 2022
Using the Golang search the Marvel Characters. This project is a web based golang application that shows the information of superheroes using Marvel api.

marvel-universe-web using the Golang search the Marvel Universe Characters About The Project This project is a web based golang application that shows

Burak KÖSE 2 Oct 10, 2021
Frisbee is a Kubernetes-native platform for exploring, testing, and benchmarking distributed applications.

Why Frisbee ? Frisbee is a next generation platform designed to unify chaos testing and perfomance benchmarking. We address the key pain points develo

Computer Architecture and VLSI Systems (CARV) Laboratory 39 Dec 14, 2022
Leapfrog - Apis Developed In Lambdas

leapfrog - APIs DEVELOPED IN LAMBDAS ## Environment Details 1.Branch Name : Dev-Migration 2.URL : https://dev.cclproducts.com 3.Database Used : CCLDE

null 0 Mar 23, 2022
A simple project (which is visitor counter) on kubernetesA simple project (which is visitor counter) on kubernetes

k8s playground This project aims to deploy a simple project (which is visitor counter) on kubernetes. Deploy steps kubectl apply -f secret.yaml kubect

null 13 Dec 16, 2022
Tool which gathers basic info from apk, which can be used for Android penetration testing.

APKSEC Tool which gathers basic info from apk, which can be used for Android penetration testing. REQUIREMENTS AND INSTALLATION Build APKSEC: git clon

Jayateertha Guruprasad 3 Sep 2, 2022
An operator which complements grafana-operator for custom features which are not feasible to be merged into core operator

Grafana Complementary Operator A grafana which complements grafana-operator for custom features which are not feasible to be merged into core operator

Snapp Cab Incubators 6 Aug 16, 2022
Testcontainers is a Golang library that providing a friendly API to run Docker container. It is designed to create runtime environment to use during your automatic tests.

When I was working on a Zipkin PR I discovered a nice Java library called Testcontainers. It provides an easy and clean API over the go docker sdk to

null 1.8k Jan 7, 2023
An open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developersAn open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developers

Developer-oriented Continuous Delivery Product ⁣ English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use? How to

null 0 Oct 19, 2021
OpenAPI Terraform Provider that configures itself at runtime with the resources exposed by the service provider (defined in a swagger file)

Terraform Provider OpenAPI This terraform provider aims to minimise as much as possible the efforts needed from service providers to create and mainta

Daniel I. Khan Ramiro 228 Dec 26, 2022
Kubernetes Virtualization API and runtime in order to define and manage virtual machines.

Kubernetes Virtualization API and runtime in order to define and manage virtual machines.

KubeVirt 3.8k Jan 5, 2023
Kubei is a flexible Kubernetes runtime scanner, scanning images of worker and Kubernetes nodes providing accurate vulnerabilities assessment, for more information checkout:

Kubei is a vulnerabilities scanning and CIS Docker benchmark tool that allows users to get an accurate and immediate risk assessment of their kubernet

Portshift 832 Dec 30, 2022
Open Source runtime scanner for Linux containers (LXD), It performs security audit checks based on CIS Linux containers Benchmark specification

lxd-probe Scan your Linux container runtime !! Lxd-Probe is an open source audit scanner who perform audit check on a linux container manager and outp

Chen Keinan 16 Dec 26, 2022
Write controller-runtime based k8s controllers that read/write to git, not k8s

Git Backed Controller The basic idea is to write a k8s controller that runs against git and not k8s apiserver. So the controller is reading and writin

Darren Shepherd 50 Dec 10, 2021
The k8s-generic-webhook is a library to simplify the implementation of webhooks for arbitrary customer resources (CR) in the operator-sdk or controller-runtime.

k8s-generic-webhook The k8s-generic-webhook is a library to simplify the implementation of webhooks for arbitrary customer resources (CR) in the opera

Norwin Schnyder 9 Nov 24, 2022
runtime - an abstraction library on top of the Open Policy Agent (OPA)

runtime - an abstraction library on top of the Open Policy Agent (OPA) Introduction The "runtime" project is a library that sits on top of OPA. The go

 Aserto Inc 22 Nov 7, 2022
Open Source runtime scanner for OpenShift cluster and perform security audit checks based on CIS RedHat OpenShift Benchmark specification

OpenShift-Ordeal Scan your Openshift cluster !! OpenShift-Ordeal is an open source audit scanner who perform audit check on OpenShift Cluster and outp

chenk 5 Sep 6, 2022