rch/platform-config
1
0
Fork
You've already forked platform-config
0
Public Ansible configuration for platform hosts, services, and safe example inventories.
  • Jinja 76%
  • Shell 9.5%
  • Makefile 8.4%
  • CSS 6.1%
rch 2ecfdb016a fix: Add Zot registry exposure guard
Require Zot deployments to use auth, managed source allowlists, or an
explicit development override before broad anonymous exposure.
Run Ansible and lint tooling through a Podman dev container so local
validation does not install project Python packages on the host.
2026年07月09日 20:43:50 +02:00
assets/brand chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
docs fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
examples chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
inventories fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
migrations chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
playbooks fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
roles fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
scripts fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
tests chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
vendor chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
.ansible-lint chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
.containerignore fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
.gitignore chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
.gitmessage chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
.gitmodules chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
.yamllint chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
AGENTS.md fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
ansible.cfg chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
CHANGELOG.md fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
Containerfile.dev fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
LICENSE docs: Update v1.0.0 release docs 2026年07月09日 15:10:24 +02:00
Makefile fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
NEWS.md fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
README.md fix: Add Zot registry exposure guard 2026年07月09日 20:43:50 +02:00
requirements-dev.txt chore: Add initial platform config 2026年07月09日 14:07:38 +02:00
requirements.yml chore: Add initial platform config 2026年07月09日 14:07:38 +02:00

platform-config logo

platform-config

Public Ansible configuration for platform hosts, services, and safe example inventories.


platform-config configures already-provisioned hosts with Ansible. It contains public playbooks, roles, examples, helper scripts, and documentation for production-oriented operating system and service configuration.

The repository is one part of a split platform project. Template building, infrastructure provisioning, system configuration, Kubernetes bastion tooling, documentation, and shared helper tools live in separate repositories so each layer can evolve independently. Site-specific and personal configuration stays outside this public repository.

Scope

This repository owns public Ansible code: playbooks, roles, examples, helper scripts, and documentation.

It configures already-provisioned hosts. It does not create VMs, build Proxmox templates, manage OpenTofu state, or store secrets.

Only safe examples belong here. Real inventories, host variables, access policies, CA certificates, and non-secret environment-specific configuration belong in ../platform-private/config/; real kubeconfigs, tokens, passwords, private keys, and other secrets belong outside Git.

Working plans, test plans, incident notes, and environment-specific operational notes belong in ../platform-plans/config/plans/, not in this public repo.

Requirements

  • Podman for the development/tooling container.
  • Git and Make for local setup and helper targets.
  • Ansible and lint tooling installed inside Containerfile.dev from requirements-dev.txt and requirements.yml.
  • The vendor/platform-k8s-bastion submodule for default bastion runtime input.
  • SSH access, host keys, private inventory, and secret files for real runs.

Quick Start

Clone submodules and build the local development container:

git submodule update --init --recursive
make deps
make help

Open an interactive toolbox shell when you need to run Ansible or lint tooling without installing those dependencies on the host:

make shell

For real runs, source the matching private environment file and run a helper script. homelab is one example environment name; use the environment name from your private configuration layout.

source ../platform-private/config/homelab.ansible.env
./scripts/run-homelab.sh

The helper scripts also accept explicit inventory overrides when needed.

For the full environment bring-up order, SSH key handoff, secrets layout, and service smoke commands, see Operator runbook.

Common Commands

make help
make syntax ENV=dev
make check ENV=dev
make lint
make yamllint
make verify
make smoke-k8s-bastion ENV=dev

Most Make targets accept ENV, PLAYBOOK, LIMIT, and EXTRA_ARGS. Real runs require the matching private environment file and inventory.

Platform Project

Repository Purpose
platform-template-builder Builds reusable Proxmox VM templates from cloud images.
platform-infra Provisions platform infrastructure with OpenTofu.
platform-config Configures operating systems and services with Ansible.
platform-k8s-bastion Contains Kubernetes bastion tooling and operational helpers.
platform-docs Contains architecture notes, runbooks, diagrams, and operational documentation.
platform-tools Provides shared optional helper tools used by the platform repositories.

Typical workflow:

platform-template-builder
 -> platform-infra
 -> platform-config
 -> platform-k8s-bastion
platform-tools provides optional shared helper commands.
platform-docs documents the design and operations across all repositories.

Documentation

License

This project is licensed under the MIT License. See LICENSE for details.