The purpose of this repo is to have an automated way to setup a RaspberryPi just the way I want. Things I like:
Most of the technologies above are not pre-built for arm
architectures, so
this repository is intended to help ease the setup and installation of those
technologies on a RaspberryPi.
git clone https://github.com/micahhausler/rpi-automation.git
cd rpi-automation
./setup.sh
INSTALL_PYTHON
- Whether to install python. Any other value besides 'true' will skip the install (defaults to 'true')PYTHON_VERSION
- The python version to install (defaults to3.6.2
)GITHUB_USERNAME
- The username of the github user to fetch the SSH keys. Omitting this env var will not fetch any keys.INSTALL_DOCKER
- Whether to install docker. Any other value besides 'true' will skip the install (defaults to 'true')INSTALL_GO
- Whether to install Go. Any other value besides 'true' will skip the install (defaults to 'true')GO_VERSION
- The go version to install (defaults to1.8.3
)INSTALL_HW_CLOCK
- Whether to install a hardware clock. Any other value besides 'true' will skip the install (defaults to 'true')HW_CLOCK_MODEL
- The model of hardware clock. (defaults topcf8523
)SYNC_HW_CLOCK
- Whether to sync a hardware clock. Any other value besides 'true' will skip the sync (defaults to 'true')
Things to automate:
- passwd reset
- dotfiles
- ssh key setup (from github?)
- pkg installs
- Go install
- Docker install
- run docker with
--experimental --metrics-addr 127.0.0.1:9000
- rewrite docker systemd to accept drop-ins
- Mount docker to alternative volume
- Prometheus arm7 container
- prom/node_exporter arm7 container
- cadvisor arm7 container
- Prometheus volume/storage management (probably use a usb stick, mount that)
- Prometheus graphs
- upload ARM binaries to s3
-
sudo genman /usr/share/man/man1/ kube*
-
kubectl completion bash > /etc/bash_completion.d/kubectl
- CFSSL created CA
- CFSSL Server
- etcd v3 server
Once you’ve implemented a bug fix or feature, please use the following commit message format. In order to track and summarize the changes, we could use a changelog automation tool called clog which scrapes information from commit messages. We follow the ‘conventional’ commit message format.
As a summary, messages should be formatted like:
<type>(<scope>): <subject>
<empty line>
<body>
<empty line>
<footer>
Type | Purpose |
---|---|
feat | A new feature. Please also link to the issue (in the body) if applicable. Causes a minor version bump. |
fix | A bug fix. Please also link to the issue (in the body) if applicable. |
docs | A documentation change. |
style | A code change that does not affect the meaning of the code, (e.g. indentation). |
refactor | A code change that neither fixes a bug or add a feature. |
perf | A code change that improves performance. |
test | Adding missing tests. |
chore | Changes to build process or auxiliary tools or libraries such as documentation generation. |
config | Changes to configurations that have tangible effects on users, (e.g. renaming properties, changing defaults, etc). |