kjx-headless

[WIP] deploy, trace and monitor a busybox/LFS based distro

https://github.com/deomorxsy/kjx-headless

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (3.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

[WIP] deploy, trace and monitor a busybox/LFS based distro

Basic Info
  • Host: GitHub
  • Owner: deomorxsy
  • License: gpl-3.0
  • Language: Shell
  • Default Branch: main
  • Homepage:
  • Size: 1.68 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

kjx-headless // WIP

POC for a custom headless LFS distro setup, deploy and monitoring

initramfs bzImage dropbear qemu-builder eltorito.img iso9660 libbpf-core cronaws unit-tests libbpfgo ayaya coverage ocaml-ci

Taking up from where eulab-poc left ;D

This proof-of-concept monorepo gathers concepts from several [1] constrained systems to create a *NIX Distro, Linux-based. Composed by Busybox/LFS, it applies CI/CD for infrastructure automation. Aimed to explore the performance of virtualized environments.

Check the Gitlab mirror for an example using Jenkins instead of Github Actions.

sh .-"``"-. / _.-` (_) `-._ \ (_.----._) / \ / \ / `\ \____/ /` `-.____.-` __ _ / \ / /__ (_)_ __ / \ / '_/ / /\ \ / /_ | | _\ /_/\_\_/ //_\_\ | | | |___/ deomorxsy/kjx |__|__| ---------------------------------------------- /_ | _\ Reboot (01.00.0, ${GIT_CONTAINERFILE_HASH}) ----------------------------------------------

The entire boot flowchart, from kernel init scripts to k3s initialization: kernel | 1| .--- /etc/runit/reboot ---. 14 ,---| 2 |<--- (runit-init) <---- init 0|6 | '--- /etc/runit/stopit ---' | | 13 | '------------------------------------> 3| .-----> runit | | | | .---<---------<----+-------->---------. | | | | 4| | 6| 10| runit/1 | runit/2 runit/3 | | | | 5| | 7| 11| start things | runsvdir sv | | | | | | 8| | +---------------+ '--->---'| runsv /var/service/* | Parent Process| | | | +---------------+<------------' | | | | 12| |1. Fork libbpf | stop things |2. Fork k3s process | | | | | |3. Send signal SIGUSR1 to libbpf | send SIGTERM v v v +--------------------+ +--------------------+ | | Child: libbpf | | Child: k3s Process |---' | Program | | Wait for SIGUSR2 | +--------------------+ +--------------------+ ^ ^ | 4. Wait for SIGUSR1 | 6. Wait for SIGUSR2 | (self-loop) | (self-loop) v v +--------------------+ +--------------------+ | Start Monitoring |------------>| Signal: Monitoring | +--------------------+ | Started | | +--------------------+ | | | | | 5. Send SIGUSR2 to k3s Process | v v +--------------------+ +--------------------+ | Monitoring Active | | Start k3s Process | +--------------------+ +--------------------+ | ┌──────────────────────┘ | │ | ┌─────────────── ▼ ───────────────────┐ v │ ┌──────────────┐ │ +--------│-------│server process│------------+ │ | ▼ └──────────────┘ | │ | +----------+ | │ | |supervisor|──┐ +-------+ ◄───────┐ | │ ┌──────────────┐ | +----------+ │ |flannel|--------┐| | │ +------│client process│----+ | ▼ +-------+ || | │ | └──────────────┘ | | +----+ +----------+ || | │ | +-------+ | | |kine|◄───|API-server| ◄-┐ +----------+ || | │ | |flannel|──────┐ | | +----+ +----------+ └-|kube-proxy|◄┘| | │ | +-------+ ▼ | | ▲ ▲ ▲ +----------+ | | │ | ▲ +----------+| | +----------+ │ │ │ | | │ | +------+ | |kube-proxy|| | |controller| | | | +-------+ | | │ | |tunnel| └─┐ +----------+| | |manager |──┘ | └──────|kubelet|─────┘ | └───|proxy |◄┐ | | | +----------+ +---------+ +-------+ | | +------+ | └─────┐ | +---------------|scheduler|-----│------------+ | ▲ └────┐ | | +---------+ │ | └───── +-------+ | │ +-------------|kubelet|----+ +----------+ │ +-------+ |containerd| ◄───────┘ +----------+ │ +----------+ |containerd|◄───────┘ │ +----------+ │ +---+ │ └─► |Pod| │ +---+ +---+ └─► |Pod| +---+

Unit and Integration tests use the go testing package with code coverage. Currently exploring fuzz tests. There is also a chore using bats-core. The adopted strategy is composed by spinning up a container, setting permissions with libcap and switching between test scopes for different containerized environments.

References

[1] LFS, Sabotage, Alpine, Busybox OS, ALFS, PILFS, Cross Linux from Scratch, Embedded Linux from Scratch, Dragora Linux, Alpine Linux and Void Linux.

Owner

  • Login: deomorxsy
  • Kind: user
  • Location: PE, Brasil

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Citation below."
authors:
    - deomorxsy
title: "kjx-headless"
version: 2.0.4
identifiers:
  - type: "other"
date-released: 2024-06-06

GitHub Events

Total
  • Push event: 22
Last Year
  • Push event: 22

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/bee.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/ci.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v3 composite
trace/ayaya/Cargo.lock cargo
trace/ayaya/Cargo.toml cargo
trace/ayaya/xtask/Cargo.toml cargo
Dockerfile docker
  • alpine 3.20 build
assets/busybox/Dockerfile docker
  • alpine 3.18 build
  • busybox 1.36.1-musl build
assets/kernel/Dockerfile docker
  • alpine 3.18 build
  • debian 12.1 build
  • debian-builder latest build
  • dependencies latest build
trace/exporter-libbpfgo/Dockerfile docker
  • alpine 3.18 build
  • debian bookworm build
  • golang 1.22-bookworm build
assets/cross-toolchain/Dockerfile docker
  • alpine 3.18 build
  • busybox 1.36.1-musl build
scripts/Dockerfile docker
  • alpine 3.20 build
  • golang 1.23-alpine3.20 build
tests/Dockerfile docker
  • alpine 3.20 build
  • golang 1.23-alpine3.20 build
trace/hpota/Dockerfile docker
  • alpine 3.20 build
  • elixir 1.17.3-otp-27-alpine build
tests/system/go.mod go
tests/unit/go.mod go
trace/hpota/mix.exs hex
  • honey HEAD
trace/hpota/mix.lock hex
  • https://github.com/lac-dcc/honey-potion/ 83b35afc6cc6dd0282dddbddef74bbee95996f55
.github/workflows/ayaya.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/coverage.yml actions
  • actions/checkout v4 composite
.github/workflows/cronaws.yml actions
  • actions/checkout v1 composite
.github/workflows/dropbear.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
.github/workflows/hpota.yml actions
  • actions/checkout v4 composite
.github/workflows/initramfs.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
.github/workflows/kernel.yml actions
  • actions/checkout v4 composite
  • actions/labeler v4 composite
  • actions/upload-artifact v4 composite
.github/workflows/libbpfgo.yml actions
  • actions/checkout v4 composite
.github/workflows/ocaml-ci.yml actions
  • actions/checkout v4 composite
.github/workflows/unit.yml actions
  • actions/checkout v4 composite
trace/ayaya/ayaya/Cargo.toml cargo
trace/ayaya/ayaya-common/Cargo.toml cargo
trace/ayaya/ayaya-ebpf/Cargo.toml cargo
assets/dropbear/Dockerfile docker
  • alpine 3.20 build
  • busybox 1.36.1-musl build
scripts/libkjx/Dockerfile docker
  • alpine 3.20 build
scripts/librakuda/Dockerfile docker
  • alpine 3.20 build
trace/ayaya/Dockerfile docker
  • alpine 3.20 build
trace/libbpf-core/Dockerfile docker