{"id":18074354,"url":"https://github.com/zellyn/bundlewrap-config","last_synced_at":"2025-04-12T05:52:21.359Z","repository":{"id":54495352,"uuid":"336018627","full_name":"zellyn/bundlewrap-config","owner":"zellyn","description":"bundlewrap.org config for my raspberry pis","archived":false,"fork":false,"pushed_at":"2024-01-21T20:50:48.000Z","size":25,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T05:52:09.760Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zellyn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-04T16:44:43.000Z","updated_at":"2024-01-21T21:10:15.000Z","dependencies_parsed_at":"2024-10-31T10:12:27.055Z","dependency_job_id":"0228706b-89a0-4bb4-b1ff-5e91c8579254","html_url":"https://github.com/zellyn/bundlewrap-config","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zellyn%2Fbundlewrap-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zellyn%2Fbundlewrap-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zellyn%2Fbundlewrap-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zellyn%2Fbundlewrap-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zellyn","download_url":"https://codeload.github.com/zellyn/bundlewrap-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248525156,"owners_count":21118616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-31T10:12:21.160Z","updated_at":"2025-04-12T05:52:21.315Z","avatar_url":"https://github.com/zellyn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bundlepi\n[bundlewrap.org](https://bundlewrap.org) config for my raspberry pis.\n\nThis is Zellyn's bundlewrap configuration for his Raspberry Pis. Feel free to use any or all of it if it useful to you. It is likely to be of varying quality, as I am new to bundlewrap.\n\nI have four Raspberry Pi 4s for a Kubernetes cluster, bought with a work-provided educational allowance. I also have a personal Raspberry Pi 4, and a Pi Zero W. I manage all through bundlewrap: the division should be clear in `groups.py`.\n\nThe notes we're taking as we configure Raspberry Pi Kubernetes clusters are [here](https://docs.google.com/document/d/12TT49VgyPRSH7F4b_oC5rOv1Ag7RPxmSNAWbJjf3RF4).\n\n# Miscellaneous notes\n\n### Dumping file contents and other general debugging\n```\nbw items katespi1\nbw items -f katespi1 file:/etc/keepalived/keepalived.conf\nbw items -f katespi1 file:/etc/systemd/system/k3s.service\nbw debug -c 'print(repo.vault.password_for(\"foobarbaz\"))'\n```\n\n## Accessing your cluster with kubectl\n\nCopy the cluster, context, and user from `/etc/rancher/k3s/k3s.yaml` on the\ncontrol-plane server into the relevant sections of `~/.kube/config`, renaming\n`default` to `katespi` (or whatever you want) everywhere.\n\n## How my cluster is set up with keepalived, etc.\n\n# Notes as I go\n\n- simpleserver/build.sh will build a hello-world http server on port 8080 for arm64, putting it in bin/simpleserver\n- how to build an arm64 docker image?\n  - build it `FROM scratch`… why not - it doesn't do anything yet, and we can\n    use the [golang-docker-scratch\n    recipe](https://github.com/jeremyhuiskamp/golang-docker-scratch) later if we\n    need tzdata.\n- how to let the k8s cluster find it?\n  - use docker hub for now:\n\n    ```\n    docker build -t simpleserver .\n    docker image tag simpleserver:latest zellyn/katespi:simpleserver-latest\n    docker push zellyn/katespi:simpleserver-latest\n    ```\n  - maybe set up a private registry on the cluster in the future?\n\n\n# TODOs\n\n- [ ] Add `libjson-any-perl` apt module to ddclient bundle\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzellyn%2Fbundlewrap-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzellyn%2Fbundlewrap-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzellyn%2Fbundlewrap-config/lists"}