# fedora-coreos-cincinnati walkthrough * Source code: <https://github.com/coreos/fedora-coreos-cincinnati> * web backend for https://github.com/coreos/zincati * Pure Rust project * For a general Rust quickstart, see Zincati one: * https://coreos.github.io/zincati/development/quickstart/ * docker file ~dist/fedorainfra/dockerfile * Basic utils: Rust toolchain (rustc+cargo), see https://github.com/coreos/fedora-coreos-cincinnati/blob/main/dist/fedora-infra/Dockerfile#L7 * rust extensions : rust-analyzer * Typical scenario: * FCOS machine, * which is running Zincati, * which is querying policy-engine (coreos-cincinnati frontend), * which is talking to graph-builder (coreos-cincinnati backend) * (Zincati eventually talks to rpm-ostree to deploy new releases) * FCOS does auto-update between releases, according to a graph * https://builds.coreos.fedoraproject.org/graph?stream=stable&basearch=x86_64 * According to the Cincinnati protocol * https://coreos.github.io/zincati/development/cincinnati/protocol/ Production running on fedora-infra: * curl -H 'Accept: application/json' 'https://raw-updates.coreos.fedoraproject.org/v1/graph?basearch=x86_64&stream=stable' * curl -H 'Accept: application/json' 'https://updates.coreos.fedoraproject.org/v1/graph?basearch=x86_64&stream=stable&rollout_wariness=0' * Deployment configuration: https://pagure.io/fedora-infra/ansible/blob/main/f/roles/openshift-apps/coreos-cincinnati/templates/deploymentconfig.yml * Rust documentation for common/public libraries on https://docs.rs/ * For example, `log` is at https://docs.rs/log/0.4.17/log/ Resources for a general Rust introduction and exercises: * https://github.com/rust-lang/rustlings * https://rust-lang-nursery.github.io/rust-cookbook/intro.html * START HERE --> (Getting started with cargo) https://doc.rust-lang.org/book/ch01-00-getting-started.html