Convert a Container Linux Config into Ignition
Clone or download
ajeddeloh Merge pull request #161 from ajeddeloh/default-root
types/config: add version field
Latest commit ebbbc80 Oct 4, 2018
Permalink
Failed to load latest commit information.
config types/config: add version field Oct 3, 2018
doc doc/configuration: document filesystem is optional Jul 11, 2018
internal Merge pull request #132 from ajeddeloh/dont-write-empty-files Jan 3, 2018
vendor vendor: results of running make vendor Apr 6, 2018
.gitignore Makefile: Add release target and deprecate build script May 12, 2017
.travis.yml build: Build, tag, and push docker images on master branch Travis builds Feb 13, 2018
CONTRIBUTING.md *: initial commit Jul 15, 2015
DCO *: initial commit Jul 15, 2015
Dockerfile build: Build, tag, and push docker images on master branch Travis builds Feb 13, 2018
Dockerfile.build-alpine build: Build, tag, and push docker images on master branch Travis builds Feb 13, 2018
LICENSE *: initial commit Jul 15, 2015
Makefile make: fix bin/ct target dependencies Mar 14, 2018
NEWS news: add news for v0.9.0 May 18, 2018
NOTICE *: initial commit Jul 15, 2015
README.md news: add news for v0.8.0 Apr 11, 2018
code-of-conduct.md update CoC Jan 4, 2018
docker-build build: Build, tag, and push docker images on master branch Travis builds Feb 13, 2018
docker-push build: Build, tag, and push docker images on master branch Travis builds Feb 13, 2018
git-version Makefile: Add release target and deprecate build script May 12, 2017
glide.lock vendor: results of running make vendor Apr 6, 2018
glide.yaml glide: update Ignition from v0.19.0 to v0.24.0 Apr 6, 2018
release.sh build: change tag_release into a full release Jul 14, 2017
test test: print gofmt diffs May 18, 2018

README.md

Container Linux Config Transpiler

The Config Transpiler ("ct" for short) is the utility responsible for transforming a human-friendly Container Linux Config into a JSON file. This resulting file can be provided to a Container Linux machine when it first boots to provision the machine.

Documentation

If you're looking to begin writing configs for your Container Linux machines, check out the getting started documentation.

The configuration documentation is a comprehensive resource specifying what options can be in a Container Linux Config.

For a more in-depth view of ct and why it exists, take a look at the Overview document.

Please use the bug tracker to report bugs.

Examples

There are plenty of small, self-contained examples in the documentation.

Installation

macOS homebrew

brew install coreos-ct

Prebuilt binaries

The easiest way to get started using ct is to download one of the binaries from the releases page on GitHub.

One can use the following script to download and verify the signature of Config Transpiler:

# Specify Config Transpiler version
CT_VER=v0.6.1

# Specify Architecture
# ARCH=aarch64 # ARM's 64-bit architecture
ARCH=x86_64

# Specify OS
# OS=apple-darwin # MacOS
# OS=pc-windows-gnu.exe # Windows
OS=unknown-linux-gnu # Linux

# Specify download URL
DOWNLOAD_URL=https://github.com/coreos/container-linux-config-transpiler/releases/download

# Remove previous downloads
rm -f /tmp/ct-${CT_VER}-${ARCH}-${OS} /tmp/ct-${CT_VER}-${ARCH}-${OS}.asc /tmp/coreos-app-signing-pubkey.gpg

# Download Config Transpiler binary
curl -L ${DOWNLOAD_URL}/${CT_VER}/ct-${CT_VER}-${ARCH}-${OS} -o /tmp/ct-${CT_VER}-${ARCH}-${OS}
chmod u+x /tmp/ct-${CT_VER}-${ARCH}-${OS}

# Download and import CoreOS application signing GPG key
curl https://coreos.com/dist/pubkeys/app-signing-pubkey.gpg -o /tmp/coreos-app-signing-pubkey.gpg
gpg2 --import --keyid-format LONG /tmp/coreos-app-signing-pubkey.gpg

# Download and import CoreOS application signing GPG key if it has not already been imported
curl -L ${DOWNLOAD_URL}/${CT_VER}/ct-${CT_VER}-${ARCH}-${OS}.asc -o /tmp/ct-${CT_VER}-${ARCH}-${OS}.asc
gpg2 --verify /tmp/ct-${CT_VER}-${ARCH}-${OS}.asc /tmp/ct-${CT_VER}-${ARCH}-${OS}

Building from source

To build from source you'll need to have the go compiler installed on your system.

git clone --branch v0.8.0 https://github.com/coreos/container-linux-config-transpiler
cd container-linux-config-transpiler
make

The ct binary will be placed in ./bin/.

Note: Review releases for new branch versions.

Related projects