Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/iximiuz/conman

Simplistic container manager
https://github.com/iximiuz/conman

containers docker kubernetes oci-runtime

Last synced: 3 months ago
JSON representation

Simplistic container manager

Awesome Lists containing this project

README

        

# conman - [the] container manager

The aim of the project is to implement yet another _container manager_. Primarily, for the sake of [self-]education.
The _conman_ project is heavily inspired by cri-o and the ultimate goal is to
make _conman_ CRI-compatible. This will allow deploying Kubernetes
clusters with _conman_ as a container runtime server.

Read more about the project in this article.

## State of the project
Under active development. Not even close to _0.1.0_.

## Run it
So far the only tested platform is CentOS 7 with `go version go1.16.6 linux/amd64`.

While Docker is not needed for conman to work, `docker` command is expected on the dev host for tests to pass.

```bash
git clone https://github.com/iximiuz/conman.git
cd conman

# Build daemon and client
make bin/conmand
make bin/conmanctl

# Run daemon
sudo bin/conmand

# Prepare dev data
make test/data/rootfs_alpine

# Create containers
sudo bin/conmanctl container create --image test/data/rootfs_alpine/ cont1 -- sleep 100
sudo bin/conmanctl container create --image test/data/rootfs_alpine/ cont2 -- sleep 200

# List containers
sudo bin/conmanctl container list

# Start container
sudo bin/conmanctl container start

# Stop container
sudo bin/conmanctl container stop

# Request container status
sudo bin/conmanctl container status

# Remove container
sudo bin/conmanctl container remove
```

## Test it
```bash
# Unit (not really) tests
sudo PATH=/usr/local/bin:$PATH make testunit

# Functional tests
# install jq `yum install jq`
# install bats https://github.com/bats-core/bats-core
sudo PATH=/usr/local/bin:$PATH make testfunctional

# OCI runtime shim integration tests
make testshimmy
```

## TODO:
- acceptance tests
- shim
- interactive containers (exec, stdin/stdout support)
- PTY-controlled containers (eg. shell)
- attach to a running container