Preamble: This is NOT going to be a generally supported (for paying OCP customers) component. The support scope only extents to the degree of usage of this component as part of the Disconnected Mirroring Appliance (see
PROJQUAY-1453). However this component also represents a stab at making running a small Quay deployment as easy as possible for upstream users (not necessarily developers), with the hope that as much of this component is reused in a general purpose AiO Quay installer at a later point.
Customer Problem: Installing Quay, even on a single node, is a multi-step process with lots of choices. If I want to start quickly because I just need a registry for a limited use case, limited amount of time or simply to start doing a PoC I have no choice other than to deploy and configure all components manually. At the minimum I want to be able to install Quay in a small scale, usable setup with pre-configured local storage, local database, selected Quay features, pre-configured user credentials and access permissions with a single set of inputs and no additional configuration choices to get up and running.
Goal: Provide a community, end-user and automation-friendly installer that deploys Quay with a defined feature set in a single-node environment quickly and repeatedly.
Why is this important: The manual, multi-step deployment flow of Quay today is an adoption barrier to Quay upstream and in the enterprise and also limits the usefulness of Quay in an appliance or automation context. While the configurability is certainly needed for scalable, resilient, larger production deployments, it is overkill for single-node install often found in pilot environment, developer workstations or automation environments like pipelines or appliances. Specifically the goal of easily creating an offline mirror of all OpenShift release content to support customers running in restricted network environments is hampered by the lack to fully automatically install a functional Quay.
- all-in-one installer that deploys single node quay with local database and local storage
- installer allows a limit set of optional configuration inputs like service fqdn, superuser name and password (tbd), custom TLS certis, and potentially mirroring support on/off which simply overwrite defaults or auto-generated data
- all-in-one installer configures mirroring and starts up mirroring workers if required for mirroring OCP payloads
- all-in-one installer uses a pre-determined network configuration
- all-in-one installer reports deployed component credentials, URIs, etc upon success
- all-in-one installer is idempotent where possible
- the installer should be based on technology commonly available in a supported form in the Red Hat ecosystem (Ansible, podman, podman-compose, ...)
- all-in-one installer is a downloadable (and ideally executable artifact) from the OCP 4 content mirror (where oc, openshift-install, etc are distributed)