uCore is an OCI image of Fedora CoreOS with "batteries included". More specifically, it's an opinionated, custom CoreOS image, built daily with some common tools added in. The idea is to make a lightweight server image including commonly used services or the building blocks to host them.
Please take a look at the included modifications, and help us improve uCore if the project interests you.
Fedora CoreOS is an automatically updating, minimal, monolithic, container-focused operating system, designed for clusters but also operable standalone, optimized for Kubernetes but also great without it. Its goal is to provide the best container host to run containerized workloads securely and at scale.
Fedora CoreOS is an open source project associated with the Fedora Project.
Ignition is a utility created to manipulate disks during the initramfs. This includes partitioning disks, formatting partitions, writing files (regular files, systemd units, etc.), and configuring users. On first boot, Ignition reads its configuration from a source of truth (remote URL, network metadata service, hypervisor bridge, etc.) and applies the configuration.
Butane (formerly the Fedora CoreOS Config Transpiler, FCCT) translates human readable Butane Configs into machine readable Ignition Configs. See the getting started guide for how to use Butane and the configuration specifications for everything Butane configs support.
-
Container-based
The optimal container host will be offered in order to run containerized
applications. -
Secure
Our goal is to provide the best container host to run workloads securely
and at scale. -
Open-source Ecosystem
Everything is supported by a totally free and open-source Fedora
ecosystem. -
Open to everyone
CoreOS is currently available on multiple platforms, with more coming
soon. -
Minimal
The Fedora CoreOS image is kept minimal by design.
-
Flexible
There are a wide variety of supported installation methods.
Ignition is a new provisioning utility designed specifically for CoreOS Container Linux. At the the most basic level, it is a tool for manipulating disks during early boot. This includes partitioning disks, formatting partitions, writing files (regular files, systemd units, networkd units, etc.), and configuring users. On first boot, Ignition reads its configuration from a source-of-truth (remote URL, network metadata service, hypervisor bridge, etc.) and applies the configuration.
Even though Ignition only runs once, it packs a powerful punch. Because Ignition runs so early in the boot process (in the initramfs, to be exact), it is able to accomplish configuration all before the userspace has begun booting, which enables advanced features that Container Linux admins require.
These instructions will walk you through booting Container Linux via iPXE on real or virtual hardware. By default, this will run Container Linux completely out of RAM. Container Linux can also be installed to disk.
A mininum of 1024M of RAM is required to boot Container Linux via PXE.
Bootkube is a helper tool for launching self-hosted Kubernetes clusters.
When launched, bootkube will act as a temporary Kubernetes control-plane (api-server, scheduler, controller-manager), which operates long enough to bootstrap a replacement self-hosted control-plane.
Additionally, bootkube can be used to generate all of the necessary assets for use in bootstrapping a new cluster. These assets can then be modified to support any additional configuration options.
If you are interested in the design and details see the Kubernetes self-hosted design document which provides an architecture overview.
Tectonic is built on pure-upstream Kubernetes but has an opinion on the best way to install and run a Kubernetes cluster. This project helps you install a Kubernetes cluster the "Tectonic Way". It provides good defaults, enables install automation, and is customizable to meet your infrastructure needs.
Goals of the project:
Installation of Self-Hosted Kubernetes Cluster
Secure by default (use TLS, RBAC by default, OIDC AuthN, etcd)
Automatable install process for scripts and CI/CD
Deploy Tectonic on any infrastructure (Amazon, Azure, OpenStack, GCP, etc)
Runs Tectonic on any OS (Container Linux, RHEL, CentOS, etc)
Customizable and modular (change DNS providers, security settings, etc)
HA by default (deploy all Kubernetes components HA, use etcd Operator)
Note: This repo does not yet haveTectonic is built on pure-upstream Kubernetes but has an opinion on the best way to install and run a Kubernetes cluster. This project helps you install a Kubernetes cluster the "Tectonic Way". It provides good defaults, enables install automation, and is customizable to meet your infrastructure needs.
Goals of the project:
Installation of Self-Hosted Kubernetes Cluster
Secure by default (use TLS, RBAC by default, OIDC AuthN, etcd)
Automatable install process for scripts and CI/CD
Deploy Tectonic on any infrastructure (Amazon, Azure, OpenStack, GCP, etc)
Runs Tectonic on any OS (Container Linux, RHEL, CentOS, etc)
Customizable and modular (change DNS providers, security settings, etc)
HA by default (deploy all Kubernetes components HA, use etcd Operator)
Note: This repo does not yet have all Tectonic Installer features imported. This will happen over the coming weeks as we are able to make some of the surrounding infrastructure public as well. This notice will be removed once the AWS and Baremetal graphical installer code has been fully integrated.
Checkout the ROADMAP for details on where the project is headed. all Tectonic Installer features imported. This will happen over the coming weeks as we are able to make some of the surrounding infrastructure public as well. This notice will be removed once the AWS and Baremetal graphical installer code has been fully integrated.
Checkout the ROADMAP for details on where the project is headed.
This guide walks through a bare-metal installation of Tectonic utilizing PXE-based tools.
etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It’s open-source and available on GitHub. etcd gracefully handles master elections during network partitions and will tolerate machine failure, including the master.
Your applications can read and write data into etcd. A simple use-case is to store database connection details or feature flags in etcd as key value pairs. These values can be watched, allowing your app to reconfigure itself when they change.
Advanced uses take advantage of the consistency guarantees to implement database master elections or do distributed locking across a cluster of workers.
rkt (pronounced "rock-it") is a CLI for running app containers on Linux. rkt is designed to be composable, secure, and fast.
Some of rkt's key features and goals include:
- First-class integration with init systems (systemd, upstart) and cluster orchestration tools (fleet, Kubernetes)
- Compatibility with other container software (e.g. rkt can run Docker images)
- Modular and extensible architecture (network configuration plugins, swappable execution engines based on systemd or QEMU/KVM)
etcd is a distributed, consistent key value store for shared configuration and service discovery with a focus on being:
Simple: curl'able user facing API (HTTP+JSON)
Secure: optional SSL client cert authentication
Fast: benchmarked 1000s of writes/s per instance
Reliable: properly distributed using Raft
etcd is written in Go and uses the Raft consensus algorithm to manage a highly-available replicated log.
See etcdctl for a simple command line client. Or feel free to just use curl, as in the examples below.
If you're considering etcd for production use, please see: production-ready.md
Learn more about Rocket, CoreOS' new container runtime, and the first implementation of the App Container Specification. We will give you an overview of Rocket, show you a demo of Rocket live, provide more information on the App Container Specification and answer questions as they arise.
this hangout, we will provide an overview of CoreOS. We will go over key
technologies, such as containers, etcd, fleet, flannel and more. Join us and learn how to
use these new technologies to build performant, reliable, large
etcd is CoreOS' distributed locking and service discovery technology. CoreOS recently released etcd 0.5.0 with many new features including a new raft implementation and static cluster bootstrap. Learn more about etcd and the new features included in the latest release.
