0-core

module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2018 License: Apache-2.0

README

Build Status codecov

0-core

The core of Zero-OS is 0-core, which is the Zero-OS replacement for systemd.

Branches

Releases

See the release schedule in the Zero-OS home repository.

Development setup

Check the page on how to boot zos in a local setup here. Choose the best one that suits your setup. For development, we would recommend the VM using QEMU.

Using the Python client

Before using the client make sure the ./client/py-client is in your PYTHONPATH. Or pip3 install it like ch client/py-client && pip3 install -e .

from zeroos.core0 import client

# password is only required if zos was booted with `organization=<org>` parameter.
# and in that case, the password must be a valid jwt token from itsyou.online
cl = client.Client(host='<IP address of Docker container running Zero-OS>', password='<JWT>')

#validate that core0 is reachable
print(cl.ping())

#then u can do stuff like
print(
    cl.system('ps -eF').get()
)

print(
    cl.system('ip a').get()
)

#client exposes more tools for disk, bridges, and container mgmt
print(
    cl.disk.list()
)
Creating a JWT token from itsyou.online.

Login to your profile at https://itsyou.online and from the settings ( gear icon ) create an API key and copy the values.

  • Make sure you are have (or memeber of) an organization.

From command line

export CLIENT_ID='<your client id>'
export CLIENT_SECRET='<your secret>'
export ORG=<oranization name>
export VALIDITY_IN_SECONDS=3600
export JWT=`curl -s -X POST "https://itsyou.online/v1/oauth/access_token?grant_type=client_credentials&client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET}&response_type=id_token&scope=user:memberof:${ORG}&validity=${VALIDITY_IN_SECONDS}"`
echo $JWT

Simply replace the CLIENT_ID and CLIENT_SECRET values with your own.

Features

v0.9
  • Boot the 0-core as init process
  • Manage disks
  • Create containers
    • Full Namespace isolation
    • Host the root filesystem of the containers via ipfs
    • Network stack dedicated
    • ZeroTier Network integration
    • Use flist file format as root metadata
  • Remotly administrate the process
    • via Python client
    • via redis
v0.10
  • change datastore for fuse filesystem from ipfs to Zero-OS Store.
v0.11
  • include of the monitoring of all processes running on the Zero-OS. It produces aggregated statistics on the processes that can be dump into a time series database and displayed used something like Grafana.
v1.0.0
  • New Flist format, the flist used in the 0-fs is now a distributed as a RocksDB database.
  • Creation of the 0-Hub, see https://github.com/zero-os/0-hub
  • Improvement of the builtin commands of 0-core and coreX
v1.1.0-alpha2
  • Lots and lots of bug fixes
  • Containers plugins
  • Unprivileged containers (still in beta)
  • Libvirt bindings
  • Processes API
  • Support multiple ZeroTier in container networking
  • Support Open vSwitch networking for both containers and KVM domains
  • corectl command line tool to manage Zero-OS from within the node
Next

See the milestones in the Zero-OS home repository: Zero-OS Milestones

Schema

Schema Plan

Documentation

All documentation is in the /docs directory, including a table of contents.

In Getting Started with Core0 you find the recommended path to quickly get up and running.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL