Mirror Registry is a CLI tool for installing Quay container registry on RHEL/Fedora hosts. It provides a simple way to set up a local registry for mirroring OpenShift container images, particularly for disconnected/air-gapped environments.
Repository: https://github.com/quay/mirror-registry
- Language: Go 1.21+ (Cobra CLI)
- Deployment: Ansible (via ansible-runner)
- Containers: Podman, systemd user services
- Target OS: RHEL, Fedora
# Build binary
make build-golang-executable
# Build installers
make build-online-zip # Online installer
make build-offline-zip # Offline installer (air-gapped)
# CLI usage
./mirror-registry install [flags]
./mirror-registry upgrade [flags]
./mirror-registry uninstall [flags]Read the specific documentation below when your task involves these keywords:
-
Architecture, CLI, Go, Cobra, Ansible, Roles, Code, Structure →
agent_docs/architecture.md- Project structure, Go CLI commands, Ansible playbook flow
-
Release, Build, Tags, Versioning, Images →
agent_docs/ops.md- Build process, release workflow, image configuration
-
Testing, CI/CD, GitHub Actions, Integration Tests, Vagrant →
agent_docs/testing.md- CI pipeline, integration test scenarios, test infrastructure
| Purpose | Path |
|---|---|
| CLI entry point | main.go |
| CLI commands | cmd/*.go |
| Image versions | .env |
| Build targets | Makefile |
| CI workflow | .github/workflows/jobs.yml |
| Ansible playbooks | ansible-runner/context/app/project/*.yml |
| Ansible role | ansible-runner/context/app/project/roles/mirror_appliance/ |
- Go style: Standard library preferred, idiomatic Go patterns
- Ansible: Follow existing role structure in
mirror_appliance - Testing: PRs require
ok-to-testlabel for CI integration tests - Safety: Never commit credentials or secrets