Skip to content

kavin81/veil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

veil

a lightweight container runtime built in Go that provides functionality for managing containers and images.

Install · Usage · License · Credits · Blog

Installation

TODO: Add installation instructions

Usage

veil storage structure

~/.veil/
├── containers/          # Container instances
│   └── <container-id>/
│       ├── upper/       # Container layer (writable)
│       ├── lower/       # Image layer (read-only)
│       ├── work/        # OverlayFS work directory
│       ├── merged/      # OverlayFS merged view
│       └── state.json   # Container configuration
├── images/              # Downloaded images
│   ├── <image-id>.tar   # Image archive files
│   └── list.json        # Image metadata database
└── tmp/                 # Temporary files

flow chart

---
config:
  theme: redux
  look: classic
  layout: dagre
---
flowchart LR
 subgraph CLI["Veil CLI"]
    direction LR
        PULL["pull"]
        RUN["run"]
        PS["ps"]
        STOP["stop"]
        RM["rm"]
        EXEC["exec"]
        IMAGES["images"]
        VERSION["version"]
  end
 subgraph COBRA["Cobra Framework"]
        FRAMEWORK["Command Router"]
  end
 subgraph IMG_MGMT["Image Management"]
        IMG_PULL["Pull Images"]
        IMG_EXTRACT["Extract Layers"]
        IMG_STORE["Manage Store"]
  end
 subgraph CONTAINER_RT["Container Runtime"]
        CONT_CREATE["Create"]
        CONT_LIFECYCLE["Start/Stop"]
        CONT_ATTACH["Attach/Exec"]
  end
 subgraph CONFIG_MGR["Configuration"]
        DAEMON_CONFIG["Daemon Config"]
        CONTAINER_STATE["Container State"]
        IMAGE_META["Image Metadata"]
  end
 subgraph RUNTIME["Core Runtime"]
    direction LR
        IMG_MGMT
        CONTAINER_RT
        CONFIG_MGR
  end
 subgraph OVERLAY["OverlayFS"]
        LAYER_FS["Layered FS"]
        COW["Copy-on-Write"]
        EFFICIENT["Efficient Storage"]
  end
 subgraph CGROUPS["CGroups"]
        CPU_LIMITS["CPU Limits"]
        MEM_LIMITS["Memory Limits"]
        PROC_LIMITS["Process Limits"]
  end
 subgraph NAMESPACES["Namespaces"]
        PID_ISO["PID Isolation"]
        NET_ISO["Network Isolation"]
        FS_ISO["Filesystem Isolation"]
  end
 subgraph SYSTEM["System Integration"]
    direction LR
        OVERLAY
        CGROUPS
        NAMESPACES
  end
    CLI --> COBRA
    COBRA --> RUNTIME
    RUNTIME --> SYSTEM
     PULL:::cli
     RUN:::cli
     PS:::cli
     STOP:::cli
     RM:::cli
     EXEC:::cli
     IMAGES:::cli
     VERSION:::cli
     FRAMEWORK:::framework
     IMG_PULL:::runtime
     IMG_EXTRACT:::runtime
     IMG_STORE:::runtime
     CONT_CREATE:::runtime
     CONT_LIFECYCLE:::runtime
     CONT_ATTACH:::runtime
     DAEMON_CONFIG:::runtime
     CONTAINER_STATE:::runtime
     IMAGE_META:::runtime
     LAYER_FS:::system
     COW:::system
     EFFICIENT:::system
     CPU_LIMITS:::system
     MEM_LIMITS:::system
     PROC_LIMITS:::system
     PID_ISO:::system
     NET_ISO:::system
     FS_ISO:::system
Loading

file tree

veil/
├── cmd/                    # CLI commands (Cobra)
│   ├── root.go            # Root command and global flags
│   ├── pull.go            # Image pull command
│   ├── run.go             # Container run command
│   ├── list.go            # Container list command (ps)
│   ├── stop.go            # Container stop command
│   ├── rm.go              # Container remove command
│   ├── exec.go            # Container exec command
│   ├── images.go          # Image list command
│   └── version.go         # Version command
├── pkg/                   # Public packages
│   ├── images/            # Image management
│   ├── runtime/           # Container runtime
│   └── types/             # Type definitions
├── internal/              # Private packages
│   ├── config/            # Configuration management
│   ├── logging/           # Logging setup
│   ├── cgroup/            # Cgroup management
│   └── utils/             # Utility functions
├── examples/              # Usage examples
├── Makefile              # Build automation
├── README.md             # Comprehensive documentation
└── main.go               # Application entry point

License

Credits

About

no frills container runtime

Resources

License

Stars

Watchers

Forks

Languages