Skip to content

jooseppi-luna/conman

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

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 <container_id>

# Stop container 
sudo bin/conmanctl container stop <container_id>

# Request container status
sudo bin/conmanctl container status <container_id>

# Remove container 
sudo bin/conmanctl container remove <container_id>

Test it

# 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

Releases

No releases published

Packages

No packages published

Languages

  • Go 91.4%
  • Shell 6.9%
  • Makefile 1.7%