This is a summary of the system setup used for the demonstration on 2016-07-18.
This was put together with the following intent:
- It must build upon an unmodified CoreOS user space image.
FROM python:2.7-alpine | |
MAINTAINER Tom Taylor <[email protected]> | |
EXPOSE 2379 2380 | |
ENV ETCD_VER=v2.3.7 | |
RUN apk --update --no-cache --virtual .builddeps add curl tar && \ | |
curl -Lso etcd-${ETCD_VER}-linux-amd64.tar.gz https://github.com/coreos/etcd/releases/download/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz && \ | |
tar zxf etcd-${ETCD_VER}-linux-amd64.tar.gz etcd-${ETCD_VER}-linux-amd64/etcd && \ | |
mv etcd-${ETCD_VER}-linux-amd64/etcd / && \ |
{ | |
"ignition": { "version": "2.0.0" }, | |
"systemd": { | |
"units": [ | |
{ | |
"name": "auto-update-kmods.service", | |
"enable": true, | |
"contents": "[Unit]\nDescription=Install custom kernel modules\nAfter=lib-modules.mount network-online.target\nRequires=lib-modules.mount network-online.target\nConditionPathExists=!/opt/modules/%v\nConditionPathExistsGlob=/lib/modules/auto-update-kmods.d/*.sh\n\n[Service]\nType=oneshot\nExecStart=/bin/bash -ex /lib/modules/auto-update-kmods.sh\n\n[Install]\nWantedBy=multi-user.target\n" | |
}, | |
{ |
Download and start the CoreOS development image in a container. Make sure to bind writable directories over the kernel's build and install paths.
wget 'http://alpha.release.core-os.net/amd64-usr/current/coreos_developer_container.bin.bz2'
bzcat coreos_developer_container.bin.bz2 > coreos_developer_container.bin
mkdir boot modules src
sudo systemd-nspawn \
--bind="$PWD/boot:/boot" \
--bind="$PWD/modules:/lib/modules" \
--bind="$PWD/src:/usr/src" \
cloud-init
is absolute cancer. Its code is horrible. It has no documentation at all.
It took me 5 fucking hours to figure out how to properly configure networking on recent
cloud-init
(Ubuntu 16.04 cloud image
) with local datasource.
It's not mentioned anywhere you need to provide dsmode: local
. (but only if you need network-config,
besides that everything is fine; someone below noted that -m
flag does the same thing, good to know) Of course nobody needs documentation for network-config
format
either. (cloudinit/net/__init__.py
is a protip, enjoy the feces dive)
Oh, and by the way - no, it's not possible to provide network-config
to uvt-kvm
without patching shit.
#!/usr/bin/env python | |
"""Convert CSV policies into AWS JSON format.""" | |
import json | |
import csv | |
POLICIES = 'terraform.csv' | |
CRUD_COL = 2 | |
ACTION_COL = 3 |
├───documentation | |
├───main | |
│ ├───cloudtrail | |
│ │ └───.terraform | |
│ │ └───modules | |
│ │ ├───4e1258f2bc21b16a94b1b7016b348677 | |
│ │ ├───a63ab54511b78a26730afea9a88c5f8b | |
│ │ └───e83e335c08d98f69881974a2c0864a0d | |
│ ├───iam | |
│ │ └───.terraform |
#!/usr/bin/env bash | |
# | |
# gh-dl-release! It works! | |
# | |
# This script downloads an asset from latest or specific Github release of a | |
# private repo. Feel free to extract more of the variables into command line | |
# parameters. | |
# | |
# PREREQUISITES | |
# |