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 .
- 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.
- Application Management
- Application Groups Management
- Helm Charts Management
- Kubernetes Resource Management
- High Availability
- Security
- Go 1.11+
cd $GOPATH/src/WarpCloud
git clone https://github.com/WarpCloud/walm.git
cd walm
The build uses dependencies in the vendor directory. Occasionally, you might need to update the dependencies.
glide up -v
make
make test
- K8s 1.9+
- Redis 2.8+
# config test/e2e_walm.yaml first
make e2e-test
- K8s 1.9+
- Redis 2.8+
# config walm.yaml first
export Pod_Namespace=<walmns> && export Pod_Name=<walmname> && walm serv --config walm.yaml
http://<server_host>:9001/swagger-ui/?url=/apidocs.json
walmctl --help
- Authentication & Authorization
- Release Status Real-Time Synchronization