Skip to main content
# KPM

KPM is a tool to deploy and manage applications stack on kubernetes.

KPM provides the glue between kubernetes resources (ReplicatSet, DaemonSet, Secrets...). it defines a package has a composition of kubernetes resources and dependencies to other packages.

## Key concepts

### Simplicity

Keep it simple for both users and packagers.

### Declarative and idempotent

Declare what should be deployed and let the system apply only required changes.

### Reproducible deployment

For production and QA, control of each components is fundamental.
Both, dependency declaration and version control in KPM allows to have a predictable application stack deployment.

### Dependencies management

To propose 'ready-to-deploy' applications, the 'packager' can set a dependency list.

### Patch/Paramaterization

KPM encourages to use and reuse directly the 'upstream' package of a component and adapt it to its own requirement:
- <b>Templates:</b> quickly replace values in a resource via jinja2 templates.
- <b>Patch:</b> While template is good, it's not enough. Sometime the value to be edited is not parametrized. In such case, KPM proposes to apply a 'patch' on the resource

### Packages Hub
Quickly compose an application by searching and pick existing components from a registry.

## Quick start

### Deploy application

In this example we will deploy [rocket.chat](https://github.com/RocketChat/Rocket.Chat) an opensource webchat platform:

```
$ pip install kpm
$ kpm deploy ant31/rocketchat --namespace rocket-chat
-> Deploying ant31/rocketchat
app version type name namespace status
------------------ ------- ---- ------------ ----------- --------
ant31/mongodb 1.0.0 svc mongodb rktchat changed
ant31/mongodb 1.0.0 rc mongodb rktchat changed
ant31/rocketchat 1.2.0 svc rocketchat rktchat changed
ant31/rocketchat 1.2.0 rc rocketchat rktchat changed
```

## Install kpm

##### From Pypi

kpm is a python2 package and available on pypi
```
$ sudo pip install kpm -U
````

##### From git

```
git clone https://github.com/kubespray/kpm.git kpm-cli
cd kpm-cli
sudo make install
```

### Configuration

kpm uses `kubectl` to communicate with the kubernetes cluster.

```bash
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.4", GitCommit:"a5949fea3a91d6a50f40a5684e05879080a4c61d", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.4", GitCommit:"a5949fea3a91d6a50f40a5684e05879080a4c61d", GitTreeState:"clean"}

```

### Customize an existing package
1. Create a new package
2. Edit manifest
3. Change variables
4. Patch custom metric
5. Upload package
6. login
7. push
8.Test

## Account registration
### Signup
### Login/Logout

## Search and deploy a package
### List a user package
#### Show/Pull
### deploy

## Create a new package
#### Directory structure
#### Manifest
#### Templates
#### Publish

## Compose a package
### Dependency
#### Show manifest
#### variables
#### Patch
#### Shards

## Clustered applications/Shards
### Introduction
### Sharded: yes
### Shard list


=======
History
=======

0.1.0 (2016-2-22)
------------------

* First release on PyPI.

Metadata

Release files for kpm 0.10.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kpm 0.10.3
File Size Uploaded
kpm-0.10.3.tar.gz 14.8 kB Details

Release files / kpm-0.10.3.tar.gz

Download URL kpm-0.10.3.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ff0ca0791751e85092b4bdebba51929fe64960aed96927ca089361944ec6291f
BLAKE2b-256 checksum
How to use checksums
55f5a66ff686a8f10b4d19870b9856c5ec18edc1f5cdfaee193b53599616ebd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.25.0

2 release files

0.24.4

2 release files

0.24.3

2 release files

0.24.1

2 release files

0.24.0

2 release files

0.21.1

0.16.1

1 release file

0.16.0

1 release file

0.15.0

1 release file

0.14.3

1 release file

0.14.2

1 release file

0.14.1

1 release file

0.14.0

0.12.1

2 release files

0.11.0

2 release files

0.10.6

2 release files

0.10.5

2 release files

0.10.4

1 release file

This release

0.10.3 This release

1 release file

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.1

1 release file

0.9.0

2 release files

0.8.1

1 release file

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page