All Projects → WarpCloud → walm

WarpCloud / walm

Licence: Apache-2.0 License
Warp Application Lifecycle Manager,应用生命周期管理

Programming Languages

Jsonnet
166 projects
go
31211 projects - #10 most used programming language

Walm

logo

Walm is a micro service, based on Helm, that supports both Rest Api and Cli to manage the lifecycle of pod based applications in kubernetes cluster including those with dependencies.

Walm dynamically manages the dependencies of an application. An application can depend on the applications already existed, and the configurations of applications depending on would be injected automatically. Besides, once the configurations of applications depending on changes, the configurations would be injected again in real-time.

Walm supports more advanced Chart that use Jsonnet as template engine to render kubernetes objects. It is more suitable to orchestrate and deploy complex applications, such as Big Data applications.

Walm supports finely grained authentication and authorization, that would make one user only have relevant authorization under kubernetes namespace scope.

Walm uses a message system(Kafka) to synchronize the application's status in real-time. Once the application's status changes, Walm would produce an event to Kafka in real-time, and the Walm client would get the latest application status in real-time by consuming the Kafka event .

Architecture

arch

Advantage

  • Walm supports rest api to manage the lifecycle of applications.
  • Walm supports the orchestration and deployment of complex applications.
  • Walm supports the dynamic dependencies management.
  • Walm supports the real-time synchronization of the application's status.
  • Walm supports the finely grained authentication and authorization.
  • Walm supports to retrieve the more detailed specification and status of applications.

Features

Get Started

Development

Prerequisite

  • Go 1.11+

Getting the code

cd $GOPATH/src/WarpCloud
git clone https://github.com/WarpCloud/walm.git
cd walm

Dependencies

The build uses dependencies in the vendor directory. Occasionally, you might need to update the dependencies.

glide up -v

Building

make

Testing

Unit Test

make test

E2E Test

Prerequisite
  • K8s 1.9+
  • Redis 2.8+
# config test/e2e_walm.yaml first
make e2e-test

Usage

Walm Server

Prerequisite

  • K8s 1.9+
  • Redis 2.8+

Start Server

# config walm.yaml first
export Pod_Namespace=<walmns> && export Pod_Name=<walmname> && walm serv --config walm.yaml

Rest Api Swagger Ui

http://<server_host>:9001/swagger

Walmcli

walmcli使用说明

walmctl --help

Road Map

  • Authentication & Authorization
  • Release Status Real-Time Synchronization
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].