├── .github └── workflows │ ├── docker.yml │ └── go.yml ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── DCO ├── Dockerfile ├── LICENSE ├── MAINTAINERS.md ├── Makefile ├── NEWS ├── NOTICE ├── README.md ├── code-of-conduct.md ├── config ├── astyaml │ └── astyaml.go ├── config.go ├── config_test.go ├── platform │ └── platform.go ├── templating │ ├── templating.go │ └── templating_test.go └── types │ ├── common.go │ ├── config.go │ ├── converter.go │ ├── disks.go │ ├── docker.go │ ├── etcd.go │ ├── files.go │ ├── filesystems.go │ ├── flannel.go │ ├── locksmith.go │ ├── locksmith_test.go │ ├── networkd.go │ ├── passwd.go │ ├── raid.go │ ├── security.go │ ├── storage.go │ ├── systemd.go │ ├── update.go │ ├── update_test.go │ ├── util │ ├── unit.go │ └── unit_test.go │ └── verification.go ├── doc ├── configuration.md ├── dynamic-data.md ├── examples.md ├── getting-started.md ├── operators-notes.md ├── overview.md ├── production-users.md └── release_checklist.md ├── docker-build ├── docker-push ├── git-version ├── go.mod ├── go.sum ├── internal ├── main.go ├── util │ ├── tools │ │ └── docs.go │ └── type_casts.go └── version │ └── version.go ├── release.sh ├── test └── vendor ├── github.com ├── ajeddeloh │ └── go-json │ │ ├── OWNERS │ │ ├── README │ │ ├── decode.go │ │ ├── encode.go │ │ ├── fold.go │ │ ├── indent.go │ │ ├── scanner.go │ │ ├── stream.go │ │ └── tags.go ├── alecthomas │ └── units │ │ ├── COPYING │ │ ├── README.md │ │ ├── bytes.go │ │ ├── doc.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── si.go │ │ └── util.go ├── coreos │ ├── go-semver │ │ ├── LICENSE │ │ ├── NOTICE │ │ └── semver │ │ │ ├── semver.go │ │ │ └── sort.go │ └── go-systemd │ │ ├── LICENSE │ │ ├── NOTICE │ │ └── unit │ │ ├── deserialize.go │ │ ├── escape.go │ │ ├── option.go │ │ └── serialize.go ├── davecgh │ └── go-spew │ │ ├── LICENSE │ │ └── spew │ │ ├── bypass.go │ │ ├── bypasssafe.go │ │ ├── common.go │ │ ├── config.go │ │ ├── doc.go │ │ ├── dump.go │ │ ├── format.go │ │ └── spew.go ├── flatcar │ └── ignition │ │ ├── LICENSE │ │ ├── NOTICE │ │ └── config │ │ ├── shared │ │ ├── errors │ │ │ └── errors.go │ │ └── validations │ │ │ └── unit.go │ │ ├── v2_3 │ │ └── types │ │ │ ├── ca.go │ │ │ ├── config.go │ │ │ ├── directory.go │ │ │ ├── disk.go │ │ │ ├── file.go │ │ │ ├── filesystem.go │ │ │ ├── ignition.go │ │ │ ├── mode.go │ │ │ ├── node.go │ │ │ ├── partition.go │ │ │ ├── passwd.go │ │ │ ├── path.go │ │ │ ├── raid.go │ │ │ ├── schema.go │ │ │ ├── unit.go │ │ │ ├── url.go │ │ │ └── verification.go │ │ └── validate │ │ ├── astjson │ │ └── node.go │ │ ├── astnode │ │ └── astnode.go │ │ ├── report │ │ └── report.go │ │ └── validate.go ├── pmezard │ └── go-difflib │ │ ├── LICENSE │ │ └── difflib │ │ └── difflib.go ├── stretchr │ └── testify │ │ ├── LICENSE │ │ └── assert │ │ ├── assertion_compare.go │ │ ├── assertion_format.go │ │ ├── assertion_format.go.tmpl │ │ ├── assertion_forward.go │ │ ├── assertion_forward.go.tmpl │ │ ├── assertion_order.go │ │ ├── assertions.go │ │ ├── doc.go │ │ ├── errors.go │ │ ├── forward_assertions.go │ │ └── http_assertions.go └── vincent-petithory │ └── dataurl │ ├── LICENSE │ ├── README.md │ ├── dataurl.go │ ├── doc.go │ ├── lex.go │ ├── rfc2396.go │ └── wercker.yml ├── go4.org ├── AUTHORS ├── LICENSE └── errorutil │ └── highlight.go ├── gopkg.in └── yaml.v3 │ ├── LICENSE │ ├── NOTICE │ ├── README.md │ ├── apic.go │ ├── decode.go │ ├── emitterc.go │ ├── encode.go │ ├── go.mod │ ├── parserc.go │ ├── readerc.go │ ├── resolve.go │ ├── scannerc.go │ ├── sorter.go │ ├── writerc.go │ ├── yaml.go │ ├── yamlh.go │ └── yamlprivateh.go └── modules.txt /.github/workflows/docker.yml: -------------------------------------------------------------------------------- 1 | name: Build docker image 2 | on: 3 | push: 4 | tags: 5 | - v* 6 | env: 7 | REGISTRY: ghcr.io 8 | IMAGE_NAME: flatcar/ct 9 | 10 | jobs: 11 | docker: 12 | runs-on: ubuntu-latest 13 | permissions: 14 | contents: read 15 | packages: write 16 | steps: 17 | 18 | - name: Get tag name 19 | id: meta 20 | uses: docker/metadata-action@v3 21 | with: 22 | images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} 23 | 24 | - name: Checkout repository 25 | uses: actions/checkout@v2 26 | 27 | - name: Setup QEMU 28 | uses: docker/setup-qemu-action@v1 29 | with: 30 | platforms: all 31 | 32 | - name: Set up Docker Buildx 33 | uses: docker/setup-buildx-action@v1 34 | 35 | - name: Login to registry 36 | uses: docker/login-action@v1 37 | with: 38 | registry: ${{ env.REGISTRY }} 39 | username: ${{ github.actor }} 40 | password: ${{ secrets.GITHUB_TOKEN }} 41 | 42 | - name: Build and push 43 | uses: docker/build-push-action@v2 44 | with: 45 | context: . 46 | push: true 47 | platforms: linux/amd64,linux/arm64/v8 48 | tags: ${{ steps.meta.outputs.tags }} 49 | labels: ${{ steps.meta.outputs.labels }} 50 | -------------------------------------------------------------------------------- /.github/workflows/go.yml: -------------------------------------------------------------------------------- 1 | name: Go 2 | 3 | on: 4 | push: 5 | branches: [ flatcar-master ] 6 | pull_request: 7 | branches: [ flatcar-master ] 8 | 9 | jobs: 10 | 11 | build: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v2 15 | 16 | - name: Set up Go 17 | uses: actions/setup-go@v2 18 | with: 19 | go-version: 1.17 20 | 21 | - name: Build 22 | run: make all 23 | 24 | - name: Test 25 | run: make test 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | gopath/ 3 | *.swp 4 | _output/ 5 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | services: 4 | - docker 5 | 6 | go: 7 | - 1.7 8 | - 1.8 9 | install: 10 | - 11 | script: 12 | - ./test 13 | - ./docker-build 14 | deploy: 15 | provider: script 16 | script: ./docker-push 17 | skip_cleanup: true 18 | on: 19 | branch: master 20 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | CoreOS projects are [Apache 2.0 licensed](LICENSE) and accept contributions via 4 | GitHub pull requests. This document outlines some of the conventions on 5 | development workflow, commit message formatting, contact points and other 6 | resources to make it easier to get your contribution accepted. 7 | 8 | # Certificate of Origin 9 | 10 | By contributing to this project you agree to the Developer Certificate of 11 | Origin (DCO). This document was created by the Linux Kernel community and is a 12 | simple statement that you, as a contributor, have the legal right to make the 13 | contribution. See the [DCO](DCO) file for details. 14 | 15 | # Email and Chat 16 | 17 | The project currently uses the general CoreOS email list and IRC channel: 18 | - Email: [coreos-dev](https://groups.google.com/forum/#!forum/coreos-dev) 19 | - IRC: #[coreos](irc://irc.freenode.org:6667/#coreos) IRC channel on freenode.org 20 | 21 | Please avoid emailing maintainers found in the MAINTAINERS file directly. They 22 | are very busy and read the mailing lists. 23 | 24 | ## Getting Started 25 | 26 | - Fork the repository on GitHub 27 | - Read the [README](README.md) for build and test instructions 28 | - Play with the project, submit bugs, submit patches! 29 | 30 | ## Contribution Flow 31 | 32 | This is a rough outline of what a contributor's workflow looks like: 33 | 34 | - Create a topic branch from where you want to base your work (usually master). 35 | - Make commits of logical units. 36 | - Make sure your commit messages are in the proper format (see below). 37 | - Push your changes to a topic branch in your fork of the repository. 38 | - Make sure the tests pass, and add any new tests as appropriate. 39 | - Submit a pull request to the original repository. 40 | 41 | Thanks for your contributions! 42 | 43 | ### Format of the Commit Message 44 | 45 | We follow a rough convention for commit messages that is designed to answer two 46 | questions: what changed and why. The subject line should feature the what and 47 | the body of the commit should describe the why. 48 | 49 | ``` 50 | scripts: add the test-cluster command 51 | 52 | this uses tmux to setup a test cluster that you can easily kill and 53 | start for debugging. 54 | 55 | Fixes #38 56 | ``` 57 | 58 | The format can be described more formally as follows: 59 | 60 | ``` 61 | : 62 | 63 | 64 | 65 |