├── .github └── workflows │ ├── cherry-pick.yml │ ├── ci.yml │ └── preview.yml ├── .gitignore ├── .gitleaks.toml ├── .s2i ├── bin │ └── assemble └── httpd-cfg │ └── 01-default.conf ├── .vale.ini ├── .vale └── styles │ └── Vocab │ └── OpenShiftDocs │ ├── accept.txt │ └── reject.txt ├── .vscode └── settings.json ├── Gemfile ├── Makefile ├── README.adoc ├── README.md ├── _redirects ├── access_permissions_management ├── docinfo.xml ├── master.adoc └── modules ├── api-v2-public.yaml ├── api ├── docinfo.xml ├── master.adoc └── modules ├── api_reference ├── docinfo.xml ├── master.adoc └── modules ├── architecture ├── docinfo.xml ├── images ├── master.adoc └── modules ├── build_docs ├── build_quay ├── docinfo.xml ├── master.adoc └── modules ├── builders_and_image_automation ├── docinfo.xml ├── master.adoc └── modules ├── clair ├── docinfo.xml ├── master.adoc └── modules ├── config_quay ├── docinfo.xml ├── master.adoc └── modules ├── deploy_quay ├── docinfo.xml ├── master.adoc └── modules ├── deploy_quay_ha ├── docinfo.xml ├── master.adoc └── modules ├── deploy_quay_on_openshift_op_tng ├── docinfo.xml ├── master.adoc └── modules ├── deploy_red_hat_quay_operator ├── docinfo.xml ├── master.adoc └── modules ├── deployment-template.yml ├── docs ├── api-v2-public.json ├── api-v2.md └── index.md ├── early_access ├── docinfo.xml ├── master.adoc └── modules ├── images ├── 178_Quay_architecture_0821_air-gapped.png ├── 178_Quay_architecture_0821_deploy_topology.png ├── 178_Quay_architecture_0821_deploy_topology_storage.png ├── 178_Quay_architecture_0821_deployment_ex1.png ├── 178_Quay_architecture_0821_deployment_ex2.png ├── 178_Quay_architecture_0821_features.png ├── 178_Quay_architecture_0821_georeplication.png ├── 178_Quay_architecture_0821_georeplication_openshift-temp.png ├── 178_Quay_architecture_0821_georeplication_openshift.png ├── 178_Quay_architecture_0821_on-premises_config.png ├── 178_Quay_architecture_0821_on_AWS.png ├── 178_Quay_architecture_0821_on_Azure.png ├── 178_Quay_architecture_0821_tenancy_model.png ├── 38-ui-toggle.png ├── Figure00.png ├── Figure00x.png ├── Figure01.png ├── Figure02.png ├── Figure03.png ├── Figure04.png ├── Figure05.png ├── add-custom-invoice-field.png ├── add-superuser.png ├── air-gap.png ├── alerting-rules.png ├── api-mirror.png ├── application-token.png ├── august-receipt.png ├── authentication-ldap-admin-dn.png ├── authentication-ldap-basedn.png ├── authentication-ldap-ssl.png ├── authentication-ldap-success.png ├── authentication-ldap-team-sync-1.png ├── authentication-ldap-team-sync-2.png ├── authentication-ldap-uid-mail.png ├── authentication-ldap-uri.png ├── authentication-ldap-user-filter.png ├── authentication-ldap.png ├── auto-prune-policies-page.png ├── build-history.png ├── build-trigger-example.png ├── cache-proxy-overview.png ├── cache-proxy-pulled-image.png ├── cache-proxy-staleness-pull.png ├── choose-dashboard.png ├── clair-4-0-cve-report.png ├── clair-4-2-enrichment-data.png ├── clair-core-architecture.png ├── clair-reposcan.png ├── clair-vulnerabilities.png ├── config-editor-details-openshift.png ├── config-editor-details-operator-36.png ├── config-editor-reconfigure.png ├── config-editor-reconfigured.png ├── config-editor-secret-reveal.png ├── config-editor-secret-updated.png ├── config-editor-secret.png ├── config-editor-su.png ├── config-editor-ui.png ├── configtoolroute.png ├── configtoolsetup.png ├── configure-tagging.png ├── confirm-ldap-username.png ├── console-dashboard-1.png ├── create-account-1.png ├── create-account-2.png ├── create-account-3.png ├── create-build-trigger.png ├── create-new-message.png ├── create-new-org.png ├── cso-dashboard.png ├── cso-namespace-vulnerable.png ├── cso-registry-vulnerable.png ├── custom-tagging.png ├── delete-custom-invoice-field.png ├── e2e-demo-httpd-example.png ├── elasticsearch_action_logs.png ├── enable-bittorrent.png ├── enable-build.png ├── enable-security-scanning.png ├── enable-trigger.png ├── event-select.png ├── export-usage-logs.png ├── garbage-collection-metrics.png ├── generate-token.png ├── georeplication-arch.png ├── georeplication-aws.png ├── grant-user-access.png ├── healthcheck.png ├── https-browser.png ├── image-fetch.png ├── installed-operators-list.png ├── kinesis_producer.png ├── ldap-internal-authentication.png ├── listeners.png ├── logs.png ├── logsv2-ui.png ├── mail-attribute-ldap.png ├── manifest-deletion-architecture.png ├── manifest-example.png ├── metadata-request.png ├── metrics-single-namespace-users.png ├── metrics-single-namespace.png ├── modelcard.png ├── new-org.png ├── newapp.png ├── notification-follow.png ├── notification-profile.png ├── operator-config-bundle-edit-secret.png ├── operator-install-page.png ├── operator-quay-registry-overview.png ├── operator-save-config-changes.png ├── operator-subscription.png ├── operatorhub-quay.png ├── permanently-delete-image-tag.png ├── poc-clair-1.png ├── poc-clair-2.png ├── poc-quay-scanner-config.png ├── proxy-cache-size-configuration.png ├── public-cloud-aws.png ├── public-cloud-azure.png ├── quay-builds-architecture.png ├── quay-deployment-example-one.png ├── quay-deployment-example-two.png ├── quay-deployment-topology-storage-proxy.png ├── quay-deployment-topology.png ├── quay-features.png ├── quay-hybrid-cloud-landing-page.png ├── quay-metrics-org-rows.png ├── quay-metrics.png ├── quay-pod-frequently-restarting.png ├── quay-sample-sizing.png ├── quay-setup-operator-openshift.png ├── quay-tenancy-model.png ├── quayio-footer.png ├── quayio-header.png ├── quayio-repo-landing-page.png ├── quota-100MB-empty.png ├── quota-100MB-settings-ui.png ├── quota-10MB-empty.png ├── quota-first-image.png ├── quota-limits.png ├── quota-management.png ├── quota-no-quota.png ├── quota-none-org-settings.png ├── quota-notifications.png ├── quota-org-consumed-first.png ├── quota-org-consumed-second.png ├── quota-org-init-consumed.png ├── quota-org-quota-policy.png ├── quota-su-consumed-first.png ├── quota-su-increase-100MB.png ├── quota-su-init-10MB.png ├── quota-su-init-consumed.png ├── quota-su-org-options.png ├── quota-su-reject-80.png ├── quota-su-warning-70.png ├── register-app.png ├── repo-create.png ├── repo-mirror-details-start.png ├── repo-mirror-details.png ├── repo-mirror-tags.png ├── repo-mirror-usage-logs.png ├── repo-permissions.png ├── repo_mirror_config.png ├── repo_mirror_create.png ├── repo_mirror_logs.png ├── repo_mirror_robot_assign.png ├── repo_mirror_robot_perm.png ├── repo_mirror_view.png ├── repo_quay_rhel8.png ├── restart-container.png ├── robot-gen-token.png ├── sample-on-prem.png ├── save-configuration.png ├── scheduled-maintenance-banner.png ├── security-scanner-enabled.png ├── security-scanner-endpoint.png ├── security-scanner-generate-shared-dialog.png ├── security-scanner-generate-shared.png ├── security-scanner-service-awaiting-key.png ├── security-scanner-service-provide-key.png ├── security-scanner-shared-key.png ├── server-config.png ├── set-repository-permissions-robot-account.png ├── set-team-role.png ├── splunk-log-metadata.png ├── squash_image.png ├── ssl-config.png ├── ssl-connection-not-private.png ├── ssl-connection-not-secure.png ├── ssl-connection-secure.png ├── ssl-potential-risk.png ├── super-user-admin-panel.png ├── superuser-user-settings.png ├── superuser.png ├── swagger-mirroring.png ├── tag-expiration-v2-ui.png ├── tag-expires-ui.png ├── tag-operations.png ├── toggle-legacy-ui.png ├── total-quota-consumed.png ├── total-registry-size.png ├── ui-access-settings.png ├── ui-action-log-choice.png ├── ui-action-log-database.png ├── ui-action-log-elastic.png ├── ui-action-log-rotation-storage-choice.png ├── ui-action-log-rotation.png ├── ui-app-registry.png ├── ui-auth-external-app.png ├── ui-auth-jwt.png ├── ui-auth-keystone.png ├── ui-auth-ldap.png ├── ui-basic-config-contact-info.png ├── ui-basic-config.png ├── ui-custom-ssl-certs-uploaded.png ├── ui-custom-ssl-certs.png ├── ui-data-consistency.png ├── ui-database-choice.png ├── ui-database-postgres.png ├── ui-dockerfile-build-bitbucket.png ├── ui-dockerfile-build-github.png ├── ui-dockerfile-build-gitlab.png ├── ui-dockerfile-build.png ├── ui-email.png ├── ui-internal-authentication-choice.png ├── ui-internal-authentication.png ├── ui-monitor-deploy-done.png ├── ui-monitor-deploy-events.png ├── ui-monitor-deploy-quay-min.png ├── ui-monitor-deploy-streaming-events.png ├── ui-monitor-deploy-update.png ├── ui-monitor-done.png ├── ui-oauth-github.png ├── ui-oauth-google.png ├── ui-redis.png ├── ui-repo-mirroring.png ├── ui-security-scanner-psk.png ├── ui-security-scanner.png ├── ui-server-config-no-tls.png ├── ui-server-config-tls-choice.png ├── ui-server-config-tls.png ├── ui-storage-azure.png ├── ui-storage-ceph.png ├── ui-storage-choice.png ├── ui-storage-cloudfront.png ├── ui-storage-google.png ├── ui-storage-local.png ├── ui-storage-noobaa.png ├── ui-storage-s3.png ├── ui-storage-swift.png ├── ui-time-machine-add.png ├── ui-time-machine.png ├── uid-attribute-ldap.png ├── update-channel-approval-strategy.png ├── updated-layers-in-cache.png ├── user-options.png ├── user-relative-dn.png ├── view-credentials-dropdown.png ├── view-credentials.png ├── view-tags-set.png └── workers.png ├── manage_quay ├── docinfo.xml ├── master.adoc └── modules ├── mkdocs.yml ├── modules ├── about-clair.adoc ├── access-control-intro.adoc ├── accessing-swagger-ui.adoc ├── add-users-to-team.adoc ├── adding-a-new-tag-to-image-api.adoc ├── adding-a-new-tag-to-image.adoc ├── adding-ca-certs-to-config.adoc ├── adding-managing-labels-api.adoc ├── adding-managing-labels.adoc ├── adjust-access-user-repo-api.adoc ├── adjusting-repository-access-via-the-api.adoc ├── adjusting-repository-visibility-via-the-ui.adoc ├── advanced-quay-poc-deployment.adoc ├── airgap-clair.adoc ├── airgap-intro.adoc ├── allow-access-user-repo.adoc ├── api-appspecifictokens-createAppToken.adoc ├── api-appspecifictokens-getAppToken.adoc ├── api-appspecifictokens-listAppTokens.adoc ├── api-appspecifictokens-revokeAppToken.adoc ├── api-appspecifictokens.adoc ├── api-authorization.adoc ├── api-build-cancelRepoBuild.adoc ├── api-build-getRepoBuild.adoc ├── api-build-getRepoBuildLogs.adoc ├── api-build-getRepoBuildStatus.adoc ├── api-build-getRepoBuilds.adoc ├── api-build-requestRepoBuild.adoc ├── api-build.adoc ├── api-definitions.adoc ├── api-discovery-discovery.adoc ├── api-discovery.adoc ├── api-error-getErrorDescription.adoc ├── api-error.adoc ├── api-global-messages.adoc ├── api-globalmessages-createGlobalMessage.adoc ├── api-globalmessages-deleteGlobalMessage.adoc ├── api-globalmessages-getGlobalMessages.adoc ├── api-globalmessages.adoc ├── api-logs-exportOrgLogs.adoc ├── api-logs-exportRepoLogs.adoc ├── api-logs-exportUserLogs.adoc ├── api-logs-getAggregateOrgLogs.adoc ├── api-logs-getAggregateRepoLogs.adoc ├── api-logs-getAggregateUserLogs.adoc ├── api-logs-listOrgLogs.adoc ├── api-logs-listRepoLogs.adoc ├── api-logs-listUserLogs.adoc ├── api-logs.adoc ├── api-manifest-addManifestLabel.adoc ├── api-manifest-deleteManifestLabel.adoc ├── api-manifest-getManifestLabel.adoc ├── api-manifest-getRepoManifest.adoc ├── api-manifest-listManifestLabels.adoc ├── api-manifest.adoc ├── api-mirror-changeRepoMirrorConfig.adoc ├── api-mirror-createRepoMirrorConfig.adoc ├── api-mirror-getRepoMirrorConfig.adoc ├── api-mirror-syncCancel.adoc ├── api-mirror-syncNow.adoc ├── api-mirror.adoc ├── api-namespacequota-changeOrganizationQuota.adoc ├── api-namespacequota-changeOrganizationQuotaLimit.adoc ├── api-namespacequota-createOrganizationQuota.adoc ├── api-namespacequota-createOrganizationQuotaLimit.adoc ├── api-namespacequota-deleteOrganizationQuota.adoc ├── api-namespacequota-deleteOrganizationQuotaLimit.adoc ├── api-namespacequota-getOrganizationQuota.adoc ├── api-namespacequota-getOrganizationQuotaLimit.adoc ├── api-namespacequota-getUserQuota.adoc ├── api-namespacequota-getUserQuotaLimit.adoc ├── api-namespacequota-listOrganizationQuota.adoc ├── api-namespacequota-listOrganizationQuotaLimit.adoc ├── api-namespacequota-listUserQuota.adoc ├── api-namespacequota-listUserQuotaLimit.adoc ├── api-namespacequota.adoc ├── api-organization-changeOrganizationDetails.adoc ├── api-organization-createOrganization.adoc ├── api-organization-createOrganizationApplication.adoc ├── api-organization-createProxyCacheConfig.adoc ├── api-organization-deleteAdminedOrganization.adoc ├── api-organization-deleteOrganizationApplication.adoc ├── api-organization-deleteProxyCacheConfig.adoc ├── api-organization-getApplicationInformation.adoc ├── api-organization-getOrganization.adoc ├── api-organization-getOrganizationApplication.adoc ├── api-organization-getOrganizationApplications.adoc ├── api-organization-getOrganizationCollaborators.adoc ├── api-organization-getOrganizationMember.adoc ├── api-organization-getOrganizationMembers.adoc ├── api-organization-getProxyCacheConfig.adoc ├── api-organization-removeOrganizationMember.adoc ├── api-organization-updateOrganizationApplication.adoc ├── api-organization-validateProxyCacheConfig.adoc ├── api-organization.adoc ├── api-permission-changeTeamPermissions.adoc ├── api-permission-changeUserPermissions.adoc ├── api-permission-deleteTeamPermissions.adoc ├── api-permission-deleteUserPermissions.adoc ├── api-permission-getTeamPermissions.adoc ├── api-permission-getUserPermissions.adoc ├── api-permission-getUserTransitivePermission.adoc ├── api-permission-listRepoTeamPermissions.adoc ├── api-permission-listRepoUserPermissions.adoc ├── api-permission.adoc ├── api-policy-createOrganizationAutoPrunePolicy.adoc ├── api-policy-createRepositoryAutoPrunePolicy.adoc ├── api-policy-createUserAutoPrunePolicy.adoc ├── api-policy-deleteOrganizationAutoPrunePolicy.adoc ├── api-policy-deleteRepositoryAutoPrunePolicy.adoc ├── api-policy-deleteUserAutoPrunePolicy.adoc ├── api-policy-getOrganizationAutoPrunePolicy.adoc ├── api-policy-getRepositoryAutoPrunePolicy.adoc ├── api-policy-getUserAutoPrunePolicy.adoc ├── api-policy-listOrganizationAutoPrunePolicies.adoc ├── api-policy-listRepositoryAutoPrunePolicies.adoc ├── api-policy-listUserAutoPrunePolicies.adoc ├── api-policy-updateOrganizationAutoPrunePolicy.adoc ├── api-policy-updateRepositoryAutoPrunePolicy.adoc ├── api-policy-updateUserAutoPrunePolicy.adoc ├── api-policy.adoc ├── api-prototype-createOrganizationPrototypePermission.adoc ├── api-prototype-deleteOrganizationPrototypePermission.adoc ├── api-prototype-getOrganizationPrototypePermissions.adoc ├── api-prototype-updateOrganizationPrototypePermission.adoc ├── api-prototype.adoc ├── api-referrers-getReferrers.adoc ├── api-referrers.adoc ├── api-repository-changeRepoState.adoc ├── api-repository-changeRepoVisibility.adoc ├── api-repository-createRepo.adoc ├── api-repository-deleteRepository.adoc ├── api-repository-getRepo.adoc ├── api-repository-listRepos.adoc ├── api-repository-updateRepo.adoc ├── api-repository.adoc ├── api-repositorynotification-createRepoNotification.adoc ├── api-repositorynotification-deleteRepoNotification.adoc ├── api-repositorynotification-getRepoNotification.adoc ├── api-repositorynotification-listRepoNotifications.adoc ├── api-repositorynotification-resetRepositoryNotificationFailures.adoc ├── api-repositorynotification-testRepoNotification.adoc ├── api-repositorynotification.adoc ├── api-repotoken-changeToken.adoc ├── api-repotoken-createToken.adoc ├── api-repotoken-deleteToken.adoc ├── api-repotoken-getTokens.adoc ├── api-repotoken-listRepoTokens.adoc ├── api-repotoken.adoc ├── api-robot-createOrgRobot.adoc ├── api-robot-createOrgRobotFederation.adoc ├── api-robot-createUserRobot.adoc ├── api-robot-deleteOrgRobot.adoc ├── api-robot-deleteOrgRobotFederation.adoc ├── api-robot-deleteUserRobot.adoc ├── api-robot-getOrgRobot.adoc ├── api-robot-getOrgRobotFederation.adoc ├── api-robot-getOrgRobotPermissions.adoc ├── api-robot-getOrgRobots.adoc ├── api-robot-getUserRobot.adoc ├── api-robot-getUserRobotPermissions.adoc ├── api-robot-getUserRobots.adoc ├── api-robot-regenerateOrgRobotToken.adoc ├── api-robot-regenerateUserRobotToken.adoc ├── api-robot.adoc ├── api-search-conductRepoSearch.adoc ├── api-search-conductSearch.adoc ├── api-search-getMatchingEntities.adoc ├── api-search.adoc ├── api-secscan-getRepoManifestSecurity.adoc ├── api-secscan.adoc ├── api-superuser-approveServiceKey.adoc ├── api-superuser-changeOrganization.adoc ├── api-superuser-changeOrganizationQuotaSuperUser.adoc ├── api-superuser-changeUserQuotaSuperUser.adoc ├── api-superuser-createInstallUser.adoc ├── api-superuser-createOrganizationQuotaSuperUser.adoc ├── api-superuser-createServiceKey.adoc ├── api-superuser-createUserQuotaSuperUser.adoc ├── api-superuser-deleteInstallUser.adoc ├── api-superuser-deleteOrganization.adoc ├── api-superuser-deleteOrganizationQuotaSuperUser.adoc ├── api-superuser-deleteServiceKey.adoc ├── api-superuser-deleteUserQuotaSuperUser.adoc ├── api-superuser-getRegistrySize.adoc ├── api-superuser-getRepoBuildLogsSuperUser.adoc ├── api-superuser-getRepoBuildStatusSuperUser.adoc ├── api-superuser-getRepoBuildSuperUser.adoc ├── api-superuser-getServiceKey.adoc ├── api-superuser-listAllLogs.adoc ├── api-superuser-listAllOrganizations.adoc ├── api-superuser-listAllUsers.adoc ├── api-superuser-listOrganizationQuotaSuperUser.adoc ├── api-superuser-listServiceKeys.adoc ├── api-superuser-listUserQuotaSuperUser.adoc ├── api-superuser-postRegistrySize.adoc ├── api-superuser-updateServiceKey.adoc ├── api-superuser.adoc ├── api-tag-changeTag.adoc ├── api-tag-deleteFullTag.adoc ├── api-tag-listRepoTags.adoc ├── api-tag-removeTagFromTimemachine.adoc ├── api-tag-restoreTag.adoc ├── api-tag.adoc ├── api-team-deleteOrganizationTeam.adoc ├── api-team-deleteOrganizationTeamMember.adoc ├── api-team-deleteTeamMemberEmailInvite.adoc ├── api-team-getOrganizationTeamMembers.adoc ├── api-team-getOrganizationTeamPermissions.adoc ├── api-team-inviteTeamMemberEmail.adoc ├── api-team-updateOrganizationTeam.adoc ├── api-team-updateOrganizationTeamMember.adoc ├── api-team.adoc ├── api-trigger-activateBuildTrigger.adoc ├── api-trigger-deleteBuildTrigger.adoc ├── api-trigger-getBuildTrigger.adoc ├── api-trigger-listBuildTriggers.adoc ├── api-trigger-listTriggerRecentBuilds.adoc ├── api-trigger-manuallyStartBuildTrigger.adoc ├── api-trigger-updateBuildTrigger.adoc ├── api-trigger.adoc ├── api-user-createStar.adoc ├── api-user-deleteStar.adoc ├── api-user-getLoggedInUser.adoc ├── api-user-getUserInformation.adoc ├── api-user-listStarredRepos.adoc ├── api-user.adoc ├── arch-georpl-features.adoc ├── arch-intro-access-control.adoc ├── arch-intro-build-automation.adoc ├── arch-intro-content-distribution.adoc ├── arch-intro-integration.adoc ├── arch-intro-other-features.adoc ├── arch-intro-recent-features.adoc ├── arch-intro-scalability.adoc ├── arch-intro-security.adoc ├── arch-intro.adoc ├── arch-mirror-registry.adoc ├── arch-prereqs.adoc ├── attributes.adoc ├── authentication-troubleshooting-issues.adoc ├── authentication-troubleshooting.adoc ├── automating-quay-using-the-api.adoc ├── backing-up-and-restoring-intro.adoc ├── backing-up-red-hat-quay-operator.adoc ├── backing-up-red-hat-quay-standalone.adoc ├── branding-quay-deployment.adoc ├── build-automation-intro.adoc ├── build-enhanced-arch.adoc ├── build-enhancements.adoc ├── build-limitations.adoc ├── build-logs-not-loading.adoc ├── build-pre-configuration.adoc ├── build-trigger-error.adoc ├── build-trigger-overview.adoc ├── builders-virtual-environment.adoc ├── builds-overview.adoc ├── cannot-access-private-repo.adoc ├── cannot-locate-dockerfile.adoc ├── cannot-reach-registry-endpoint.adoc ├── changing-storage-solution.adoc ├── clair-add-info.adoc ├── clair-advanced-configuration-overview.adoc ├── clair-airgap.adoc ├── clair-analyses.adoc ├── clair-authentication.adoc ├── clair-clairctl-standalone.adoc ├── clair-clairctl.adoc ├── clair-concepts.adoc ├── clair-crda-configuration.adoc ├── clair-cve.adoc ├── clair-disconnected.adoc ├── clair-distroless-container-images.adoc ├── clair-export-bundle-standalone.adoc ├── clair-export-bundle.adoc ├── clair-intro.adoc ├── clair-notifications.adoc ├── clair-openshift-airgap-database-standalone.adoc ├── clair-openshift-airgap-database.adoc ├── clair-openshift-airgap-import-bundle-standalone.adoc ├── clair-openshift-airgap-import-bundle.adoc ├── clair-openshift-airgap-update.adoc ├── clair-openshift-config.adoc ├── clair-openshift-manual.adoc ├── clair-openshift.adoc ├── clair-postgresql-database-update.adoc ├── clair-severity-mapping.adoc ├── clair-standalone-config-location.adoc ├── clair-standalone-config.adoc ├── clair-standalone-configure.adoc ├── clair-standalone-database.adoc ├── clair-standalone-intro.adoc ├── clair-standalone-quay-config.adoc ├── clair-standalone-running.adoc ├── clair-standalone-upgrade.adoc ├── clair-standalone-using.adoc ├── clair-testing.adoc ├── clair-troubleshooting-issues.adoc ├── clair-unmanaged.adoc ├── clair-updater-urls.adoc ├── clair-updaters.adoc ├── clair-using.adoc ├── clair-vulnerability-scanner-hosts.adoc ├── clair-vulnerability-scanner-overview.adoc ├── clairv2-compare-v4.adoc ├── clairv2-to-v4.adoc ├── clairv4-air-gapped.adoc ├── clairv4-arch.adoc ├── clairv4-intro.adoc ├── clairv4-limitations.adoc ├── con_deploy_quay_start_using.adoc ├── con_quay_ha_prereq.adoc ├── con_quay_intro.adoc ├── con_quay_single_prereq.adoc ├── con_schema.adoc ├── con_upgrade_v3.adoc ├── conc_quay-bridge-operator.adoc ├── config-additional-ca-certs-operator.adoc ├── config-api-default.adoc ├── config-api-intro.adoc ├── config-api-required.adoc ├── config-api-retrieve.adoc ├── config-api-validate.adoc ├── config-custom-ssl-certs-kubernetes.adoc ├── config-custom-ssl-certs-manual.adoc ├── config-debug-variables.adoc ├── config-disclaimer.adoc ├── config-envvar-dbpool.adoc ├── config-envvar-georepl.adoc ├── config-envvar-intro.adoc ├── config-envvar-worker-connection.adoc ├── config-envvar-worker-count.adoc ├── config-extra-ca-certs-quay.adoc ├── config-fields-aci.adoc ├── config-fields-actionlog.adoc ├── config-fields-app-tokens.adoc ├── config-fields-basic.adoc ├── config-fields-branding.adoc ├── config-fields-build-logs.adoc ├── config-fields-build-manager.adoc ├── config-fields-clair-auth.adoc ├── config-fields-clair-indexer.adoc ├── config-fields-clair-matcher.adoc ├── config-fields-clair-matchers.adoc ├── config-fields-clair-metrics.adoc ├── config-fields-clair-notifiers.adoc ├── config-fields-clair-trace.adoc ├── config-fields-clair-updaters.adoc ├── config-fields-db.adoc ├── config-fields-dockerfile-build.adoc ├── config-fields-footer.adoc ├── config-fields-general-clair.adoc ├── config-fields-hcp.adoc ├── config-fields-helm-oci.adoc ├── config-fields-ibmcloudstorage.adoc ├── config-fields-intro.adoc ├── config-fields-ipv6.adoc ├── config-fields-jwt.adoc ├── config-fields-ldap.adoc ├── config-fields-legacy.adoc ├── config-fields-mail.adoc ├── config-fields-mirroring.adoc ├── config-fields-misc.adoc ├── config-fields-modelcache-clustered-redis.adoc ├── config-fields-modelcache-memcache.adoc ├── config-fields-modelcache-single-redis.adoc ├── config-fields-modelcache.adoc ├── config-fields-modelcard-rendering.adoc ├── config-fields-nested-repositories.adoc ├── config-fields-netapp-ontap-s3.adoc ├── config-fields-nutanix.adoc ├── config-fields-oauth.adoc ├── config-fields-optional-intro.adoc ├── config-fields-overview.adoc ├── config-fields-proxy-cache.adoc ├── config-fields-quota-management.adoc ├── config-fields-recaptcha.adoc ├── config-fields-redis.adoc ├── config-fields-required-general.adoc ├── config-fields-required-intro.adoc ├── config-fields-robot-account.adoc ├── config-fields-scanner.adoc ├── config-fields-server.adoc ├── config-fields-session-logout.adoc ├── config-fields-ssl.adoc ├── config-fields-storage-aws.adoc ├── config-fields-storage-azure.adoc ├── config-fields-storage-features.adoc ├── config-fields-storage-fields.adoc ├── config-fields-storage-gcp.adoc ├── config-fields-storage-local.adoc ├── config-fields-storage-noobaa.adoc ├── config-fields-storage-rados.adoc ├── config-fields-storage-swift.adoc ├── config-fields-storage.adoc ├── config-fields-tag-expiration.adoc ├── config-fields-user.adoc ├── config-fields-v2-ui.adoc ├── config-file-intro.adoc ├── config-file-location.adoc ├── config-file-minimal.adoc ├── config-file-verification.adoc ├── config-intro.adoc ├── config-preconfigure-automation-intro.adoc ├── config-preconfigure-automation.adoc ├── config-ui-access-settings.adoc ├── config-ui-action-log.adoc ├── config-ui-app-registry.adoc ├── config-ui-basic-config.adoc ├── config-ui-custom-ssl-certs.adoc ├── config-ui-data-consistency.adoc ├── config-ui-database.adoc ├── config-ui-dockerfile-build.adoc ├── config-ui-email.adoc ├── config-ui-internal-authentication.adoc ├── config-ui-intro.adoc ├── config-ui-mirroring.adoc ├── config-ui-oauth.adoc ├── config-ui-redis.adoc ├── config-ui-repo-mirroring.adoc ├── config-ui-security-scanner.adoc ├── config-ui-server-config.adoc ├── config-ui-storage-engines.adoc ├── config-ui-storage-georepl.adoc ├── config-ui-storage-proxy.adoc ├── config-ui-storage.adoc ├── config-ui-time-machine.adoc ├── config-updates-310.adoc ├── config-updates-311.adoc ├── config-updates-312.adoc ├── config-updates-313.adoc ├── config-updates-314.adoc ├── config-updates-36.adoc ├── config-updates-37.adoc ├── config-updates-38.adoc ├── config-updates-39.adoc ├── configuring-api-calls.adoc ├── configuring-aws-sts-quay.adoc ├── configuring-cert-based-auth-quay-cloudsql.adoc ├── configuring-clair-disconnected-environment.adoc ├── configuring-clair-updaters.adoc ├── configuring-custom-clair-database-managed.adoc ├── configuring-custom-clair-database.adoc ├── configuring-oci-media-types.adoc ├── configuring-oidc-authentication.adoc ├── configuring-openshift-tls-component-builds.adoc ├── configuring-port-mapping.adoc ├── configuring-quay-ocp-aws-sts.adoc ├── configuring-quay-standalone-aws-sts.adoc ├── configuring-red-hat-sso.adoc ├── configuring-resources-managed-components.adoc ├── configuring-ssl-tls.adoc ├── connecting-s3-timeout.adoc ├── connection-issues-clair-quay-db.adoc ├── content-distrib-intro.adoc ├── core-distinct-registries.adoc ├── core-example-deployment.adoc ├── core-infrastructure.adoc ├── core-prereqs-db.adoc ├── core-prereqs-redis.adoc ├── core-prereqs-storage.adoc ├── core-sample-quay-on-prem.adoc ├── cosign-oci-intro.adoc ├── cosign-oci-with-quay.adoc ├── creating-a-team-api.adoc ├── creating-a-team-ui.adoc ├── creating-an-image-repository-via-docker.adoc ├── creating-an-image-repository-via-skopeo-copy.adoc ├── creating-an-image-repository-via-the-api.adoc ├── creating-an-image-repository-via-the-ui.adoc ├── creating-custom-ssl-certs-config-bundle.adoc ├── creating-image-expiration-notification.adoc ├── creating-notifications-api.adoc ├── creating-notifications.adoc ├── creating-oauth-access-token.adoc ├── creating-oauth-application-api.adoc ├── creating-oauth-application.adoc ├── creating-org-policy-api.adoc ├── creating-policy-api-current-user.adoc ├── creating-policy-api-other-user.adoc ├── creating-repository-policy-api.adoc ├── creating-robot-account-api.adoc ├── creating-robot-account-v2-ui.adoc ├── creating-user-account-quay-api.adoc ├── creating-user-account-quay-ui.adoc ├── creating-v2-oauth-access-token.adoc ├── custom-clair-configuration-managed-database.adoc ├── database-troubleshooting-issues.adoc ├── database-troubleshooting.adoc ├── default-permissions-api.adoc ├── default-permissions-v2-ui.adoc ├── deleting-a-tag-api.adoc ├── deleting-a-tag.adoc ├── deleting-an-image-repository-via-the-api.adoc ├── deleting-an-image-repository-via-ui.adoc ├── deleting-oauth-access-token.adoc ├── deleting-robot-account-api.adoc ├── deleting-robot-account-v2-ui.adoc ├── deleting-tag-permanently.adoc ├── deleting-team-within-organization-api.adoc ├── deleting-user-cli-api.adoc ├── deleting-user-cli.adoc ├── deleting-user-ui.adoc ├── deploy-local-quay-ipv6.adoc ├── deploying-the-operator-using-initial-configuration.adoc ├── deployment-topology-with-storage-proxy.adoc ├── deployment-topology.adoc ├── disable-oci-artifacts-in-quay.adoc ├── disabling-robot-account.adoc ├── discovering-quay-api-endpoints.adoc ├── docker-failing-pulls.adoc ├── docker-io-timeout.adoc ├── docker-login-error.adoc ├── docker-timestamp-error.adoc ├── downgrade-quay-deployment.adoc ├── enabling-team-sync-oidc.adoc ├── enabling-using-the-api.adoc ├── error-403-troubleshooting.adoc ├── error-406-dockerfile.adoc ├── error-429-troubleshooting.adoc ├── error-500-troubleshooting.adoc ├── error-502-troubleshooting.adoc ├── external-registry-config-api-example.adoc ├── fetching-images-and-tags.adoc ├── fine-grained-access-control-intro.adoc ├── fips-overview.adoc ├── first-user-api.adoc ├── frequently-asked-questions.adoc ├── garbage-collection.adoc ├── geo-repl-sslerror.adoc ├── geo-repl-troubleshooting-issues.adoc ├── georepl-arch-operator.adoc ├── georepl-arch-standalone.adoc ├── georepl-arch.adoc ├── georepl-deploy-operator.adoc ├── georepl-deploy-standalone.adoc ├── georepl-intro.adoc ├── georepl-mixed-storage.adoc ├── georepl-prereqs.adoc ├── getting-support.adoc ├── health-check-quay.adoc ├── helm-oci-prereqs.adoc ├── helm-oci-quay.adoc ├── how-to-list-quay-repos.adoc ├── image-tags-overview.adoc ├── integration-intro.adoc ├── internal-api.adoc ├── java-image-scan-not-working.adoc ├── keyless-authentication-robot-accounts.adoc ├── ldap-binding-groups-intro.adoc ├── ldap-filtering-intro.adoc ├── ldap-timeouts-quay.adoc ├── limit-organization-creation.adoc ├── listing-repos-superuser-api.adoc ├── logging-into-quayio.adoc ├── managed-clair-database.adoc ├── managing-a-team-api.adoc ├── managing-builds-api.adoc ├── managing-namespace-auto-pruning-policies.adoc ├── managing-organization-quota-superuser-api.adoc ├── managing-organization-superuser-api.adoc ├── managing-restricted-users.adoc ├── managing-robot-account-permissions-v2-ui.adoc ├── managing-service-keys-api.adoc ├── managing-superuser-full-access.adoc ├── managing-tags-api.adoc ├── managing-team-members-api.adoc ├── managing-team-members-repo-permissions-ui.adoc ├── managing-team-ui.adoc ├── managing-teams-api.adoc ├── managing-user-options-api.adoc ├── managing-user-quota-superuser-api.adoc ├── manually-triggering-a-build-trigger.adoc ├── mapping-repositories-to-cpe-information.adoc ├── marathon-mesos-fail.adoc ├── metrics-authentication.adoc ├── metrics-garbage-collection.adoc ├── metrics-general-registry-stats.adoc ├── metrics-image-push-pull.adoc ├── metrics-intro.adoc ├── metrics-multipart-uploads.adoc ├── metrics-queue-items.adoc ├── metrics-request-duration.adoc ├── mirror-quay-api.adoc ├── mirrored-images-unable-pull-rhocp.adoc ├── mirroring-api-intro.adoc ├── mirroring-creating-repo.adoc ├── mirroring-events.adoc ├── mirroring-intro.adoc ├── mirroring-invalid-credentials.adoc ├── mirroring-prereqs.adoc ├── mirroring-recommend.adoc ├── mirroring-tag-patterns.adoc ├── mirroring-using.adoc ├── mirroring-versus-georepl.adoc ├── mirroring-worker.adoc ├── mirroring-working-with.adoc ├── missing-runc-files.adoc ├── modifying-config-bundle-secret-cli.adoc ├── modifying-config-bundle-secret-ui.adoc ├── modifying-config-file-post-deployment.adoc ├── modifying-quayregistry-cr-after-deployment.adoc ├── modifying-quayregistry-cr-cli.adoc ├── modifying-quayregistry-cr-ui.adoc ├── monitoring-single-namespace.adoc ├── moving-a-tag.adoc ├── namespace-auto-pruning-arch.adoc ├── nested-ldap-team-sync.adoc ├── notification-actions.adoc ├── oauth2-access-tokens.adoc ├── obtaining-quay-config-information.adoc ├── obtaining-quay-logs.adoc ├── oci-intro.adoc ├── oci-referrers-oauth-access-token.adoc ├── oidc-config-fields.adoc ├── on-prem-configuration-overview.adoc ├── openshift-routes-limitations.adoc ├── operator-advanced.adoc ├── operator-cloudfront.adoc ├── operator-components-intro.adoc ├── operator-components-managed.adoc ├── operator-components-unmanaged-other.adoc ├── operator-components-unmanaged.adoc ├── operator-concepts.adoc ├── operator-config-bundle-secret.adoc ├── operator-config-cli-access.adoc ├── operator-config-cli-download.adoc ├── operator-config-cli.adoc ├── operator-config-ui-access.adoc ├── operator-config-ui-change.adoc ├── operator-config-ui-monitoring.adoc ├── operator-config-ui-updated.adoc ├── operator-config-ui.adoc ├── operator-console-monitoring-alerting.adoc ├── operator-custom-ssl-certs-config-bundle.adoc ├── operator-customize-images.adoc ├── operator-customize.adoc ├── operator-deploy-cli.adoc ├── operator-deploy-hpa.adoc ├── operator-deploy-infrastructure.adoc ├── operator-deploy-ui.adoc ├── operator-deploy-view-pods-cli.adoc ├── operator-deploy.adoc ├── operator-differences.adoc ├── operator-external-access.adoc ├── operator-first-user-ui.adoc ├── operator-geo-replication.adoc ├── operator-georepl-site-removal.adoc ├── operator-helm-oci.adoc ├── operator-install.adoc ├── operator-ipv6-dual-stack.adoc ├── operator-managed-postgres.adoc ├── operator-managed-storage.adoc ├── operator-monitor-deploy-cli.adoc ├── operator-preconfig-storage.adoc ├── operator-preconfig-tls-routes.adoc ├── operator-preconfigure.adoc ├── operator-prereq.adoc ├── operator-quayregistry-api.adoc ├── operator-quayregistry-status.adoc ├── operator-resize-storage.adoc ├── operator-standalone-object-gateway.adoc ├── operator-unmanaged-hpa.adoc ├── operator-unmanaged-mirroring.adoc ├── operator-unmanaged-monitoring.adoc ├── operator-unmanaged-postgres.adoc ├── operator-unmanaged-redis.adoc ├── operator-unmanaged-route.adoc ├── operator-unmanaged-storage-noobaa.adoc ├── operator-unmanaged-storage.adoc ├── operator-upgrade.adoc ├── operator-volume-size-overrides.adoc ├── optional-enabling-read-only-mode-backup-restore-ocp.adoc ├── optional-enabling-read-only-mode-backup-restore-standalone.adoc ├── oras-annotation-parsing.adoc ├── org-application-create-api.adoc ├── org-create-api.adoc ├── org-create.adoc ├── org-delete-api.adoc ├── org-delete.adoc ├── org-proxy-cache-configuration-api.adoc ├── org-team-member-api.adoc ├── organization-management-api.adoc ├── organization-settings-v2-ui.adoc ├── organizations-overview.adoc ├── other-oci-artifacts-with-quay.adoc ├── permissions-intro.adoc ├── poc-creating-dual-stack-cn.adoc ├── prepare-ocp-for-bare-metal-builds.adoc ├── preparing-registry-large-artifacts.adoc ├── preparing-system-deploy-quay.adoc ├── proc_configure-user-settings.adoc ├── proc_container-security-operator-setup.adoc ├── proc_creating-ocp-secret-for-oauth-token.adoc ├── proc_creating-quay-integration-cr.adoc ├── proc_deploy_quay_add.adoc ├── proc_deploy_quay_common_superuser.adoc ├── proc_deploy_quay_guided.adoc ├── proc_deploy_quay_ha.adoc ├── proc_deploy_quay_ha_ceph.adoc ├── proc_deploy_quay_ha_lbdb.adoc ├── proc_deploy_quay_local_ipv6.adoc ├── proc_deploy_quay_poc_conf.adoc ├── proc_deploy_quay_poc_db.adoc ├── proc_deploy_quay_poc_dns.adoc ├── proc_deploy_quay_poc_next.adoc ├── proc_deploy_quay_poc_redis.adoc ├── proc_deploy_quay_poc_restart.adoc ├── proc_deploy_quay_poc_rhel.adoc ├── proc_deploy_quay_poc_run.adoc ├── proc_deploy_quay_poc_use.adoc ├── proc_deploy_quay_single.adoc ├── proc_generating-splunk-token.adoc ├── proc_github-app.adoc ├── proc_github-build-triggers.adoc ├── proc_installing-creating-username-splunk.adoc ├── proc_installing-qbo-on-ocp.adoc ├── proc_manage-advanced-config.adoc ├── proc_manage-clair-enable.adoc ├── proc_manage-ipv6-dual-stack.adoc ├── proc_manage-ldap-setup.adoc ├── proc_manage-log-storage-elasticsearch.adoc ├── proc_manage-log-storage-splunk.adoc ├── proc_manage-log-storage.adoc ├── proc_manage-quay-prometheus.adoc ├── proc_manage-quay-ssl.adoc ├── proc_manage-quay-troubleshooting.adoc ├── proc_manage-release-notifications.adoc ├── proc_manage-security-scanning.adoc ├── proc_manage-upgrade-quay-2.adoc ├── proc_manage-upgrade-quay-guide.adoc ├── proc_manage-upgrade-quay.adoc ├── proc_setting-up-quay-for-qbo.adoc ├── proc_splunk-action-log.adoc ├── proc_splunk-config.adoc ├── proc_upgrade_standalone.adoc ├── proc_upgrade_v3.adoc ├── proc_use-api.adoc ├── proc_use-quay-build-dockerfiles.adoc ├── proc_use-quay-build-workers-dockerfiles.adoc ├── proc_use-quay-create-repo.adoc ├── proc_use-quay-git-trigger.adoc ├── proc_use-quay-manage-repo.adoc ├── proc_use-quay-notifications.adoc ├── proc_use-quay-tags.adoc ├── proc_use-quay-view-export-logs.adoc ├── proxy-cache-arch.adoc ├── proxy-cache-leveraging-storage-quota-limits.adoc ├── proxy-cache-limitations.adoc ├── proxy-cache-procedure.adoc ├── public-cloud-aws.adoc ├── public-cloud-azure.adoc ├── public-cloud-intro.adoc ├── qbo-operator-upgrade.adoc ├── quay-api-examples.adoc ├── quay-as-cache-proxy.adoc ├── quay-bridge-operator-test.adoc ├── quay-error-details.adoc ├── quay-internal-registry-intro.adoc ├── quay-robot-accounts-intro.adoc ├── quay-sso-keycloak-intro.adoc ├── quay-super-users-intro.adoc ├── quay-users-intro.adoc ├── quayio-main-page.adoc ├── quayio-overview.adoc ├── quayio-support.adoc ├── quayio-ui-overview.adoc ├── quota-establishment-api.adoc ├── quota-establishment-ui.adoc ├── quota-limit-api.adoc ├── quota-limit-user-api.adoc ├── quota-management-and-enforcement.adoc ├── quota-management-api.adoc ├── quota-management-arch.adoc ├── quota-management-limitations.adoc ├── quota-management-permanent-delete-39.adoc ├── quota-management-query-39.adoc ├── quota-management-testing-39.adoc ├── quota-organization-management-api.adoc ├── reassigning-oauth-access-token.adoc ├── red-hat-quay-builders-ui.adoc ├── red-hat-quay-gcp-bucket-modify.adoc ├── red-hat-quay-namespace-auto-pruning-overview.adoc ├── red-hat-quay-quota-management-configure-39.adoc ├── red-hat-quay-s3-bucket-modify.adoc ├── ref_deploy_quay_openshift.adoc ├── ref_quay-integration-config-fields.adoc ├── regenerating-robot-account-token-api.adoc ├── regenerating-robot-account-token-ui.adoc ├── registry-wide-access-management.adoc ├── repo-creation-management.adoc ├── repo-manage-api.adoc ├── repo-mirroring-troubleshooting-issues.adoc ├── repo-organizations-and-users-intro.adoc ├── repo-permission-api.adoc ├── repo-policy-api.adoc ├── repository-events.adoc ├── resetting-superuser-password-on-operator.adoc ├── resource-demand-failed-operator.adoc ├── restoring-red-hat-quay-standalone.adoc ├── restoring-red-hat-quay.adoc ├── retrieving-build-info-superuser-api.adoc ├── reverting-tag-changes-api.adoc ├── reverting-tag-changes.adoc ├── rn_1_12.adoc ├── rn_1_13.adoc ├── rn_1_14.adoc ├── rn_1_15.adoc ├── rn_1_16.adoc ├── rn_1_17.adoc ├── rn_1_18.adoc ├── rn_2_00.adoc ├── rn_2_10.adoc ├── rn_2_20.adoc ├── rn_2_30.adoc ├── rn_2_40.adoc ├── rn_2_50.adoc ├── rn_2_60.adoc ├── rn_2_70.adoc ├── rn_2_80.adoc ├── rn_2_90.adoc ├── rn_3_00.adoc ├── rn_3_10.adoc ├── rn_3_10_0.adoc ├── rn_3_11_0.adoc ├── rn_3_12_0.adoc ├── rn_3_13_0.adoc ├── rn_3_14_0.adoc ├── rn_3_20.adoc ├── rn_3_30.adoc ├── rn_3_40.adoc ├── rn_3_50.adoc ├── rn_3_60.adoc ├── rn_3_70.adoc ├── rn_3_80.adoc ├── rn_3_90.adoc ├── robot-account-manage-api.adoc ├── robot-account-overview.adoc ├── robot-account-permissions-api.adoc ├── robot-account-tokens.adoc ├── role-based-access-control-intro.adoc ├── root-rule-config-api-example.adoc ├── rotating-log-files.adoc ├── running-ldap-debug-mode.adoc ├── running-operator-debug-mode.adoc ├── running-quay-debug-mode-intro.adoc ├── running-quay-debug-mode.adoc ├── scalability-intro.adoc ├── scans-not-working-behind-proxy.adoc ├── search-api.adoc ├── secrets-garbage-collected.adoc ├── security-intro.adoc ├── security-scanning-api.adoc ├── security-scanning-ui.adoc ├── security-scanning.adoc ├── set-team-role.adoc ├── setting-default-quota.adoc ├── setting-role-of-team-within-organization-api.adoc ├── setting-tag-expiration-api.adoc ├── setting-tag-expirations-v2-ui.adoc ├── setting-up-builds-aws.adoc ├── signature-does-not-exist.adoc ├── sizing-intro.adoc ├── sizing-sample.adoc ├── skipping-source-control-triggered-build.adoc ├── ssl-config-cli.adoc ├── ssl-config-ui.adoc ├── ssl-create-certs.adoc ├── ssl-intro.adoc ├── ssl-testing-cli.adoc ├── ssl-testing-ui.adoc ├── ssl-tls-quay-overview.adoc ├── ssl-tls-sql.adoc ├── ssl-trust-ca-podman.adoc ├── ssl-trust-ca-system.adoc ├── standalone-deployment-backup-restore.adoc ├── standalone-georepl-site-removal.adoc ├── standalone-to-operator-backup-restore.adoc ├── starting-a-build.adoc ├── storage-buckets-not-synced.adoc ├── storage-health-check-geo-repl.adoc ├── storage-troubleshooting-issues.adoc ├── storage-troubleshooting.adoc ├── subscription-intro.adoc ├── superuser-manage-api.adoc ├── team-permissions-api.adoc ├── teams-overview.adoc ├── tenancy-model.adoc ├── testing-3-800.adoc ├── testing-clair.adoc ├── testing-features.adoc ├── testing-oci-support.adoc ├── testing-ssl-tls-configuration.adoc ├── token-overview.adoc ├── troubleshooting-401-helm.adoc ├── troubleshooting-builds.adoc ├── troubleshooting-components.adoc ├── troubleshooting-forgotten-passwords.adoc ├── troubleshooting-general.adoc ├── troubleshooting-how-tos.adoc ├── troubleshooting-slow-pushes.adoc ├── understanding-action-logs.adoc ├── understanding-configuration-file.adoc ├── understanding-quayregistry-cr.adoc ├── understanding-tag-naming-build-triggers.adoc ├── unknown-artifacts.adoc ├── unmanaging-clair-database.adoc ├── unsupported-security-scan.adoc ├── upgrading-geo-repl-quay-operator.adoc ├── upgrading-geo-repl-quay.adoc ├── upgrading-postgresql.adoc ├── use-quay-export-logs-api.adoc ├── use-quay-export-logs.adoc ├── use-quay-pull-image.adoc ├── user-create.adoc ├── user-org-intro.adoc ├── user-permissions-repo.adoc ├── using-other-oci-artifacts-with-quay.adoc ├── using-the-api-to-create-an-organization.adoc ├── using-the-api.adoc ├── using-the-oauth-token.adoc ├── using-v2-ui.adoc ├── viewing-additional-info-about-team-ui.adoc ├── viewing-and-modifying-tags.adoc ├── viewing-model-card-information.adoc ├── viewing-tag-history-v2-api.adoc ├── viewing-tag-history-v2-ui.adoc ├── viewing-tags-api.adoc ├── viewing-usage-logs-api.adoc └── viewing-usage-logs-v2-ui.adoc ├── quay_io ├── docinfo.xml ├── master.adoc └── modules ├── quick_start ├── docinfo.xml ├── master.adoc └── modules ├── red_hat_quay_operator_features ├── docinfo.xml ├── master.adoc └── modules ├── red_hat_quay_overview ├── docinfo.xml ├── master.adoc └── modules ├── release_notes ├── docinfo.xml ├── master.adoc └── modules ├── resources ├── config.json_example ├── haproxy_cfg.j2 ├── notes.md ├── quay-enterprise-template.yml ├── quay.inv_sample ├── quaylab.yml └── test │ ├── mysql_test.py │ ├── redis_test.py │ └── s3bucket_create.py ├── securing_quay ├── docinfo.xml ├── master.adoc └── modules ├── troubleshooting_quay ├── docinfo.xml ├── master.adoc └── modules ├── upgrade_quay ├── docinfo.xml ├── master.adoc └── modules ├── use_quay ├── docinfo.xml ├── master.adoc └── modules └── welcome.adoc /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: ci 2 | on: 3 | push: 4 | branches: 5 | - master 6 | - main 7 | permissions: 8 | contents: write 9 | jobs: 10 | deploy: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3 14 | - uses: actions/setup-python@v4 15 | with: 16 | python-version: 3.x 17 | - uses: actions/cache@v4 18 | with: 19 | key: ${{ github.ref }} 20 | path: .cache 21 | - run: pip install mkdocs-material 22 | - run: pip install mkdocs-swagger-ui-tag 23 | - run: pip install "mkdocs-material[imaging]" 24 | - run: mkdocs gh-deploy --force 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | build/ 3 | .DS_Store 4 | .idea/ -------------------------------------------------------------------------------- /.s2i/bin/assemble: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | # The assemble script builds the application artifacts from source and 3 | # places them into appropriate directories inside the image. 4 | 5 | echo "---> Updating bundler gem..." 6 | gem install bundler 7 | 8 | shopt -s dotglob 9 | echo "---> Installing application source ..." 10 | mv /tmp/src/* ./ 11 | 12 | # Fix source directory permissions 13 | fix-permissions ./ 14 | 15 | bundle install --path ./bundle --binstubs 16 | 17 | # Fixes incompatible character encodings: US-ASCII and UTF-8 error 18 | export LANG="en_US.UTF-8" 19 | 20 | echo "---> Building webpage from source ..." 21 | exec $HOME/build_docs 22 | 23 | # Fix source directory permissions 24 | echo "---> Fixing permissions ..." 25 | fix-permissions ./ 26 | -------------------------------------------------------------------------------- /.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = styles 2 | 3 | MinAlertLevel = suggestion 4 | 5 | Packages = RedHat 6 | 7 | [*] 8 | BasedOnStyles = RedHat -------------------------------------------------------------------------------- /.vale/styles/Vocab/OpenShiftDocs/accept.txt: -------------------------------------------------------------------------------- 1 | # Regex terms added to accept.txt are ignored by the Vale linter and override RedHat Vale rules. 2 | # Add terms that have a corresponding incorrectly capitalized form to reject.txt. 3 | 4 | [Pp]assthrough 5 | Assisted Installer 6 | Control Plane Machine Set Operator 7 | custom resource 8 | custom resources 9 | MetalLB 10 | Operator 11 | Operators -------------------------------------------------------------------------------- /.vale/styles/Vocab/OpenShiftDocs/reject.txt: -------------------------------------------------------------------------------- 1 | # Regex terms added to reject.txt are highlighted as errors by the Vale linter and override RedHat Vale rules. 2 | # Add terms that have a corresponding correctly capitalized form to accept.txt. 3 | 4 | [Dd]eployment [Cc]onfigs? 5 | [Dd]eployment [Cc]onfigurations? 6 | [Oo]peratorize 7 | [Ss]ingle [Nn]ode OpenShift 8 | [Tt]hree [Nn]ode OpenShift 9 | AI 10 | configuration maps? 11 | MachineSets 12 | machinesets? 13 | minions? 14 | operators? 15 | SNO -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "spellright.language": [], 3 | "spellright.documentTypes": [ 4 | "markdown", 5 | "latex", 6 | "plaintext" 7 | ], 8 | "cSpell.words": [ 9 | "OIDC", 10 | "productname" 11 | ] 12 | } -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'asciidoctor' 4 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | build: 3 | @podman run -it --rm --name asciidoctor --detach -v $(CURDIR):/documents/:z asciidoctor/docker-asciidoctor 4 | @-podman exec -it asciidoctor bash -c "source build_docs" 5 | @podman kill asciidoctor 6 | 7 | view: 8 | xdg-open file://$(CURDIR)/dist/welcome.html 9 | 10 | all: build view 11 | 12 | -------------------------------------------------------------------------------- /_redirects: -------------------------------------------------------------------------------- 1 | / /dist/welcome.html 2 | -------------------------------------------------------------------------------- /access_permissions_management/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Managing access and permissions 4 | 5 | Managing access and permissions: Roles, Robots, and Repository Security 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /access_permissions_management/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /api/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | {productname} API Guide 4 | 5 | Use the {productname} API 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /api/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /api_reference/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | {productname} API reference 4 | 5 | {productname} API reference 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /api_reference/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /architecture/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | {productname} Architecture 4 | 5 | {productname} Architecture 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /architecture/images: -------------------------------------------------------------------------------- 1 | ../images -------------------------------------------------------------------------------- /architecture/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /build_quay/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | {productname} 4 | 5 | Build {productname} 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /build_quay/master.adoc: -------------------------------------------------------------------------------- 1 | include::modules/attributes.adoc[] 2 | 3 | [id='build-quay'] 4 | = Build {productname} 5 | 6 | ``` 7 | podman build -t quay:master -f Dockerfile . 8 | ``` 9 | 10 | [discrete] 11 | -------------------------------------------------------------------------------- /build_quay/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /builders_and_image_automation/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Builders and image automation 4 | 5 | Understand builders and their role in automating image builds. 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /builders_and_image_automation/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /clair/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Vulnerability reporting with Clair on {productname} 4 | 5 | Getting started with Clair 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /clair/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /config_quay/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Customizing {productname} using configuration options 4 | 5 | Configure {productname} 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /config_quay/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /deploy_quay/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Deploying {productname} 4 | 5 | Getting started with {productname} 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /deploy_quay/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /deploy_quay_ha/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Deploy {productname} HA 4 | 5 | Deploy {productname} in a HA environment 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /deploy_quay_ha/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /deploy_quay_on_openshift_op_tng/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Deploy {productname} on OpenShift with Quay Operator 4 | 5 | Deploy {productname} on an OpenShift Cluster with the {productname} Operator 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /deploy_quay_on_openshift_op_tng/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /deploy_red_hat_quay_operator/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Deploying the {productname} Operator on {ocp} 4 | 5 | Deploy the {productname} Operator on an {ocp} cluster 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /deploy_red_hat_quay_operator/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /docs/api-v2.md: -------------------------------------------------------------------------------- 1 | # API V2 2 | 3 | 4 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | # Red Hat Quay 2 | 3 | For full documentation visit [mkdocs.org](https://www.mkdocs.org). 4 | 5 | ## Commands 6 | 7 | * `mkdocs new [dir-name]` - Create a new project. 8 | * `mkdocs serve` - Start the live-reloading docs server. 9 | * `mkdocs build` - Build the documentation site. 10 | * `mkdocs -h` - Print help message and exit. 11 | 12 | ## Project layout 13 | 14 | mkdocs.yml # The configuration file. 15 | docs/ 16 | index.md # The documentation homepage. 17 | ... # Other markdown pages, images and other files. 18 | -------------------------------------------------------------------------------- /early_access/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | {productname} Early Access Documentation 4 | 5 | Early access docs for 370 release 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /early_access/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_air-gapped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_air-gapped.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_deploy_topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_deploy_topology.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_deploy_topology_storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_deploy_topology_storage.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_deployment_ex1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_deployment_ex1.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_deployment_ex2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_deployment_ex2.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_features.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_georeplication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_georeplication.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_georeplication_openshift-temp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_georeplication_openshift-temp.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_georeplication_openshift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_georeplication_openshift.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_on-premises_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_on-premises_config.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_on_AWS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_on_AWS.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_on_Azure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_on_Azure.png -------------------------------------------------------------------------------- /images/178_Quay_architecture_0821_tenancy_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/178_Quay_architecture_0821_tenancy_model.png -------------------------------------------------------------------------------- /images/38-ui-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/38-ui-toggle.png -------------------------------------------------------------------------------- /images/Figure00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/Figure00.png -------------------------------------------------------------------------------- /images/Figure00x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/Figure00x.png -------------------------------------------------------------------------------- /images/Figure01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/Figure01.png -------------------------------------------------------------------------------- /images/Figure02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/Figure02.png -------------------------------------------------------------------------------- /images/Figure03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/Figure03.png -------------------------------------------------------------------------------- /images/Figure04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/Figure04.png -------------------------------------------------------------------------------- /images/Figure05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/Figure05.png -------------------------------------------------------------------------------- /images/add-custom-invoice-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/add-custom-invoice-field.png -------------------------------------------------------------------------------- /images/add-superuser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/add-superuser.png -------------------------------------------------------------------------------- /images/air-gap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/air-gap.png -------------------------------------------------------------------------------- /images/alerting-rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/alerting-rules.png -------------------------------------------------------------------------------- /images/api-mirror.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/api-mirror.png -------------------------------------------------------------------------------- /images/application-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/application-token.png -------------------------------------------------------------------------------- /images/august-receipt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/august-receipt.png -------------------------------------------------------------------------------- /images/authentication-ldap-admin-dn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-admin-dn.png -------------------------------------------------------------------------------- /images/authentication-ldap-basedn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-basedn.png -------------------------------------------------------------------------------- /images/authentication-ldap-ssl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-ssl.png -------------------------------------------------------------------------------- /images/authentication-ldap-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-success.png -------------------------------------------------------------------------------- /images/authentication-ldap-team-sync-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-team-sync-1.png -------------------------------------------------------------------------------- /images/authentication-ldap-team-sync-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-team-sync-2.png -------------------------------------------------------------------------------- /images/authentication-ldap-uid-mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-uid-mail.png -------------------------------------------------------------------------------- /images/authentication-ldap-uri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-uri.png -------------------------------------------------------------------------------- /images/authentication-ldap-user-filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap-user-filter.png -------------------------------------------------------------------------------- /images/authentication-ldap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/authentication-ldap.png -------------------------------------------------------------------------------- /images/auto-prune-policies-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/auto-prune-policies-page.png -------------------------------------------------------------------------------- /images/build-history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/build-history.png -------------------------------------------------------------------------------- /images/build-trigger-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/build-trigger-example.png -------------------------------------------------------------------------------- /images/cache-proxy-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/cache-proxy-overview.png -------------------------------------------------------------------------------- /images/cache-proxy-pulled-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/cache-proxy-pulled-image.png -------------------------------------------------------------------------------- /images/cache-proxy-staleness-pull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/cache-proxy-staleness-pull.png -------------------------------------------------------------------------------- /images/choose-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/choose-dashboard.png -------------------------------------------------------------------------------- /images/clair-4-0-cve-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/clair-4-0-cve-report.png -------------------------------------------------------------------------------- /images/clair-4-2-enrichment-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/clair-4-2-enrichment-data.png -------------------------------------------------------------------------------- /images/clair-core-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/clair-core-architecture.png -------------------------------------------------------------------------------- /images/clair-reposcan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/clair-reposcan.png -------------------------------------------------------------------------------- /images/clair-vulnerabilities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/clair-vulnerabilities.png -------------------------------------------------------------------------------- /images/config-editor-details-openshift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-details-openshift.png -------------------------------------------------------------------------------- /images/config-editor-details-operator-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-details-operator-36.png -------------------------------------------------------------------------------- /images/config-editor-reconfigure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-reconfigure.png -------------------------------------------------------------------------------- /images/config-editor-reconfigured.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-reconfigured.png -------------------------------------------------------------------------------- /images/config-editor-secret-reveal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-secret-reveal.png -------------------------------------------------------------------------------- /images/config-editor-secret-updated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-secret-updated.png -------------------------------------------------------------------------------- /images/config-editor-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-secret.png -------------------------------------------------------------------------------- /images/config-editor-su.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-su.png -------------------------------------------------------------------------------- /images/config-editor-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/config-editor-ui.png -------------------------------------------------------------------------------- /images/configtoolroute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/configtoolroute.png -------------------------------------------------------------------------------- /images/configtoolsetup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/configtoolsetup.png -------------------------------------------------------------------------------- /images/configure-tagging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/configure-tagging.png -------------------------------------------------------------------------------- /images/confirm-ldap-username.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/confirm-ldap-username.png -------------------------------------------------------------------------------- /images/console-dashboard-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/console-dashboard-1.png -------------------------------------------------------------------------------- /images/create-account-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/create-account-1.png -------------------------------------------------------------------------------- /images/create-account-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/create-account-2.png -------------------------------------------------------------------------------- /images/create-account-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/create-account-3.png -------------------------------------------------------------------------------- /images/create-build-trigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/create-build-trigger.png -------------------------------------------------------------------------------- /images/create-new-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/create-new-message.png -------------------------------------------------------------------------------- /images/create-new-org.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/create-new-org.png -------------------------------------------------------------------------------- /images/cso-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/cso-dashboard.png -------------------------------------------------------------------------------- /images/cso-namespace-vulnerable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/cso-namespace-vulnerable.png -------------------------------------------------------------------------------- /images/cso-registry-vulnerable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/cso-registry-vulnerable.png -------------------------------------------------------------------------------- /images/custom-tagging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/custom-tagging.png -------------------------------------------------------------------------------- /images/delete-custom-invoice-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/delete-custom-invoice-field.png -------------------------------------------------------------------------------- /images/e2e-demo-httpd-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/e2e-demo-httpd-example.png -------------------------------------------------------------------------------- /images/elasticsearch_action_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/elasticsearch_action_logs.png -------------------------------------------------------------------------------- /images/enable-bittorrent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/enable-bittorrent.png -------------------------------------------------------------------------------- /images/enable-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/enable-build.png -------------------------------------------------------------------------------- /images/enable-security-scanning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/enable-security-scanning.png -------------------------------------------------------------------------------- /images/enable-trigger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/enable-trigger.png -------------------------------------------------------------------------------- /images/event-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/event-select.png -------------------------------------------------------------------------------- /images/export-usage-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/export-usage-logs.png -------------------------------------------------------------------------------- /images/garbage-collection-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/garbage-collection-metrics.png -------------------------------------------------------------------------------- /images/generate-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/generate-token.png -------------------------------------------------------------------------------- /images/georeplication-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/georeplication-arch.png -------------------------------------------------------------------------------- /images/georeplication-aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/georeplication-aws.png -------------------------------------------------------------------------------- /images/grant-user-access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/grant-user-access.png -------------------------------------------------------------------------------- /images/healthcheck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/healthcheck.png -------------------------------------------------------------------------------- /images/https-browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/https-browser.png -------------------------------------------------------------------------------- /images/image-fetch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/image-fetch.png -------------------------------------------------------------------------------- /images/installed-operators-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/installed-operators-list.png -------------------------------------------------------------------------------- /images/kinesis_producer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/kinesis_producer.png -------------------------------------------------------------------------------- /images/ldap-internal-authentication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ldap-internal-authentication.png -------------------------------------------------------------------------------- /images/listeners.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/listeners.png -------------------------------------------------------------------------------- /images/logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/logs.png -------------------------------------------------------------------------------- /images/logsv2-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/logsv2-ui.png -------------------------------------------------------------------------------- /images/mail-attribute-ldap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/mail-attribute-ldap.png -------------------------------------------------------------------------------- /images/manifest-deletion-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/manifest-deletion-architecture.png -------------------------------------------------------------------------------- /images/manifest-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/manifest-example.png -------------------------------------------------------------------------------- /images/metadata-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/metadata-request.png -------------------------------------------------------------------------------- /images/metrics-single-namespace-users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/metrics-single-namespace-users.png -------------------------------------------------------------------------------- /images/metrics-single-namespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/metrics-single-namespace.png -------------------------------------------------------------------------------- /images/modelcard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/modelcard.png -------------------------------------------------------------------------------- /images/new-org.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/new-org.png -------------------------------------------------------------------------------- /images/newapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/newapp.png -------------------------------------------------------------------------------- /images/notification-follow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/notification-follow.png -------------------------------------------------------------------------------- /images/notification-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/notification-profile.png -------------------------------------------------------------------------------- /images/operator-config-bundle-edit-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/operator-config-bundle-edit-secret.png -------------------------------------------------------------------------------- /images/operator-install-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/operator-install-page.png -------------------------------------------------------------------------------- /images/operator-quay-registry-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/operator-quay-registry-overview.png -------------------------------------------------------------------------------- /images/operator-save-config-changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/operator-save-config-changes.png -------------------------------------------------------------------------------- /images/operator-subscription.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/operator-subscription.png -------------------------------------------------------------------------------- /images/operatorhub-quay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/operatorhub-quay.png -------------------------------------------------------------------------------- /images/permanently-delete-image-tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/permanently-delete-image-tag.png -------------------------------------------------------------------------------- /images/poc-clair-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/poc-clair-1.png -------------------------------------------------------------------------------- /images/poc-clair-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/poc-clair-2.png -------------------------------------------------------------------------------- /images/poc-quay-scanner-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/poc-quay-scanner-config.png -------------------------------------------------------------------------------- /images/proxy-cache-size-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/proxy-cache-size-configuration.png -------------------------------------------------------------------------------- /images/public-cloud-aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/public-cloud-aws.png -------------------------------------------------------------------------------- /images/public-cloud-azure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/public-cloud-azure.png -------------------------------------------------------------------------------- /images/quay-builds-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-builds-architecture.png -------------------------------------------------------------------------------- /images/quay-deployment-example-one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-deployment-example-one.png -------------------------------------------------------------------------------- /images/quay-deployment-example-two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-deployment-example-two.png -------------------------------------------------------------------------------- /images/quay-deployment-topology-storage-proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-deployment-topology-storage-proxy.png -------------------------------------------------------------------------------- /images/quay-deployment-topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-deployment-topology.png -------------------------------------------------------------------------------- /images/quay-features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-features.png -------------------------------------------------------------------------------- /images/quay-hybrid-cloud-landing-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-hybrid-cloud-landing-page.png -------------------------------------------------------------------------------- /images/quay-metrics-org-rows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-metrics-org-rows.png -------------------------------------------------------------------------------- /images/quay-metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-metrics.png -------------------------------------------------------------------------------- /images/quay-pod-frequently-restarting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-pod-frequently-restarting.png -------------------------------------------------------------------------------- /images/quay-sample-sizing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-sample-sizing.png -------------------------------------------------------------------------------- /images/quay-setup-operator-openshift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-setup-operator-openshift.png -------------------------------------------------------------------------------- /images/quay-tenancy-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quay-tenancy-model.png -------------------------------------------------------------------------------- /images/quayio-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quayio-footer.png -------------------------------------------------------------------------------- /images/quayio-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quayio-header.png -------------------------------------------------------------------------------- /images/quayio-repo-landing-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quayio-repo-landing-page.png -------------------------------------------------------------------------------- /images/quota-100MB-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-100MB-empty.png -------------------------------------------------------------------------------- /images/quota-100MB-settings-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-100MB-settings-ui.png -------------------------------------------------------------------------------- /images/quota-10MB-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-10MB-empty.png -------------------------------------------------------------------------------- /images/quota-first-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-first-image.png -------------------------------------------------------------------------------- /images/quota-limits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-limits.png -------------------------------------------------------------------------------- /images/quota-management.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-management.png -------------------------------------------------------------------------------- /images/quota-no-quota.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-no-quota.png -------------------------------------------------------------------------------- /images/quota-none-org-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-none-org-settings.png -------------------------------------------------------------------------------- /images/quota-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-notifications.png -------------------------------------------------------------------------------- /images/quota-org-consumed-first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-org-consumed-first.png -------------------------------------------------------------------------------- /images/quota-org-consumed-second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-org-consumed-second.png -------------------------------------------------------------------------------- /images/quota-org-init-consumed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-org-init-consumed.png -------------------------------------------------------------------------------- /images/quota-org-quota-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-org-quota-policy.png -------------------------------------------------------------------------------- /images/quota-su-consumed-first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-su-consumed-first.png -------------------------------------------------------------------------------- /images/quota-su-increase-100MB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-su-increase-100MB.png -------------------------------------------------------------------------------- /images/quota-su-init-10MB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-su-init-10MB.png -------------------------------------------------------------------------------- /images/quota-su-init-consumed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-su-init-consumed.png -------------------------------------------------------------------------------- /images/quota-su-org-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-su-org-options.png -------------------------------------------------------------------------------- /images/quota-su-reject-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-su-reject-80.png -------------------------------------------------------------------------------- /images/quota-su-warning-70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/quota-su-warning-70.png -------------------------------------------------------------------------------- /images/register-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/register-app.png -------------------------------------------------------------------------------- /images/repo-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo-create.png -------------------------------------------------------------------------------- /images/repo-mirror-details-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo-mirror-details-start.png -------------------------------------------------------------------------------- /images/repo-mirror-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo-mirror-details.png -------------------------------------------------------------------------------- /images/repo-mirror-tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo-mirror-tags.png -------------------------------------------------------------------------------- /images/repo-mirror-usage-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo-mirror-usage-logs.png -------------------------------------------------------------------------------- /images/repo-permissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo-permissions.png -------------------------------------------------------------------------------- /images/repo_mirror_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo_mirror_config.png -------------------------------------------------------------------------------- /images/repo_mirror_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo_mirror_create.png -------------------------------------------------------------------------------- /images/repo_mirror_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo_mirror_logs.png -------------------------------------------------------------------------------- /images/repo_mirror_robot_assign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo_mirror_robot_assign.png -------------------------------------------------------------------------------- /images/repo_mirror_robot_perm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo_mirror_robot_perm.png -------------------------------------------------------------------------------- /images/repo_mirror_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo_mirror_view.png -------------------------------------------------------------------------------- /images/repo_quay_rhel8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/repo_quay_rhel8.png -------------------------------------------------------------------------------- /images/restart-container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/restart-container.png -------------------------------------------------------------------------------- /images/robot-gen-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/robot-gen-token.png -------------------------------------------------------------------------------- /images/sample-on-prem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/sample-on-prem.png -------------------------------------------------------------------------------- /images/save-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/save-configuration.png -------------------------------------------------------------------------------- /images/scheduled-maintenance-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/scheduled-maintenance-banner.png -------------------------------------------------------------------------------- /images/security-scanner-enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/security-scanner-enabled.png -------------------------------------------------------------------------------- /images/security-scanner-endpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/security-scanner-endpoint.png -------------------------------------------------------------------------------- /images/security-scanner-generate-shared-dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/security-scanner-generate-shared-dialog.png -------------------------------------------------------------------------------- /images/security-scanner-generate-shared.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/security-scanner-generate-shared.png -------------------------------------------------------------------------------- /images/security-scanner-service-awaiting-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/security-scanner-service-awaiting-key.png -------------------------------------------------------------------------------- /images/security-scanner-service-provide-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/security-scanner-service-provide-key.png -------------------------------------------------------------------------------- /images/security-scanner-shared-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/security-scanner-shared-key.png -------------------------------------------------------------------------------- /images/server-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/server-config.png -------------------------------------------------------------------------------- /images/set-repository-permissions-robot-account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/set-repository-permissions-robot-account.png -------------------------------------------------------------------------------- /images/set-team-role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/set-team-role.png -------------------------------------------------------------------------------- /images/splunk-log-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/splunk-log-metadata.png -------------------------------------------------------------------------------- /images/squash_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/squash_image.png -------------------------------------------------------------------------------- /images/ssl-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ssl-config.png -------------------------------------------------------------------------------- /images/ssl-connection-not-private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ssl-connection-not-private.png -------------------------------------------------------------------------------- /images/ssl-connection-not-secure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ssl-connection-not-secure.png -------------------------------------------------------------------------------- /images/ssl-connection-secure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ssl-connection-secure.png -------------------------------------------------------------------------------- /images/ssl-potential-risk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ssl-potential-risk.png -------------------------------------------------------------------------------- /images/super-user-admin-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/super-user-admin-panel.png -------------------------------------------------------------------------------- /images/superuser-user-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/superuser-user-settings.png -------------------------------------------------------------------------------- /images/superuser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/superuser.png -------------------------------------------------------------------------------- /images/swagger-mirroring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/swagger-mirroring.png -------------------------------------------------------------------------------- /images/tag-expiration-v2-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/tag-expiration-v2-ui.png -------------------------------------------------------------------------------- /images/tag-expires-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/tag-expires-ui.png -------------------------------------------------------------------------------- /images/tag-operations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/tag-operations.png -------------------------------------------------------------------------------- /images/toggle-legacy-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/toggle-legacy-ui.png -------------------------------------------------------------------------------- /images/total-quota-consumed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/total-quota-consumed.png -------------------------------------------------------------------------------- /images/total-registry-size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/total-registry-size.png -------------------------------------------------------------------------------- /images/ui-access-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-access-settings.png -------------------------------------------------------------------------------- /images/ui-action-log-choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-action-log-choice.png -------------------------------------------------------------------------------- /images/ui-action-log-database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-action-log-database.png -------------------------------------------------------------------------------- /images/ui-action-log-elastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-action-log-elastic.png -------------------------------------------------------------------------------- /images/ui-action-log-rotation-storage-choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-action-log-rotation-storage-choice.png -------------------------------------------------------------------------------- /images/ui-action-log-rotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-action-log-rotation.png -------------------------------------------------------------------------------- /images/ui-app-registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-app-registry.png -------------------------------------------------------------------------------- /images/ui-auth-external-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-auth-external-app.png -------------------------------------------------------------------------------- /images/ui-auth-jwt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-auth-jwt.png -------------------------------------------------------------------------------- /images/ui-auth-keystone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-auth-keystone.png -------------------------------------------------------------------------------- /images/ui-auth-ldap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-auth-ldap.png -------------------------------------------------------------------------------- /images/ui-basic-config-contact-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-basic-config-contact-info.png -------------------------------------------------------------------------------- /images/ui-basic-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-basic-config.png -------------------------------------------------------------------------------- /images/ui-custom-ssl-certs-uploaded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-custom-ssl-certs-uploaded.png -------------------------------------------------------------------------------- /images/ui-custom-ssl-certs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-custom-ssl-certs.png -------------------------------------------------------------------------------- /images/ui-data-consistency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-data-consistency.png -------------------------------------------------------------------------------- /images/ui-database-choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-database-choice.png -------------------------------------------------------------------------------- /images/ui-database-postgres.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-database-postgres.png -------------------------------------------------------------------------------- /images/ui-dockerfile-build-bitbucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-dockerfile-build-bitbucket.png -------------------------------------------------------------------------------- /images/ui-dockerfile-build-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-dockerfile-build-github.png -------------------------------------------------------------------------------- /images/ui-dockerfile-build-gitlab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-dockerfile-build-gitlab.png -------------------------------------------------------------------------------- /images/ui-dockerfile-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-dockerfile-build.png -------------------------------------------------------------------------------- /images/ui-email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-email.png -------------------------------------------------------------------------------- /images/ui-internal-authentication-choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-internal-authentication-choice.png -------------------------------------------------------------------------------- /images/ui-internal-authentication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-internal-authentication.png -------------------------------------------------------------------------------- /images/ui-monitor-deploy-done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-monitor-deploy-done.png -------------------------------------------------------------------------------- /images/ui-monitor-deploy-events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-monitor-deploy-events.png -------------------------------------------------------------------------------- /images/ui-monitor-deploy-quay-min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-monitor-deploy-quay-min.png -------------------------------------------------------------------------------- /images/ui-monitor-deploy-streaming-events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-monitor-deploy-streaming-events.png -------------------------------------------------------------------------------- /images/ui-monitor-deploy-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-monitor-deploy-update.png -------------------------------------------------------------------------------- /images/ui-monitor-done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-monitor-done.png -------------------------------------------------------------------------------- /images/ui-oauth-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-oauth-github.png -------------------------------------------------------------------------------- /images/ui-oauth-google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-oauth-google.png -------------------------------------------------------------------------------- /images/ui-redis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-redis.png -------------------------------------------------------------------------------- /images/ui-repo-mirroring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-repo-mirroring.png -------------------------------------------------------------------------------- /images/ui-security-scanner-psk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-security-scanner-psk.png -------------------------------------------------------------------------------- /images/ui-security-scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-security-scanner.png -------------------------------------------------------------------------------- /images/ui-server-config-no-tls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-server-config-no-tls.png -------------------------------------------------------------------------------- /images/ui-server-config-tls-choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-server-config-tls-choice.png -------------------------------------------------------------------------------- /images/ui-server-config-tls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-server-config-tls.png -------------------------------------------------------------------------------- /images/ui-storage-azure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-azure.png -------------------------------------------------------------------------------- /images/ui-storage-ceph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-ceph.png -------------------------------------------------------------------------------- /images/ui-storage-choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-choice.png -------------------------------------------------------------------------------- /images/ui-storage-cloudfront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-cloudfront.png -------------------------------------------------------------------------------- /images/ui-storage-google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-google.png -------------------------------------------------------------------------------- /images/ui-storage-local.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-local.png -------------------------------------------------------------------------------- /images/ui-storage-noobaa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-noobaa.png -------------------------------------------------------------------------------- /images/ui-storage-s3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-s3.png -------------------------------------------------------------------------------- /images/ui-storage-swift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-storage-swift.png -------------------------------------------------------------------------------- /images/ui-time-machine-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-time-machine-add.png -------------------------------------------------------------------------------- /images/ui-time-machine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/ui-time-machine.png -------------------------------------------------------------------------------- /images/uid-attribute-ldap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/uid-attribute-ldap.png -------------------------------------------------------------------------------- /images/update-channel-approval-strategy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/update-channel-approval-strategy.png -------------------------------------------------------------------------------- /images/updated-layers-in-cache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/updated-layers-in-cache.png -------------------------------------------------------------------------------- /images/user-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/user-options.png -------------------------------------------------------------------------------- /images/user-relative-dn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/user-relative-dn.png -------------------------------------------------------------------------------- /images/view-credentials-dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/view-credentials-dropdown.png -------------------------------------------------------------------------------- /images/view-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/view-credentials.png -------------------------------------------------------------------------------- /images/view-tags-set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/view-tags-set.png -------------------------------------------------------------------------------- /images/workers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quay/quay-docs/8e20111839e3e2599b76bc663d4763ef10873c95/images/workers.png -------------------------------------------------------------------------------- /manage_quay/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Manage {productname} 4 | 5 | Manage {productname} 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /manage_quay/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /modules/access-control-intro.adoc: -------------------------------------------------------------------------------- 1 | [[access-control-intro]] 2 | = Access control in {productname} 3 | 4 | {productname} provides both role-based access control (RBAC) and fine-grained access control, and has team features that allow for limited access control of repositories, organizations, and user privileges. {productname} access control features also provide support for dispersed organizations. 5 | 6 | 7 | -------------------------------------------------------------------------------- /modules/adding-a-new-tag-to-image.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="adding-a-new-tag-to-image"] 3 | = Adding a new image tag to an image by using the UI 4 | 5 | You can add a new tag to an image in 6 | ifeval::["{context}" == "quay-io"] 7 | {quayio}. 8 | endif::[] 9 | ifeval::["{context}" == "use-quay"] 10 | {productname}. 11 | endif::[] 12 | 13 | .Procedure 14 | 15 | . On the {productname} v2 UI dashboard, click *Repositories* in the navigation pane. 16 | 17 | . Click the name of a repository that has image tags. 18 | 19 | . Click the menu kebab, then click *Add new tag*. 20 | 21 | . Enter a name for the tag, then, click *Create tag*. 22 | + 23 | The new tag is now listed on the *Repository Tags* page. -------------------------------------------------------------------------------- /modules/adjusting-repository-visibility-via-the-ui.adoc: -------------------------------------------------------------------------------- 1 | 2 | // module included in the following assemblies: 3 | 4 | // * use_quay/master.adoc 5 | 6 | :_content-type: CONCEPT 7 | [id="adjusting-image-repository-visibility-the-ui"] 8 | = Adjusting repository visibility by using the UI 9 | 10 | You can adjust the visibility of a repository to make it either public of private by using the {productname} UI. 11 | 12 | .Procedure 13 | 14 | . On the {productname} UI, click *Repositories* in the navigation pane. 15 | 16 | . Click the name of a repository. 17 | 18 | . Click *Settings* in the navigation pane. 19 | 20 | . Click *Repository visibility*. 21 | 22 | . Click *Make private*. The repository is made private, and only users on the permissions list can view and interact with it. -------------------------------------------------------------------------------- /modules/advanced-quay-poc-deployment.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="advanced-quay-poc-deployment"] 3 | = Proof of concept deployment using SSL/TLS certificates 4 | 5 | Use the following sections to configure a proof of concept {productname} deployment with SSL/TLS certificates. -------------------------------------------------------------------------------- /modules/airgap-clair.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="airgap-clair"] 3 | = Using Clair in air-gapped environments 4 | 5 | By default, Clair tries to run automated updates against Red Hat servers. To run Clair in network environments that are disconnected from the internet, you must execute the following actions: 6 | 7 | * Disable Clair auto-update in the Clair configuration bundle. 8 | * Manually update the vulnerability database on a system with internet access and then export to disk. 9 | * Transfer the on-disk data to the target system using offline media, and then manually import it into Clair. 10 | 11 | Using Clair in air-gapped environments is fully containerized and, as a result, is easy to automate. -------------------------------------------------------------------------------- /modules/api-appspecifictokens.adoc: -------------------------------------------------------------------------------- 1 | 2 | = appspecifictokens 3 | Manages app specific tokens for the current user. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-build.adoc: -------------------------------------------------------------------------------- 1 | 2 | = build 3 | Create, list, cancel and get status/logs of repository builds. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-discovery.adoc: -------------------------------------------------------------------------------- 1 | 2 | = discovery 3 | API discovery information. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-error.adoc: -------------------------------------------------------------------------------- 1 | 2 | = error 3 | Error details API. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-globalmessages-getGlobalMessages.adoc: -------------------------------------------------------------------------------- 1 | 2 | = getGlobalMessages 3 | Return a super users messages. 4 | 5 | [discrete] 6 | == GET /api/v1/messages 7 | 8 | 9 | 10 | **Authorizations: ** 11 | 12 | [discrete] 13 | == Responses 14 | 15 | [options="header", width=100%, cols=".^2a,.^14a,.^4a"] 16 | |=== 17 | |HTTP Code|Description|Schema 18 | |200|Successful invocation| 19 | |400|Bad Request|<<_apierror,ApiError>> 20 | |401|Session required|<<_apierror,ApiError>> 21 | |403|Unauthorized access|<<_apierror,ApiError>> 22 | |404|Not found|<<_apierror,ApiError>> 23 | |=== 24 | 25 | [discrete] 26 | == Example command 27 | [source,terminal] 28 | ---- 29 | $ curl -X GET "https:///api/v1/messages" \ 30 | -H "Authorization: Bearer " 31 | ---- -------------------------------------------------------------------------------- /modules/api-globalmessages.adoc: -------------------------------------------------------------------------------- 1 | 2 | = globalmessages 3 | Messages API. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-logs.adoc: -------------------------------------------------------------------------------- 1 | 2 | = logs 3 | Access usage logs for organizations or repositories. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-manifest.adoc: -------------------------------------------------------------------------------- 1 | 2 | = manifest 3 | Manage the manifests of a repository. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-mirror.adoc: -------------------------------------------------------------------------------- 1 | 2 | = mirror 3 | 4 | 5 | -------------------------------------------------------------------------------- /modules/api-namespacequota-listUserQuota.adoc: -------------------------------------------------------------------------------- 1 | 2 | = listUserQuota 3 | 4 | 5 | [discrete] 6 | == GET /api/v1/user/quota 7 | 8 | 9 | 10 | **Authorizations: **oauth2_implicit (**user:admin**) 11 | 12 | 13 | 14 | [discrete] 15 | == Responses 16 | 17 | [options="header", width=100%, cols=".^2a,.^14a,.^4a"] 18 | |=== 19 | |HTTP Code|Description|Schema 20 | |200|Successful invocation| 21 | |400|Bad Request|<<_apierror,ApiError>> 22 | |401|Session required|<<_apierror,ApiError>> 23 | |403|Unauthorized access|<<_apierror,ApiError>> 24 | |404|Not found|<<_apierror,ApiError>> 25 | |=== 26 | 27 | [discrete] 28 | == Example command 29 | 30 | [source,terminal] 31 | ---- 32 | $ curl -X GET "https:///api/v1/user/quota" \ 33 | -H "Authorization: Bearer " 34 | ---- -------------------------------------------------------------------------------- /modules/api-namespacequota.adoc: -------------------------------------------------------------------------------- 1 | 2 | = namespacequota 3 | 4 | 5 | -------------------------------------------------------------------------------- /modules/api-organization.adoc: -------------------------------------------------------------------------------- 1 | 2 | = organization 3 | Manage organizations, members and OAuth applications. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-permission.adoc: -------------------------------------------------------------------------------- 1 | 2 | = permission 3 | Manage repository permissions. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-policy.adoc: -------------------------------------------------------------------------------- 1 | 2 | = policy 3 | 4 | 5 | -------------------------------------------------------------------------------- /modules/api-prototype.adoc: -------------------------------------------------------------------------------- 1 | 2 | = prototype 3 | Manage default permissions added to repositories. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-referrers-getReferrers.adoc: -------------------------------------------------------------------------------- 1 | 2 | = getReferrers 3 | List v2 API referrers of an image digest. 4 | 5 | [discrete] 6 | == GET /v2/{organization_name}/{repository_name}/referrers/{digest} 7 | 8 | [discrete] 9 | == Request body schema (application/json) 10 | 11 | Referrers of an image digest. 12 | 13 | |=== 14 | |Type|Name|Description|Schema 15 | |path|**orgname** + 16 | _required_|The name of the organization|string 17 | |path|**repository** + 18 | _required_|The full path of the repository. e.g. namespace/name|string 19 | |path|**referrers** + 20 | _required_| Looks up the OCI referrers of a manifest under a repository.|string 21 | |**manifest_digest** + 22 | _required_|The digest of the manifest|string 23 | |=== -------------------------------------------------------------------------------- /modules/api-referrers.adoc: -------------------------------------------------------------------------------- 1 | 2 | = referrers 3 | List v2 API referrers -------------------------------------------------------------------------------- /modules/api-repository.adoc: -------------------------------------------------------------------------------- 1 | 2 | = repository 3 | List, create and manage repositories. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-repositorynotification.adoc: -------------------------------------------------------------------------------- 1 | 2 | = repositorynotification 3 | List, create and manage repository events/notifications. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-repotoken.adoc: -------------------------------------------------------------------------------- 1 | 2 | = repotoken 3 | Manage repository access tokens (DEPRECATED). 4 | 5 | -------------------------------------------------------------------------------- /modules/api-robot.adoc: -------------------------------------------------------------------------------- 1 | 2 | = robot 3 | Manage user and organization robot accounts. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-search.adoc: -------------------------------------------------------------------------------- 1 | 2 | = search 3 | Conduct searches against all registry context. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-secscan.adoc: -------------------------------------------------------------------------------- 1 | 2 | = secscan 3 | List and manage repository vulnerabilities and other security information. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-superuser-listServiceKeys.adoc: -------------------------------------------------------------------------------- 1 | 2 | = listServiceKeys 3 | 4 | 5 | [discrete] 6 | == GET /api/v1/superuser/keys 7 | 8 | 9 | 10 | **Authorizations: **oauth2_implicit (**super:user**) 11 | 12 | 13 | 14 | [discrete] 15 | == Responses 16 | 17 | [options="header", width=100%, cols=".^2a,.^14a,.^4a"] 18 | |=== 19 | |HTTP Code|Description|Schema 20 | |200|Successful invocation| 21 | |400|Bad Request|<<_apierror,ApiError>> 22 | |401|Session required|<<_apierror,ApiError>> 23 | |403|Unauthorized access|<<_apierror,ApiError>> 24 | |404|Not found|<<_apierror,ApiError>> 25 | |=== 26 | 27 | [discrete] 28 | == Example command 29 | 30 | [source,terminal] 31 | ---- 32 | $ curl -X GET \ 33 | -H "Authorization: Bearer " \ 34 | "https:///api/v1/superuser/keys" 35 | ---- -------------------------------------------------------------------------------- /modules/api-superuser.adoc: -------------------------------------------------------------------------------- 1 | 2 | = superuser 3 | Superuser API. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-tag.adoc: -------------------------------------------------------------------------------- 1 | 2 | = tag 3 | Manage the tags of a repository. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-team.adoc: -------------------------------------------------------------------------------- 1 | 2 | = team 3 | Create, list and manage an organization's teams. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-trigger.adoc: -------------------------------------------------------------------------------- 1 | 2 | = trigger 3 | Create, list and manage build triggers. 4 | 5 | -------------------------------------------------------------------------------- /modules/api-user.adoc: -------------------------------------------------------------------------------- 1 | 2 | = user 3 | Manage the current user. 4 | 5 | -------------------------------------------------------------------------------- /modules/arch-georpl-features.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-georpl-features"] 3 | = Geo-replication features 4 | 5 | * When geo-replication is configured, container image pushes will be written to the preferred storage engine for that {productname} instance. This is typically the nearest storage backend within the region. 6 | 7 | * After the initial push, image data will be replicated in the background to other storage engines. 8 | 9 | * The list of replication locations is configurable and those can be different storage backends. 10 | 11 | * An image pull will always use the closest available storage engine, to maximize pull performance. 12 | 13 | * If replication has not been completed yet, the pull will use the source storage backend instead. -------------------------------------------------------------------------------- /modules/arch-intro-access-control.adoc: -------------------------------------------------------------------------------- 1 | [[arch-intro-access-control]] 2 | = Access control 3 | 4 | {productname} provides both role-based access control (RBAC) and fine-grained access control, and has team features that allow for limited access control of repositories, organizations, and user privileges. {productname} access control features also provide support for dispersed organizations. -------------------------------------------------------------------------------- /modules/arch-intro-build-automation.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-intro-build-automation"] 3 | = Build automation 4 | 5 | {productname} supports building Dockerfiles using a set of worker nodes on {ocp} or Kubernetes platforms. Build triggers, such as GitHub webhooks, can be configured to automatically build new versions of your repositories when new code is committed. 6 | 7 | Prior to {productname} 3.7, {productname} ran Podman commands in virtual machines launched by pods. Running builds on virtual platforms requires enabling nested virtualization, which is not featured in {rhel} or {ocp}. As a result, builds had to run on bare metal clusters, which is an inefficient use of resources. With {productname} 3.7, this requirement was removed and builds could be run on {ocp} clusters running on virtualized or bare metal platforms. -------------------------------------------------------------------------------- /modules/arch-intro-other-features.adoc: -------------------------------------------------------------------------------- 1 | [[arch-intro-other-features]] 2 | = Other features 3 | 4 | * Full standards / spec support (Docker v2-2) 5 | * Long-term protocol support 6 | * OCI compatibility through test suite compliance 7 | * Enterprise grade support 8 | * Regular updates -------------------------------------------------------------------------------- /modules/arch-intro-recent-features.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-intro-recent-features"] 3 | = Recently added features 4 | 5 | See the link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html/red_hat_quay_release_notes/index[{productname} Release Notes] for information about the latest features, enhancements, deprecations, and known issues. -------------------------------------------------------------------------------- /modules/arch-intro-scalability.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-intro-scalability"] 3 | = Scalability and high availability (HA) 4 | 5 | The code base used for {productname} is the same as the code base used for link:https::/quay.io[Quay.io], which is the highly available container image registry hosted by Red Hat. Quay.io and {productname} offer a multitenant SaaS solution. As a result, users can be confident that their deployment can deliver at scale with high availability, whether their deployment is on-prem or on a public cloud. -------------------------------------------------------------------------------- /modules/arch-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-intro"] 3 | = {productname} overview 4 | 5 | {productname} is a distributed and highly available container image registry for your enterprise. 6 | 7 | {productname} container registry platform provides secure storage, distribution, access controls, geo-replications, repository mirroring, and governance of containers and cloud-native artifacts on any infrastructure. It is available as a standalone component or as an Operator for {ocp}, and is deployable on-prem or on a public cloud. 8 | 9 | image:178_Quay_architecture_0821_features.png[Quay features] 10 | 11 | This guide provides an insight into architectural patterns to use when deploying {productname}. This guide also offers sizing guidance and deployment prerequisites, along with best practices for ensuring high availability for your {productname} registry. 12 | -------------------------------------------------------------------------------- /modules/arch-prereqs.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-prereqs"] 3 | = {productname} prerequisites 4 | 5 | Before deploying {productname}, you must provision image storage, a database, and Redis. 6 | -------------------------------------------------------------------------------- /modules/backing-up-and-restoring-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="backing-up-and-restoring-intro"] 3 | = Backing up and restoring {productname} managed by the {productname} Operator 4 | 5 | Use the content within this section to back up and restore {productname} when managed by the {productname} Operator on {ocp} 6 | -------------------------------------------------------------------------------- /modules/build-automation-intro.adoc: -------------------------------------------------------------------------------- 1 | [[build-automation-intro]] 2 | = Build automation 3 | 4 | 5 | * Seamless Git integration 6 | * Build workers 7 | * Webhooks -------------------------------------------------------------------------------- /modules/build-enhanced-arch.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="red-hat-quay-builds-architecture"] 3 | = {productname} enhanced build architecture 4 | 5 | The following image shows the expected design flow and architecture of the enhanced build features: 6 | 7 | image:quay-builds-architecture.png[Enhanced Quay builds architecture] 8 | 9 | With this enhancement, the build manager first creates the `Job Object`. Then, the `Job Object` then creates a pod using the `quay-builder-image`. The `quay-builder-image` will contain the `quay-builder binary` and the `Podman` service. The created pod runs as `unprivileged`. The `quay-builder binary` then builds the image while communicating status and retrieving build information from the Build Manager. 10 | -------------------------------------------------------------------------------- /modules/build-limitations.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="red-hat-quay-build-limitations"] 3 | = {productname} build limitations 4 | 5 | Running builds in {productname} in an unprivileged context might cause some commands that were working under the previous build strategy to fail. Attempts to change the build strategy could potentially cause performance issues and reliability with the build. 6 | 7 | Running builds directly in a container does not have the same isolation as using virtual machines. Changing the build environment might also caused builds that were previously working to fail. 8 | -------------------------------------------------------------------------------- /modules/build-logs-not-loading.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="build-logs-not-loading"] 3 | = Build logs are not loading 4 | 5 | In some cases, attempting to load logs for a repository build results in only a throbber icon, and no logs are displayed. This typically occurs when you are using a browser equipped with one of the following extensions: AdBlock, uBlock, or Privacy Badger. These browser extensions can cause the loading of build logs to be cancelled. To resolve this issue, disable the browser extension and reload the page. -------------------------------------------------------------------------------- /modules/build-pre-configuration.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="build-pre-configuration"] 3 | = Setting up {productname} builders with {ocp} 4 | 5 | You must pre-configure {productname-ocp} to allow the use of the _builder_ workers before using the _builds_ feature. -------------------------------------------------------------------------------- /modules/build-trigger-error.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="build-trigger-error"] 3 | = Unable to add a build trigger 4 | 5 | In some cases, attempting to add a build trigger results in the following error message: `You are not admin on the SCM repository`. In order for {productname} to add the webhook callback necessary for Build Triggers, the user granting {productname} access to the SCM repository must have administrative access on that repository. -------------------------------------------------------------------------------- /modules/build-trigger-overview.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="build-trigger-overview"] 3 | = Build triggers 4 | 5 | _Build triggers_ are automated mechanisms that start a container image build when specific conditions are met, such as changes to source code, updates to dependencies, or link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html-single/use_red_hat_quay/#webhook[creating a webhook call]. These triggers help automate the image-building process and ensure that the container images are always up-to-date without manual intervention. 6 | 7 | The following sections cover content related to creating a build trigger, tag naming conventions, how to skip a source control-triggered build, starting a _build_, or manually triggering a _build_. 8 | -------------------------------------------------------------------------------- /modules/cannot-locate-dockerfile.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="cannot-locate-dockerfile"] 3 | = Unable to locate specified Dockerfile 4 | 5 | When building an image, the following error is returned: `A build step failed: API error (500): Cannot locate specified Dockerfile: Dockerfile`. This occurs for one of two reasons: 6 | 7 | * *The `.dockerignore` file contains the Dockerfile.* Unlike Docker Hub, the Dockerfile is part of the Build Context on {productname}. The Dockerfile must not appear in the `.dockerignore` file. Remove the Dockerfile from the `.dockerignore` file to resolve the issue. 8 | 9 | * *The build trigger is incorrect.* Verify the Dockerfile location and the branch or tag value specified in the build trigger. -------------------------------------------------------------------------------- /modules/cannot-reach-registry-endpoint.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="cannot-reach-registry-endpoint"] 3 | = Unable to reach registry endpoint 4 | 5 | In some cases, trying to pull a Docker image returns the following error: `Could not reach any registry endpoint`. This usually occurs because you are attempting to pull a non-existent tag. If you do not specify a tag, newer version of Docker attempt to pull the "latest" tag, regardless of whether it actually exists. -------------------------------------------------------------------------------- /modules/clair-add-info.adoc: -------------------------------------------------------------------------------- 1 | [[clair-add-info]] 2 | = Additional Information 3 | 4 | For detailed documentation on the internals of Clair, including how the microservices are structured, please see the link:https://quay.github.io/clair[Upstream Clair] and link:https://quay.github.io/claircore[ClairCore] documentation. 5 | -------------------------------------------------------------------------------- /modules/clair-advanced-configuration-overview.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="clair-advanced-configuration-overview"] 3 | = Advanced Clair configuration 4 | 5 | Use the procedures in the following sections to configure advanced Clair settings. -------------------------------------------------------------------------------- /modules/clair-airgap.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="clair-airgap"] 3 | == Air gapped Clair 4 | 5 | For flexability, Clair supports running updaters in a separate environment and importing the results. This is aimed at supporting installations that reject the Clair cluster from communication with the internet directly. 6 | -------------------------------------------------------------------------------- /modules/clair-cve.adoc: -------------------------------------------------------------------------------- 1 | // Module included in the following assemblies: 2 | // 3 | // clair/master.adoc 4 | 5 | :_content-type: CONCEPT 6 | [id="clair-cve"] 7 | = CVE ratings from the National Vulnerability Database 8 | 9 | As of Clair v4.2, Common Vulnerability Scoring System (CVSS) enrichment data is now viewable in the {productname} UI. Additionally, Clair v4.2 adds CVSS scores from the National Vulnerability Database for detected vulnerabilities. 10 | 11 | With this change, if the vulnerability has a CVSS score that is within 2 levels of the distribution score, the {productname} UI present's the distribution's score by default. For example: 12 | 13 | image:clair-4-2-enrichment-data.png[Clair v4.2 data display] 14 | 15 | This differs from the previous interface, which would only display the following information: 16 | 17 | image:clair-4-0-cve-report.png[Clair v4 data display] 18 | -------------------------------------------------------------------------------- /modules/clair-distroless-container-images.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="clair-distroless-container-images"] 3 | = Does Clair supporting scanning of disto-less container images? 4 | 5 | Support for scanning distro-less containers was added in Clair 4.6.1. This feature is not present in earlier versions. For Clair on the {productname} Operator, this feature was released with {productname} 3.8.7. -------------------------------------------------------------------------------- /modules/clair-notifications.adoc: -------------------------------------------------------------------------------- 1 | [[clair-notifications]] 2 | = Clair Notifications 3 | 4 | When Clair received a new vulnerability affecting a previously indexed manifest, it will notify {productname} so that a new scan can be requested. Only the most severe vulnerabilities trigger a notification to avoid excessive scan requests. This notification mechanism is automatically set up when Clair is configured in {productname}'s configuration. 5 | 6 | Clair notifications can also be set up for external consumption via AMQP and STOMP protocols. For details on how to set this up please consult the link:https://quay.github.io/clair/concepts/notifications.html[upstream Clair documentation]. 7 | -------------------------------------------------------------------------------- /modules/clair-openshift.adoc: -------------------------------------------------------------------------------- 1 | // Module included in the following assemblies: 2 | // 3 | // clair/master.adoc 4 | 5 | :_content-type: CONCEPT 6 | [id="clair-quay-operator-overview"] 7 | = Clair on {ocp} 8 | 9 | To set up Clair v4 (Clair) on a {productname} deployment on {ocp}, it is recommended to use the {productname} Operator. By default, the {productname} Operator installs or upgrades a Clair deployment along with your {productname} deployment and configure Clair automatically. 10 | -------------------------------------------------------------------------------- /modules/clair-standalone-using.adoc: -------------------------------------------------------------------------------- 1 | [[clair-standalone-using]] 2 | = Using Clair security scanning 3 | 4 | 5 | . From the command line, log in to the registry: 6 | + 7 | .... 8 | $ sudo podman login --tls-verify=false quay-server.example.com 9 | Username: quayadmin 10 | Password: 11 | Login Succeeded! 12 | .... 13 | 14 | . Pull, tag and push a sample image to the registry: 15 | + 16 | .... 17 | $ sudo podman pull ubuntu:20.04 18 | $ sudo podman tag docker.io/library/ubuntu:20.04 quay-server.example.com/quayadmin/ubuntu:20.04 19 | $ sudo podman push --tls-verify=false quay-server.example.com/quayadmin/ubuntu:20.04 20 | .... 21 | 22 | The results from the security scanning can be seen in the Quay UI, as shown in the following images: 23 | 24 | .Report summary 25 | image:poc-clair-1.png[Scanning summary] 26 | 27 | .Report details 28 | image:poc-clair-2.png[Scanning details] -------------------------------------------------------------------------------- /modules/clair-unmanaged.adoc: -------------------------------------------------------------------------------- 1 | // Module included in the following assemblies: 2 | // 3 | // clair/master.adoc 4 | 5 | :_content-type: CONCEPT 6 | [id="unmanaged-clair-configuration"] 7 | = Unmanaged Clair configuration 8 | 9 | {productname} users can run an unmanaged Clair configuration with the {productname} {ocp} Operator. This feature allows users to create an unmanaged Clair database, or run their custom Clair configuration without an unmanaged database. 10 | 11 | An unmanaged Clair database allows the {productname} Operator to work in a geo-replicated environment, where multiple instances of the Operator must communicate with the same database. An unmanaged Clair database can also be used when a user requires a highly-available (HA) Clair database that exists outside of a cluster. -------------------------------------------------------------------------------- /modules/clair-updaters.adoc: -------------------------------------------------------------------------------- 1 | // Module included in the following assemblies: 2 | // 3 | // clair/master.adoc 4 | 5 | :_content-type: CONCEPT 6 | [id="clair-updaters"] 7 | = Clair updaters 8 | 9 | Clair uses `Go` packages called _updaters_ that contain the logic of fetching and parsing different vulnerability databases. 10 | 11 | Updaters are usually paired with a matcher to interpret if, and how, any vulnerability is related to a package. Administrators might want to update the vulnerability database less frequently, or not import vulnerabilities from databases that they know will not be used. -------------------------------------------------------------------------------- /modules/clairv2-to-v4.adoc: -------------------------------------------------------------------------------- 1 | [[clairv2-to-v4]] 2 | = Migrating from Clair v2 to Clair v4 3 | 4 | Starting with {productname} 3.4, Clair v4 is used by default. It will also be the only version of Clair continually supported, as older versions of {productname} are not supported with Clair v4 in production. Users should continue using Clair v2 if using a version of {productname} earlier than 3.4. 5 | 6 | Existing {productname} 3.3 deployments will be upgraded to Clair v4 when managed via the {productname} Operator. Manually upgraded {productname} deployments can install Clair v4 side-by-side, which will cause the following: 7 | 8 | * All new image vulnerability scans to be performed by Clair v4 9 | * Existing images to be rescanned by Clair v4 10 | -------------------------------------------------------------------------------- /modules/clairv4-intro.adoc: -------------------------------------------------------------------------------- 1 | [[clairv4-intro]] 2 | == Clair v4 3 | 4 | Released with {productname} 3.4, Clair v4 is the latest version of Clair. It is built on a new architecture consisting of Clair Core and a service wrapper. Clair v4 made several enhancements to Clair v2, including: 5 | 6 | * Support for the Python programming language package. Support for additional languages is planned for future versions of Clair and {productname}. 7 | * Immutable data model and a new manifest-oriented API. 8 | * Refocus on the latest Open Container Initiative (OCI) specifications. 9 | * Image hashes and layer hashes are now treated as content addressable, so that images are uniquely identified as a whole. 10 | -------------------------------------------------------------------------------- /modules/clairv4-limitations.adoc: -------------------------------------------------------------------------------- 1 | [[clairv4-limitations]] 2 | = Clair v4 limitations 3 | 4 | The following limitations are currently being addressed by the development team: 5 | 6 | * As of Clair v4, both operating system level and programming language packages are covered. The latter is currently limited to Python, however support for other languages will be added in the future. 7 | 8 | * There is currently limited multi-arch support on Clair v4, which works for package managers like `rpm`, `yum`, and `dnf` that compensates for differences in endianess. 9 | 10 | * Clair v4 does not currently support MSFT Windows images. 11 | 12 | * Clair v4 does not currently support slim / scratch container images. -------------------------------------------------------------------------------- /modules/con_deploy_quay_start_using.adoc: -------------------------------------------------------------------------------- 1 | = Starting to use {productname} 2 | With {productname} now running, you can: 3 | 4 | * Select Tutorial from the Quay home page to try the 15-minute tutorial. In the tutorial, you learn to log into Quay, start a container, create images, push repositories, view repositories, and change repository permissions with Quay. 5 | * Refer to the link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html-single/use_red_hat_quay/[Use {productname}] for information on working 6 | with {productname} repositories. 7 | -------------------------------------------------------------------------------- /modules/con_schema.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="quay-schema"] 3 | = Schema for {productname} configuration 4 | 5 | Most {productname} configuration information is stored in the `config.yaml` file. All configuration options are described in the link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html-single/configure_red_hat_quay/index#doc-wrapper[{productname} Configuration Guide]. -------------------------------------------------------------------------------- /modules/config-api-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-using-api"] 3 | = Using the configuration API 4 | 5 | The configuration tool exposes 4 endpoints that can be used to build, validate, bundle and deploy a configuration. The config-tool API is documented at link:https://github.com/quay/config-tool/blob/master/pkg/lib/editor/API.md[]. In this section, you will see how to use the API to retrieve the current configuration and how to validate any changes you make. -------------------------------------------------------------------------------- /modules/config-debug-variables.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-debug-variables"] 3 | = Debug variables 4 | 5 | The following debug variables are available on {productname}. 6 | 7 | .Debug configuration variables 8 | [cols="3a,1a,2a",options="header"] 9 | |=== 10 | | Variable | Type | Description 11 | | **DEBUGLOG** | Boolean | Whether to enable or disable debug logs. 12 | | **USERS_DEBUG** |Integer. Either `0` or `1`. | Used to debug LDAP operations in clear text, including passwords. Must be used with `DEBUGLOG=TRUE`. + 13 | [IMPORTANT] 14 | ==== 15 | Setting `USERS_DEBUG=1` exposes credentials in clear text. This variable should be removed from the {productname} deployment after debugging. The log file that is generated with this environment variable should be scrutinized, and passwords should be removed before sending to other users. Use with caution. 16 | ==== 17 | |=== -------------------------------------------------------------------------------- /modules/config-envvar-georepl.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-envvar-georepl"] 3 | = Geo-replication 4 | 5 | The same configuration should be used across all regions, with exception of the storage backend, which can be configured explicitly using the `QUAY_DISTRIBUTED_STORAGE_PREFERENCE` environment variable. 6 | 7 | .Geo-replication configuration 8 | [cols="3a,1a,2a",options="header"] 9 | |=== 10 | | Variable | Type | Description 11 | | **QUAY_DISTRIBUTED_STORAGE_PREFERENCE** | String | The preferred storage engine (by ID in DISTRIBUTED_STORAGE_CONFIG) to use. 12 | |=== 13 | -------------------------------------------------------------------------------- /modules/config-envvar-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-envar-intro"] 3 | = Environment variables 4 | 5 | {productname} supports a limited number of environment variables for dynamic configuration. 6 | 7 | 8 | -------------------------------------------------------------------------------- /modules/config-extra-ca-certs-quay.adoc: -------------------------------------------------------------------------------- 1 | [id="config-extra-ca-certs-quay"] 2 | = Adding additional Certificate Authorities for {productname} 3 | 4 | Certificate Authorities (CAs) are used by {productname} to verify SSL/TLS connections with external services, like ODIC providers, LDAP providers, storage providers, and so on. 5 | 6 | The following sections provide information about uploading additional CAs to {productname} depending on your deployment type. -------------------------------------------------------------------------------- /modules/config-fields-aci.adoc: -------------------------------------------------------------------------------- 1 | [[config-fields-aci]] 2 | = ACI configuration fields 3 | 4 | 5 | .ACI configuration fields 6 | [cols="3a,1a,2a",options="header"] 7 | |=== 8 | | Field | Type | Description 9 | | **FEATURE_ACI_CONVERSION** | Boolean | Whether to enable conversion to ACIs + 10 | + 11 | **Default:** False 12 | | **GPG2_PRIVATE_KEY_FILENAME** | String | The filename of the private key used to decrypte ACIs 13 | | **GPG2_PRIVATE_KEY_NAME** | String | The name of the private key used to sign ACIs 14 | | **GPG2_PUBLIC_KEY_FILENAME** | String | The filename of the public key used to encrypt ACIs 15 | |=== 16 | -------------------------------------------------------------------------------- /modules/config-fields-app-tokens.adoc: -------------------------------------------------------------------------------- 1 | [[config-fields-app-tokens]] 2 | = App tokens configuration fields 3 | 4 | .App tokens configuration fields 5 | [cols="3a,1a,2a",options="header"] 6 | |=== 7 | | Field | Type | Description 8 | | **FEATURE_APP_SPECIFIC_TOKENS** | Boolean | If enabled, users can create tokens for use by the Docker CLI + 9 | + 10 | **Default:** True 11 | | **APP_SPECIFIC_TOKEN_EXPIRATION** | String | The expiration for external app tokens. + 12 | + 13 | **Default** None + 14 | **Pattern:** `^[0-9]+(w\|m\|d\|h\|s)$` 15 | | **EXPIRED_APP_SPECIFIC_TOKEN_GC** | String | Duration of time expired external app tokens will remain before being garbage collected + 16 | + 17 | **Default:** 1d 18 | |=== -------------------------------------------------------------------------------- /modules/config-fields-build-logs.adoc: -------------------------------------------------------------------------------- 1 | [id="config-fields-build-logs"] 2 | = Build logs configuration fields 3 | 4 | .Build logs configuration fields 5 | [cols="3a,1a,2a",options="header"] 6 | |=== 7 | | Field | Type | Description 8 | | **FEATURE_READER_BUILD_LOGS** | Boolean | If set to true, build logs can be read by those with `read` access to the repository, rather than only `write` access or `admin` access. + 9 | + 10 | **Default:** `False` 11 | | **LOG_ARCHIVE_LOCATION** | String | The storage location, defined in `DISTRIBUTED_STORAGE_CONFIG`, in which to place the archived build logs. + 12 | + 13 | **Example:** `s3_us_east` 14 | | **LOG_ARCHIVE_PATH** | String | The path under the configured storage engine in which to place the archived build logs in `.JSON` format. + 15 | + 16 | **Example:** `archives/buildlogs` 17 | |=== -------------------------------------------------------------------------------- /modules/config-fields-hcp.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-fields-hcp"] 3 | = Hitachi Content Platform object storage 4 | 5 | The following YAML shows a sample configuration using HCP for object storage. 6 | 7 | .Example HCP storage configuration 8 | [source,yaml] 9 | ---- 10 | DISTRIBUTED_STORAGE_CONFIG: 11 | hcp_us: 12 | - RadosGWStorage 13 | - access_key: 14 | bucket_name: 15 | hostname: 16 | is_secure: true 17 | secret_key: 18 | storage_path: /datastorage/registry 19 | signature_version: v4 20 | DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: 21 | - hcp_us 22 | DISTRIBUTED_STORAGE_PREFERENCE: 23 | - hcp_us 24 | ---- -------------------------------------------------------------------------------- /modules/config-fields-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-intro"] 3 | = Configuration fields 4 | 5 | This section describes the both required and optional configuration fields when deploying {productname}. -------------------------------------------------------------------------------- /modules/config-fields-ipv6.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-fields-ipv6"] 3 | = IPv6 configuration field 4 | 5 | .IPv6 configuration field 6 | [cols="3a,1a,2a",options="header"] 7 | |=== 8 | |Field | Type |Description 9 | | **FEATURE_LISTEN_IP_VERSION** | String | Enables IPv4, IPv6, or dual-stack protocol family. This configuration field must be properly set, otherwise {productname} fails to start. 10 | 11 | *Default:* `IPv4` 12 | 13 | *Additional configurations:* `IPv6`, `dual-stack` 14 | |=== -------------------------------------------------------------------------------- /modules/config-fields-jwt.adoc: -------------------------------------------------------------------------------- 1 | [[config-fields-jwt]] 2 | = JWT configuration fields 3 | 4 | 5 | .JWT configuration fields 6 | [cols="3a,1a,2a",options="header"] 7 | |=== 8 | | Field | Type | Description 9 | | **JWT_AUTH_ISSUER** | String | The endpoint for JWT users + 10 | + 11 | **Pattern**: `^http(s)?://(.)+$` + 12 | **Example**: `http://192.168.99.101:6060` 13 | | **JWT_GETUSER_ENDPOINT** | String | The endpoint for JWT users + 14 | **Pattern**: `^http(s)?://(.)+$` + 15 | **Example**: `http://192.168.99.101:6060` 16 | | **JWT_QUERY_ENDPOINT** | String | The endpoint for JWT queries + 17 | + 18 | **Pattern**: `^http(s)?://(.)+$` + 19 | **Example**: `http://192.168.99.101:6060` 20 | | **JWT_VERIFY_ENDPOINT** | String | The endpoint for JWT verification + 21 | + 22 | **Pattern**: `^http(s)?://(.)+$` + 23 | **Example**: `http://192.168.99.101:6060` 24 | |=== -------------------------------------------------------------------------------- /modules/config-fields-modelcache-clustered-redis.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-modelcache-clustered-redis"] 3 | = Clustered Redis configuration option 4 | 5 | Use the following configuration for a clustered Redis instance: 6 | 7 | [source,yaml] 8 | ---- 9 | DATA_MODEL_CACHE_CONFIG: 10 | engine: rediscluster 11 | redis_config: 12 | startup_nodes: 13 | - host: 14 | port: 15 | password: 16 | read_from_replicas: 17 | skip_full_coverage_check: 18 | ssl: 19 | ---- -------------------------------------------------------------------------------- /modules/config-fields-modelcache-memcache.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-modelcache-memcache"] 3 | = Memcache configuration option 4 | 5 | Memcache is the default ModelCache configuration option. With Memcache, no additional configuration is necessary. 6 | -------------------------------------------------------------------------------- /modules/config-fields-modelcache-single-redis.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-modelcache-single-redis"] 3 | = Single Redis configuration option 4 | 5 | The following configuration is for a single Redis instance with optional read-only replicas: 6 | 7 | [source,yaml] 8 | ---- 9 | DATA_MODEL_CACHE_CONFIG: 10 | engine: redis 11 | redis_config: 12 | primary: 13 | host: 14 | port: 15 | password: 16 | ssl: 17 | replica: 18 | host: 19 | port: 20 | password: 21 | ssl: 22 | ---- -------------------------------------------------------------------------------- /modules/config-fields-modelcache.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-modelcache"] 3 | = ModelCache configuration options 4 | 5 | The following options are available on {productname} for configuring ModelCache. -------------------------------------------------------------------------------- /modules/config-fields-nested-repositories.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-fields-nested-repositories"] 3 | = Nested repositories configuration fields 4 | 5 | Support for nested repository path names has been added under the `FEATURE_EXTENDED_REPOSITORY_NAMES` property. This optional configuration is added to the config.yaml by default. Enablement allows the use of `/` in repository names. 6 | 7 | .OCI and nested repositories configuration fields 8 | [cols="3a,1a,2a",options="header"] 9 | |=== 10 | | Field | Type | Description 11 | | **FEATURE_EXTENDED_REPOSITORY_NAMES** | Boolean | Enable support for nested repositories + 12 | + 13 | **Default:** True 14 | 15 | |=== 16 | 17 | .OCI and nested repositories configuration example 18 | [source,yaml] 19 | ---- 20 | FEATURE_EXTENDED_REPOSITORY_NAMES: true 21 | ---- 22 | -------------------------------------------------------------------------------- /modules/config-fields-netapp-ontap-s3.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-fields-netapp-ontap"] 3 | = NetApp ONTAP S3 object storage 4 | 5 | The following YAML shows a sample configuration using NetApp ONTAP S3. 6 | 7 | [source,yaml] 8 | ---- 9 | DISTRIBUTED_STORAGE_CONFIG: 10 | local_us: 11 | - RadosGWStorage 12 | - access_key: 13 | bucket_name: 14 | hostname: 15 | is_secure: true 16 | port: 17 | secret_key: 18 | storage_path: /datastorage/registry 19 | signature_version: v4 20 | DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: 21 | - local_us 22 | DISTRIBUTED_STORAGE_PREFERENCE: 23 | - local_us 24 | ---- 25 | -------------------------------------------------------------------------------- /modules/config-fields-nutanix.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-fields-nutanix"] 3 | = Nutanix object storage 4 | 5 | The following YAML shows a sample configuration using Nutanix object storage. 6 | 7 | [source,yaml] 8 | ---- 9 | DISTRIBUTED_STORAGE_CONFIG: 10 | nutanixStorage: #storage config name 11 | - RadosGWStorage #actual driver 12 | - access_key: access_key_here #parameters 13 | secret_key: secret_key_here 14 | bucket_name: bucket_name_here 15 | hostname: hostname_here 16 | is_secure: 'true' 17 | port: '443' 18 | storage_path: /datastorage/registry 19 | DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] 20 | DISTRIBUTED_STORAGE_PREFERENCE: #must contain name of the storage config 21 | - nutanixStorage 22 | ---- -------------------------------------------------------------------------------- /modules/config-fields-proxy-cache.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-fields-proxy-cache"] 3 | = Proxy cache configuration fields 4 | 5 | .Proxy configuration 6 | [cols="3a,1a,2a",options="header"] 7 | |=== 8 | |Field |Type |Description 9 | |**FEATURE_PROXY_CACHE** | Boolean | Enables {productname} to act as a pull through cache for upstream registries. 10 | 11 | *Default*: `false` 12 | 13 | |=== -------------------------------------------------------------------------------- /modules/config-fields-recaptcha.adoc: -------------------------------------------------------------------------------- 1 | [[config-fields-recaptcha]] 2 | = Recaptcha configuration fields 3 | 4 | .Recaptcha configuration fields 5 | [cols="3a,1a,2a",options="header"] 6 | |=== 7 | | Field | Type | Description 8 | | **FEATURE_RECAPTCHA** | Boolean | Whether Recaptcha is necessary for user login and recovery + 9 | + 10 | **Default:** False 11 | | **RECAPTCHA_SECRET_KEY** | String | If recaptcha is enabled, the secret key for the Recaptcha service 12 | | **RECAPTCHA_SITE_KEY** | String | If recaptcha is enabled, the site key for the Recaptcha service 13 | |=== -------------------------------------------------------------------------------- /modules/config-fields-robot-account.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-robot-account"] 3 | = Robot account configuration fields 4 | 5 | .Robot account configuration fields 6 | [cols="3a,1a,2a",options="header"] 7 | |=== 8 | |Field | Type |Description 9 | 10 | |**ROBOTS_DISALLOW** |Boolean |When set to `true`, robot accounts are prevented from all interactions, as well as from being created 11 | + 12 | *Default*: `False` 13 | |=== 14 | -------------------------------------------------------------------------------- /modules/config-fields-server.adoc: -------------------------------------------------------------------------------- 1 | [[config-fileds-server]] 2 | = Server configuration 3 | 4 | 5 | .Server configuration 6 | [cols="3a,1a,2a",options="header"] 7 | |=== 8 | | Field | Type | Description 9 | | **SERVER_HOSTNAME** | String | The HTTP host where the registry will be accessible on the network. Include the port number if using a non-standard HTTP/HTTPS port, and omit the scheme. + 10 | + 11 | **Example:** `quay-server.example.com` 12 | |=== -------------------------------------------------------------------------------- /modules/config-fields-storage-features.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-storage-features"] 3 | = Image storage features 4 | 5 | The following table describes the image storage features for {productname}: 6 | 7 | .Storage config features 8 | [cols="3a,1a,2a",options="header"] 9 | |=== 10 | | Field | Type | Description 11 | | **FEATURE_REPO_MIRROR** | Boolean | If set to true, enables repository mirroring. + 12 | + 13 | **Default:** `false` 14 | |**FEATURE_PROXY_STORAGE** | Boolean | Whether to proxy all direct download URLs in storage through NGINX. + 15 | + 16 | **Default:** `false` 17 | | **FEATURE_STORAGE_REPLICATION** | Boolean | Whether to automatically replicate between storage engines. + 18 | + 19 | **Default:** `false` 20 | 21 | |=== 22 | -------------------------------------------------------------------------------- /modules/config-fields-storage-local.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-storage-local"] 3 | = Local storage 4 | 5 | The following YAML shows a sample configuration using local storage: 6 | 7 | [source,yaml] 8 | ---- 9 | DISTRIBUTED_STORAGE_CONFIG: 10 | default: 11 | - LocalStorage 12 | - storage_path: /datastorage/registry 13 | DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] 14 | DISTRIBUTED_STORAGE_PREFERENCE: 15 | - default 16 | ---- 17 | -------------------------------------------------------------------------------- /modules/config-fields-storage-swift.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="config-fields-storage-swift"] 3 | = Swift storage 4 | 5 | The following YAML shows a sample configuration using Swift storage: 6 | 7 | [source,yaml] 8 | ---- 9 | DISTRIBUTED_STORAGE_CONFIG: 10 | swiftStorage: 11 | - SwiftStorage 12 | - swift_user: swift_user_here 13 | swift_password: swift_password_here 14 | swift_container: swift_container_here 15 | auth_url: https://example.org/swift/v1/quay 16 | auth_version: 3 17 | os_options: 18 | tenant_id: 19 | user_domain_name: 20 | ca_cert_path: /conf/stack/swift.cert" 21 | storage_path: /datastorage/registry 22 | DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] 23 | DISTRIBUTED_STORAGE_PREFERENCE: 24 | - swiftStorage 25 | ---- 26 | 27 | -------------------------------------------------------------------------------- /modules/config-fields-storage.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-fields-storage"] 3 | = Image storage 4 | 5 | This section details the image storage features and configuration fields that are available with {productname}. -------------------------------------------------------------------------------- /modules/config-file-location.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-file-location"] 3 | = Location of configuration file in a standalone deployment 4 | 5 | For standalone deployments of {productname}, the `config.yaml` file must be specified when starting the {productname} registry. This file is located in the configuration volume. For example, the configuration file is located at `$QUAY/config/config.yaml` when deploying {productname} by the following command: 6 | 7 | [subs="verbatim,attributes"] 8 | ---- 9 | $ sudo podman run -d --rm -p 80:8080 -p 443:8443 \ 10 | --name=quay \ 11 | -v $QUAY/config:/conf/stack:Z \ 12 | -v $QUAY/storage:/datastorage:Z \ 13 | {productrepo}/{quayimage}:{productminv} 14 | ---- 15 | -------------------------------------------------------------------------------- /modules/config-preconfigure-automation-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-preconfigure-automation-intro"] 3 | = Automation options 4 | 5 | The following sections describe the available automation options for {productname} deployments: 6 | 7 | * xref:config-preconfigure-automation[Pre-configuring {productname} for automation] 8 | * xref:using-the-api-to-create-first-user[Using the API to create the first user] 9 | -------------------------------------------------------------------------------- /modules/config-ui-access-settings.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-access-settings]] 2 | = Access settings configuration 3 | 4 | 5 | image:ui-access-settings.png[Access settings configuration] -------------------------------------------------------------------------------- /modules/config-ui-action-log.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-action-log]] 2 | = Action log configuration 3 | 4 | == Action log storage configuration 5 | 6 | 7 | === Database action log storage 8 | image:ui-action-log-database.png[Database action log storage configuration] 9 | 10 | === Elasticsearch action log storage 11 | 12 | image:ui-action-log-elastic.png[Elasticsearch log storage configuration] 13 | 14 | 15 | == Action log rotation and archiving 16 | 17 | image:ui-action-log-rotation.png[Action log rotation and archiving configuration] 18 | 19 | 20 | image:ui-action-log-rotation-storage-choice.png[Action log rotation and archiving storage choice] 21 | 22 | 23 | -------------------------------------------------------------------------------- /modules/config-ui-app-registry.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-app-registry]] 2 | = Application registry configuration 3 | 4 | image:ui-app-registry.png[Application registry configuration] -------------------------------------------------------------------------------- /modules/config-ui-basic-config.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-basic-config]] 2 | = Basic configuration 3 | 4 | image:ui-basic-config.png[Basic configuration] 5 | 6 | 7 | == Contact information 8 | image:ui-basic-config-contact-info.png[Basic configuration] -------------------------------------------------------------------------------- /modules/config-ui-custom-ssl-certs.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="config-ui-custom-ssl-certs"] 3 | = Custom SSL/TLS certificates UI 4 | 5 | The config tool can be used to load custom certificates to facilitate access to resources like external databases. Select the custom certs to be uploaded, ensuring that they are in PEM format, with an extension `.crt`. 6 | 7 | image:ui-custom-ssl-certs.png[Custom SSL/TLS certificates] 8 | 9 | The config tool also displays a list of any uploaded certificates. After you upload your custom SSL/TLS cert, it will appear in the list. For example: 10 | 11 | image:ui-custom-ssl-certs-uploaded.png[Custom SSL/TLS certificates] 12 | 13 | //As an alternative to using the config tool, you can place the custom certs in a folder named `extra_ca_certs` under the {productname} configdirectory where the `config.yaml` is located. -------------------------------------------------------------------------------- /modules/config-ui-data-consistency.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-data-consistency]] 2 | = Data consistency 3 | 4 | image:ui-data-consistency.png[Data consistency] 5 | -------------------------------------------------------------------------------- /modules/config-ui-dockerfile-build.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-dockerfile-build]] 2 | = Dockerfile build support 3 | 4 | image:ui-dockerfile-build.png[Dockerfile build support] 5 | 6 | 7 | == GitHub (Enterprise) Build Triggers 8 | 9 | image:ui-dockerfile-build-github.png[GitHub (Enterprise) Build Triggers] 10 | 11 | == BitBucket Build Triggers 12 | 13 | image:ui-dockerfile-build-bitbucket.png[BitBucket Build Triggers] 14 | 15 | == GitLab Build Triggers 16 | 17 | image:ui-dockerfile-build-gitlab.png[GitLab Build Triggers] 18 | 19 | -------------------------------------------------------------------------------- /modules/config-ui-email.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-email]] 2 | = Email configuration 3 | 4 | image:ui-email.png[Email configuration] -------------------------------------------------------------------------------- /modules/config-ui-internal-authentication.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-internal-authentication]] 2 | = Internal authentication configuration 3 | 4 | image:ui-internal-authentication.png[Internal authentication configuration] 5 | 6 | image:ui-internal-authentication-choice.png[Internal authentication choice] 7 | 8 | 9 | == LDAP 10 | image:ui-auth-ldap.png[LDAP authentication] 11 | 12 | == Keystone (OpenStack identity) 13 | image:ui-auth-keystone.png[Keystone authentication] 14 | 15 | == JWT custom authentication 16 | image:ui-auth-jwt.png[JWT custom authentication] 17 | 18 | == External application token 19 | image:ui-auth-external-app.png[External application token authentication] 20 | 21 | -------------------------------------------------------------------------------- /modules/config-ui-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="config-using-tool"] 3 | = Using the configuration tool 4 | 5 | -------------------------------------------------------------------------------- /modules/config-ui-mirroring.adoc: -------------------------------------------------------------------------------- 1 | = Mirroring configuration UI 2 | 3 | . Start the `Quay` container in configuration mode and select the Enable Repository Mirroring check box. If you want to require HTTPS communications and verify certificates during mirroring, select the HTTPS and cert verification check box. 4 | + 5 | image:repo_mirror_config.png[Enable mirroring and require HTTPS and verified certificates] 6 | 7 | . Validate and download the `configuration` file, and then restart Quay in registry mode using the updated config file. 8 | -------------------------------------------------------------------------------- /modules/config-ui-oauth.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-oauth]] 2 | = External authentication (OAUTH) configuration 3 | 4 | 5 | == GitHub (Enterprise) authentication 6 | 7 | image:ui-oauth-github.png[GitHub (Enterprise) authentication configuration] 8 | 9 | == Google authentication 10 | image:ui-oauth-google.png[Google authentication configuration] 11 | -------------------------------------------------------------------------------- /modules/config-ui-redis.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-redis]] 2 | = Redis configuration 3 | 4 | image:ui-redis.png[Redis configuration] -------------------------------------------------------------------------------- /modules/config-ui-repo-mirroring.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-repo-mirroring]] 2 | = Repository mirroring configuration 3 | 4 | image:ui-repo-mirroring.png[Repository mirroring configuration] -------------------------------------------------------------------------------- /modules/config-ui-security-scanner.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-security-scanner]] 2 | = Security scanner configuration 3 | 4 | image:ui-security-scanner.png[Security scanner configuration] -------------------------------------------------------------------------------- /modules/config-ui-server-config.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-server-config]] 2 | = Server configuration 3 | 4 | image:ui-server-config-no-tls.png[Server configuration] 5 | 6 | 7 | == Server configuration choice 8 | image:ui-server-config-tls-choice.png[Server configuration choice] 9 | 10 | 11 | == TLS configuration 12 | image:ui-server-config-tls.png[TLS configuration] -------------------------------------------------------------------------------- /modules/config-ui-storage-engines.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-storage-engines]] 2 | = Storage engines 3 | 4 | == Local storage 5 | image:ui-storage-local.png[Local storage configuration] 6 | 7 | 8 | == Amazon S3 storage 9 | image:ui-storage-s3.png[Amazon S3 storage configuration] 10 | 11 | == Azure blob storage 12 | image:ui-storage-azure.png[Azure blob storage configuration] 13 | 14 | == Google cloud storage 15 | image:ui-storage-google.png[Google cloud storage configuration] 16 | 17 | == Ceph object gateway (RADOS) storage 18 | image:ui-storage-ceph.png[Ceph object gateway (RADOS) storage configuration] 19 | 20 | == OpenStack (Swift) storage configuration 21 | image:ui-storage-swift.png[OpenStack (Swift) storage configuration] 22 | 23 | == Cloudfront + Amazon S3 storage configuration 24 | image:ui-storage-cloudfront.png[Cloudfront + Amazon S3 storage configuration] 25 | -------------------------------------------------------------------------------- /modules/config-ui-storage-proxy.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-storage-proxy]] 2 | = Proxy storage 3 | 4 | -------------------------------------------------------------------------------- /modules/config-ui-storage.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-storage]] 2 | = Registry storage configuration 3 | 4 | * Proxy storage 5 | * Storage georeplication 6 | * Storage engines 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /modules/config-ui-time-machine.adoc: -------------------------------------------------------------------------------- 1 | [[config-ui-time-machine]] 2 | = Time machine configuration 3 | 4 | image:ui-time-machine.png[Time machine configuration] 5 | -------------------------------------------------------------------------------- /modules/configuring-api-calls.adoc: -------------------------------------------------------------------------------- 1 | [id="configuring-api-calls"] 2 | = Configuring {productname} to accept API calls 3 | 4 | Prior to using the {productname} API, you must disable `BROWSER_API_CALLS_XHR_ONLY` in your `config.yaml` file. This allows you to avoid such errors as `API calls must be invoked with an X-Requested-With header if called from a browser`. 5 | 6 | .Procedure 7 | 8 | . In your {productname} `config.yaml` file, set `BROWSER_API_CALLS_XHR_ONLY` to `false`. For example: 9 | + 10 | [source,yaml] 11 | ---- 12 | # ... 13 | BROWSER_API_CALLS_XHR_ONLY: false 14 | # ... 15 | ---- 16 | 17 | . Restart your {productname} deployment. -------------------------------------------------------------------------------- /modules/configuring-ssl-tls.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="configuring-ssl-tls"] 3 | = Configuring SSL/TLS for standalone {productname} deployments 4 | 5 | For standalone {productname} deployments, SSL/TLS certificates must be configured by using the command-line interface and by updating your `config.yaml` file manually. -------------------------------------------------------------------------------- /modules/content-distrib-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="content-distrib-intro"] 3 | = Content distribution with {productname} 4 | 5 | Content distribution features in {productname} include: 6 | 7 | 8 | * xref:arch-mirroring-intro[Repository mirroring] 9 | * xref:georepl-intro[Geo-replication] 10 | * xref:arch-airgap-intro[Deployment in air-gapped environments] 11 | 12 | -------------------------------------------------------------------------------- /modules/core-example-deployment.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="core-example-deployment"] 3 | = {productname} example deployments 4 | 5 | The following image shows three possible deployments for {productname}: 6 | 7 | .Deployment examples 8 | image:178_Quay_architecture_0821_deployment_ex1.png[{productname} deployment example] 9 | 10 | Proof of Concept:: Running {productname}, Clair, and mirroring on a single node, with local image storage and local database 11 | Single data center:: Running highly available {productname}, Clair ,and mirroring, on multiple nodes, with HA database and image storage 12 | Multiple data centers:: Running highly available {productname}, Clair, and mirroring, on multiple nodes in multiple data centers, with HA database and image storage -------------------------------------------------------------------------------- /modules/core-prereqs-redis.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="core-prereqs-redis"] 3 | = Redis 4 | 5 | {productname} stores builder logs inside a Redis cache. Because the data stored is ephemeral, Redis does not need to be highly available even though it is stateful. 6 | 7 | If Redis fails, you will lose access to build logs, builders, and the garbage collector service. Additionally, user events will be unavailable. 8 | 9 | You can use a Redis image from the Red Hat Software Collections or from any other source you prefer. 10 | -------------------------------------------------------------------------------- /modules/core-sample-quay-on-prem.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="sample-quay-on-prem-intro"] 3 | = Deploying {productname} on premise 4 | 5 | The following image shows examples for on premise configuration, for the following types of deployments: 6 | 7 | * Standalone Proof of Concept 8 | * Highly available deployment on multiple hosts 9 | * Deployment on an {ocp} cluster by using the {productname} Operator 10 | 11 | .On premise example configurations 12 | image:178_Quay_architecture_0821_on-premises_config.png[On premise example configuration] 13 | -------------------------------------------------------------------------------- /modules/deleting-an-image-repository-via-ui.adoc: -------------------------------------------------------------------------------- 1 | 2 | // module included in the following assemblies: 3 | 4 | // * use_quay/master.adoc 5 | // * quay_io/master.adoc 6 | 7 | :_content-type: CONCEPT 8 | [id="deleting-repository-v2"] 9 | = Deleting a repository by using the UI 10 | 11 | You can delete a repository directly on the UI. 12 | 13 | .Prerequisites 14 | 15 | * You have created a repository. 16 | 17 | .Procedure 18 | 19 | . On the *Repositories* page of the v2 UI, check the box of the repository that you want to delete, for example, `quayadmin/busybox`. 20 | 21 | . Click the *Actions* drop-down menu. 22 | 23 | . Click *Delete*. 24 | 25 | . Type *confirm* in the box, and then click *Delete*. 26 | + 27 | After deletion, you are returned to the *Repositories* page. -------------------------------------------------------------------------------- /modules/deleting-robot-account-v2-ui.adoc: -------------------------------------------------------------------------------- 1 | 2 | // module included in the following assemblies: 3 | 4 | // * use_quay/master.adoc 5 | // * quay_io/master.adoc 6 | :_content-type: CONCEPT 7 | [id="deleting-robot-account-ui"] 8 | = Deleting a robot account by using the UI 9 | 10 | Use the following procedure to delete a robot account using the {productname} UI. 11 | 12 | .Procedure 13 | 14 | . Log into your {productname} registry: 15 | 16 | . Click the name of the Organization that has the robot account. 17 | 18 | . Click *Robot accounts*. 19 | 20 | . Check the box of the robot account to be deleted. 21 | 22 | . Click the kebab menu. 23 | 24 | . Click *Delete*. 25 | 26 | . Type `confirm` into the textbox, then click *Delete*. -------------------------------------------------------------------------------- /modules/deployment-topology-with-storage-proxy.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="deployment-topology-with-storage-proxy"] 3 | = {productname} deployment topology with storage proxy 4 | 5 | The following image provides a high level overview of a {productname} deployment topology with storage proxy configured: 6 | 7 | .{productname} deployment topology with storage proxy 8 | image:178_Quay_architecture_0821_deploy_topology_storage.png[{productname} deployment topology with storage proxy] 9 | 10 | With storage proxy configured, all traffic passes through the public {productname} endpoint. -------------------------------------------------------------------------------- /modules/deployment-topology.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="deployment-topology"] 3 | = {productname} deployment topology 4 | 5 | The following image provides a high level overview of a {productname} deployment topology: 6 | 7 | .{productname} deployment topology 8 | image:178_Quay_architecture_0821_deploy_topology.png[{productname} deployment topology] 9 | 10 | In this deployment, all pushes, user interface, and API requests are received by public {productname} endpoints. Pulls are served directly from `object storage`. -------------------------------------------------------------------------------- /modules/disable-oci-artifacts-in-quay.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="disable-oci-artifacts-in-quay"] 3 | = Disabling OCI artifacts in {productname} 4 | 5 | Use the following procedure to disable support for OCI artifacts. 6 | 7 | .Procedure 8 | 9 | * Disable OCI artifact support by setting `FEATURE_GENERAL_OCI_SUPPORT` to `false` in your `config.yaml` file. For example: 10 | + 11 | [source,yaml] 12 | ---- 13 | FEATURE_GENERAL_OCI_SUPPORT = false 14 | ---- -------------------------------------------------------------------------------- /modules/docker-timestamp-error.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="docker-timestamp-error"] 3 | = Incorrect timestamp 4 | 5 | In some cases, using `docker push` might show the incorrect timestamp for one or more images. In most cases, this means that your machine or virtual machine's time has become desynchronized. 6 | 7 | This occurs because the timestamp shown for the _Changed_ file is generated by the Docker client when the image is created. If the time on the machine on which the image was built is out of sync, the timestamp shown is different on {productname} as well. Usually, this means that your machine needs to be synced with the link:http://www.ntp.org/[Network Time Protocol]. 8 | 9 | Enter the following command to force the Docker virtual machine to synchronize its clock: 10 | [source,terminal] 11 | ---- 12 | $ docker ssh -C 'sudo ntpclient -s -h pool.ntp.org' 13 | ---- -------------------------------------------------------------------------------- /modules/error-406-dockerfile.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="error-406-dockerfile"] 3 | = Base image pull in Dockerfile fails with HTTP error 403 4 | 5 | In some cases, you might receive an HTTP error `403` when attempting to use a private base image as the `FROM` line in a Build Trigger. To use a private base image as the `FROM` lin in a Build Trigger, credentials for your robot account with _read access to the private image_ must be specified when setting up the Build Trigger. 6 | 7 | For more information about robot accounts and Build Triggers, see link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html-single/use_red_hat_quay/index#github-build-triggers[Setting up Github Build Trigger tags]. -------------------------------------------------------------------------------- /modules/external-registry-config-api-example.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="external-registry-config-api-example"] 3 | 4 | = external_registry_config object reference 5 | 6 | [source,yaml] 7 | ---- 8 | { 9 | "is_enabled": True, 10 | "external_reference": "quay.io/redhat/quay", 11 | "sync_interval": 5000, 12 | "sync_start_date": datetime(2020, 0o1, 0o2, 6, 30, 0), 13 | "external_registry_username": "fakeUsername", 14 | "external_registry_password": "fakePassword", 15 | "external_registry_config": { 16 | "verify_tls": True, 17 | "unsigned_images": False, 18 | "proxy": { 19 | "http_proxy": "http://insecure.proxy.corp", 20 | "https_proxy": "https://secure.proxy.corp", 21 | "no_proxy": "mylocalhost", 22 | }, 23 | }, 24 | } 25 | ---- -------------------------------------------------------------------------------- /modules/fine-grained-access-control-intro.adoc: -------------------------------------------------------------------------------- 1 | [[fine-grained-access-control]] 2 | = Fine-grained access control 3 | 4 | {productname} allow users to integrate their existing identity infrastructure and use a fine-grained permissions system to map their organizational structure and grant access to whole teams to manage specific repositories. 5 | 6 | {productname} is supported by the following authentication providers: 7 | 8 | * Built-in database authentication 9 | * Lightweight Directory Access Protocol (LDAP) authentication and _sync 10 | * External OpenID Connect (OIDC) provider 11 | * OpenStack Keystone 12 | -------------------------------------------------------------------------------- /modules/frequently-asked-questions.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="frequently-asked-questions"] 3 | = Frequently asked questions 4 | 5 | The "Frequently Asked Questions" (FAQ) document for {productname} aims to address common inquiries and provide comprehensive answers regarding the functionality, features, and usage of the {productname} container registry platform. This document serves as a valuable resource for users, administrators, and developers seeking quick and accurate information about various aspects of {productname}. 6 | 7 | The FAQ covers a wide range of topics, including account management, repository operations, security features, integration with other systems, troubleshooting tips, and best practices for optimizing the usage of {productname}. -------------------------------------------------------------------------------- /modules/georepl-arch.adoc: -------------------------------------------------------------------------------- 1 | [[georepl-arch]] 2 | = Geo-replication architecture for standalone {productname} 3 | 4 | image:178_Quay_architecture_0821_georeplication.png[Georeplication] 5 | 6 | In the example shown above, {productname} is running in two separate regions, with a common database and a common Redis instance. Localized image storage is provided in each region and image pulls are served from the closest available storage engine. Container image pushes are written to the preferred storage engine for the Quay instance, and will then be replicated, in the background, to the other storage engines. 7 | -------------------------------------------------------------------------------- /modules/georepl-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="georepl-intro"] 3 | = Geo-replication 4 | 5 | Geo-replication allows multiple, geographically distributed {productname} deployments to work as a single registry from the perspective of a client or user. It significantly improves push and pull performance in a globally-distributed {productname} setup. Image data is asynchronously replicated in the background with transparent failover and redirect for clients. 6 | 7 | Deployments of {productname} with geo-replication is supported on standalone and Operator deployments. -------------------------------------------------------------------------------- /modules/integration-intro.adoc: -------------------------------------------------------------------------------- 1 | [[integration-intro]] 2 | = Integration 3 | 4 | * Extensible API 5 | * Webhooks, OAuth 6 | * Robot Accounts -------------------------------------------------------------------------------- /modules/ldap-filtering-intro.adoc: -------------------------------------------------------------------------------- 1 | [[ldap-filtering]] 2 | = LDAP filtering 3 | 4 | Lightweight Directory Access Protocol (LDAP) is an open, vendor neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an IP network. {productname} supports using LDAP as an identity provider. {productname} users can now apply additional filters for lookup queries if LDAP / AD authentication is used. For information on setting up LDAP authentication for {productname}, see link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html/manage_red_hat_quay/ldap-authentication-setup-for-quay-enterprise[LDAP authentication setup for {productname}]. 5 | 6 | -------------------------------------------------------------------------------- /modules/ldap-timeouts-quay.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="ldap-timeouts-quay"] 3 | = Can I increase LDAP timeouts when accessing {productname}? 4 | 5 | When using LDAP as your authentication provider, some users might experience timeouts when accessing {productname}. You can increase the timeout value by adding the following properties to your `config.yaml` file: 6 | 7 | [source,yaml] 8 | ---- 9 | LDAP_TIMEOUT: 60 10 | LDAP_NETWORK_TIMEOUT: 60 11 | ---- 12 | 13 | This increases the timeout to 60 seconds. The default time for this field is 10 seconds. 14 | 15 | If you are using a standalone version of {productname}, redeploy {productname} after updating your `config.yaml` file. 16 | 17 | If you are using the {productname} Operator, update the `config-bundle-secret` with the latest configuration. -------------------------------------------------------------------------------- /modules/limit-organization-creation.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="limit-organization-creation"] 3 | = Can I limit normal users from creating organizations in {productname}? 4 | 5 | Currently, there is no way to limit normal users from creating organizations in {productname}. -------------------------------------------------------------------------------- /modules/managed-clair-database.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="managed-clair-database"] 3 | = Setting a Clair database to managed 4 | 5 | Use the following procedure to set your Clair database to managed. 6 | 7 | .Procedure 8 | 9 | * In the Quay Operator, set the `clairpostgres` component of the `QuayRegistry` custom resource to `managed: true`: 10 | + 11 | [source,yaml] 12 | ---- 13 | apiVersion: quay.redhat.com/v1 14 | kind: QuayRegistry 15 | metadata: 16 | name: quay370 17 | spec: 18 | configBundleSecret: config-bundle-secret 19 | components: 20 | - kind: objectstorage 21 | managed: false 22 | - kind: route 23 | managed: true 24 | - kind: tls 25 | managed: false 26 | - kind: clairpostgres 27 | managed: true 28 | ---- -------------------------------------------------------------------------------- /modules/managing-a-team-api.adoc: -------------------------------------------------------------------------------- 1 | // module included in the following assemblies: 2 | 3 | // * use_quay/master.adoc 4 | // * quay_io/master.adoc 5 | 6 | :_content-type: PROCEDURE 7 | [id="managing-a-team-api"] 8 | = Managing a team by using the {productname} API 9 | 10 | After you have created a team, you can use the API to obtain information about team permissions or team members, add, update, or delete team members (including by email), or delete an organization team. 11 | 12 | The following procedures show you how to how to manage a team using the {productname} API. -------------------------------------------------------------------------------- /modules/managing-team-ui.adoc: -------------------------------------------------------------------------------- 1 | // module included in the following assemblies: 2 | 3 | // * use_quay/master.adoc 4 | // * quay_io/master.adoc 5 | 6 | :_content-type: PROCEDURE 7 | [id="managing-a-team-ui"] 8 | = Managing a team by using the UI 9 | 10 | After you have created a team, you can use the UI to manage team members, set repository permissions, delete the team, or view more general information about the team. -------------------------------------------------------------------------------- /modules/managing-teams-api.adoc: -------------------------------------------------------------------------------- 1 | // module included in the following assemblies: 2 | 3 | // * use_quay/master.adoc 4 | // * quay_io/master.adoc 5 | 6 | :_content-type: PROCEDURE 7 | [id="managing-teams-api"] 8 | = Managing teams by using the API 9 | 10 | Team can be managing by using the {productname} API. 11 | -------------------------------------------------------------------------------- /modules/metrics-intro.adoc: -------------------------------------------------------------------------------- 1 | [[metrics-intro]] 2 | = Introduction to metrics 3 | 4 | {productname} provides metrics to help monitor the registry, including metrics for general registry usage, uploads, downloads, garbage collection, and authentication. 5 | 6 | -------------------------------------------------------------------------------- /modules/mirroring-api-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-mirroring-api-intro"] 3 | = Mirroring API 4 | 5 | You can use the {productname} API to configure repository mirroring: 6 | 7 | .Mirroring API 8 | image:swagger-mirroring.png[Mirroring API] 9 | 10 | More information is available in the link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html-single/red_hat_quay_api_reference/index[{productname} API Guide] 11 | -------------------------------------------------------------------------------- /modules/mirroring-events.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-mirroring-events"] 3 | = Event notifications for mirroring 4 | 5 | There are three notification events for repository mirroring: 6 | 7 | * Repository Mirror Started 8 | * Repository Mirror Success 9 | * Repository Mirror Unsuccessful 10 | 11 | The events can be configured inside of the *Settings* tab for each repository, and all existing notification methods such as email, Slack, Quay UI, and webhooks are supported. -------------------------------------------------------------------------------- /modules/mirroring-invalid-credentials.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="mirroring-invalid-credentials"] 3 | = Invalid credentials when mirroring 4 | 5 | In some cases, {productname} mirroring might fail and return the following error: `repomirrorworker stdout | time="2022-11-03T16:46:11Z" level=debug msg="Accessing \"registry.redhat.io/rhel8/nginx-118:1\" failed: unable to retrieve auth token: invalid username/password: unauthorized:`. when the {productname} cluster is missing a connection to the LoadBalancer. Consequently, {productname} is unable to connect to the network. 6 | 7 | To resolve this issue, ensure that your {productname} cluster has a stable connection to the LoadBalancer. 8 | 9 | [role="_additional-resources"] 10 | .Additional resources 11 | 12 | For more information, see link:https://access.redhat.com/solutions/6989386[Quay Mirroring fail with invalid credentials]. -------------------------------------------------------------------------------- /modules/mirroring-prereqs.adoc: -------------------------------------------------------------------------------- 1 | [[mirroring-prereqs]] 2 | = Mirroring prerequisites 3 | 4 | Before you can use repository mirroring, you must enable repository mirroring from the {productname} 5 | configuration screen and start the repository mirroring worker. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /modules/modifying-config-bundle-secret-cli.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="modifying-configbundlesecret-cli"] 3 | = Modifying the configuration file by using the CLI 4 | 5 | You can modify the `config.yaml` file that is stored by the `configBundleSecret` by using the CLI. 6 | 7 | [NOTE] 8 | ==== 9 | Modifying the `config.yaml` file that is stored by the `configBundleSecret` is a multi-step procedure that requires base64 decoding the existing configuration file and then uploading the changes. For most cases, using the {ocp} web console to make changes to the `config.yaml` file is simpler. 10 | ==== 11 | 12 | .Prerequisites 13 | 14 | * You are logged in to the {ocp} cluster as a user with admin privileges. 15 | 16 | .Procedure 17 | 18 | -------------------------------------------------------------------------------- /modules/moving-a-tag.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="moving-a-tag"] 3 | = Moving an image tag 4 | 5 | You can move a tag to a different image if desired. 6 | 7 | .Procedure 8 | 9 | * Click the *Settings*, or _gear_, icon next to the tag and click *Add New Tag* and enter an existing tag name. 10 | ifeval::["{context}" == "quay-io"] 11 | {quayio} 12 | endif::[] 13 | ifeval::["{context}" == "use-quay"] 14 | {productname} 15 | endif::[] 16 | confirms that you want the tag moved instead of added. -------------------------------------------------------------------------------- /modules/nested-ldap-team-sync.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="nested-ldap-team-sync"] 3 | = Does {productname} support nested LDAP groups for team synchronization? 4 | 5 | {productname} does not currently support nested LDAP team synchronization. As a temporary workaround, you can manually maintain {productname} team membership without using the `directory synchronization` feature, and perform regular syncs of your {productname} team with LDAP group members using cronjobs. -------------------------------------------------------------------------------- /modules/operator-advanced.adoc: -------------------------------------------------------------------------------- 1 | = Advanced Concepts 2 | 3 | 4 | -------------------------------------------------------------------------------- /modules/operator-cloudfront.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="operator-cloudfront"] 3 | = AWS S3 CloudFront 4 | 5 | [NOTE] 6 | ==== 7 | Currently, using AWS S3 CloudFront is not supported on IBM Power and IBM Z. 8 | ==== 9 | 10 | Use the following procedure if you are using AWS S3 Cloudfront for your backend registry storage. 11 | 12 | .Procedure 13 | 14 | . Enter the following command to specify the registry key: 15 | + 16 | [source,terminal] 17 | ---- 18 | $ oc create secret generic --from-file config.yaml=./config_awss3cloudfront.yaml --from-file default-cloudfront-signing-key.pem=./default-cloudfront-signing-key.pem test-config-bundle 19 | ---- -------------------------------------------------------------------------------- /modules/operator-components-unmanaged-other.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="operator-components-unmanaged-other"] 3 | = Configuring external Redis 4 | 5 | Use the content in this section to set up an external Redis deployment. -------------------------------------------------------------------------------- /modules/operator-concepts.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="operator-concepts"] 3 | = Introduction to the {productname} Operator 4 | 5 | Use the content in this chapter to execute the following: 6 | 7 | * Install {productname-ocp} using the {productname} Operator 8 | 9 | * Configure managed, or unmanaged, object storage 10 | 11 | * Configure unmanaged components, such as the database, Redis, routes, TLS, and so on 12 | 13 | * Deploy the {productname} registry on {ocp} using the {productname} Operator 14 | 15 | * Use advanced features supported by {productname} 16 | 17 | * Upgrade the {productname} registry by using the {productname} Operator -------------------------------------------------------------------------------- /modules/operator-customize.adoc: -------------------------------------------------------------------------------- 1 | [[operator-customize]] 2 | = Customizing Quay after deployment 3 | 4 | The Quay Operator takes an opinionated strategy towards deploying Quay and its dependencies, however there are places where the Quay deployment can be customized. 5 | 6 | == Quay Application Configuration 7 | -------------------------------------------------------------------------------- /modules/operator-deploy.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="operator-deploy"] 3 | = Deploying {productname} using the Operator 4 | 5 | {productname-ocp} can be deployed using command-line interface or from the {ocp} console. The steps are fundamentally the same. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /modules/operator-geo-replication.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="operator-geo-replication-faq"] 3 | = Does the {productname} Operator support geo-replication? 4 | 5 | As of {productname} 3.7 and later, the {productname} Operator supports geo-replication deployments. Earlier versions of {productname} do not support geo-replication. This feature will not be backported to earlier versions of {productname}. You must upgrade {productname} to 3.7 or later to use the geo-replication feature. -------------------------------------------------------------------------------- /modules/operator-preconfig-storage.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="operator-storage-preconfig"] 3 | = Configuring object storage 4 | 5 | You need to configure object storage before installing {productname}, irrespective of whether you are allowing the {productname} Operator to manage the storage or managing it yourself. 6 | 7 | If you want the {productname} Operator to be responsible for managing storage, see the section on xref:operator-managed-storage[Managed storage] for information on installing and configuring NooBaa and the Red Hat OpenShift Data Foundations Operator. 8 | 9 | If you are using a separate storage solution, set `objectstorage` as `unmanaged` when configuring the Operator. See the following section. xref:operator-unmanaged-storage[Unmanaged storage], for details of configuring existing storage. 10 | -------------------------------------------------------------------------------- /modules/operator-unmanaged-mirroring.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="operator-unmanaged-mirroring"] 3 | = Disabling the mirroring component 4 | 5 | To disable mirroring, use the following YAML configuration: 6 | 7 | .Unmanaged mirroring example YAML configuration 8 | [source,yaml] 9 | ---- 10 | apiVersion: quay.redhat.com/v1 11 | kind: QuayRegistry 12 | metadata: 13 | name: example-registry 14 | namespace: quay-enterprise 15 | spec: 16 | components: 17 | - kind: mirroring 18 | managed: false 19 | ---- -------------------------------------------------------------------------------- /modules/operator-unmanaged-monitoring.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="operator-unmanaged-monitoring"] 3 | = Disabling the monitoring component 4 | 5 | If you install the {productname} Operator in a single namespace, the monitoring component is automatically set to `managed: false`. Use the following reference to explicitly disable monitoring. 6 | 7 | .Unmanaged monitoring 8 | [source,yaml] 9 | ---- 10 | apiVersion: quay.redhat.com/v1 11 | kind: QuayRegistry 12 | metadata: 13 | name: example-registry 14 | namespace: quay-enterprise 15 | spec: 16 | components: 17 | - kind: monitoring 18 | managed: false 19 | ---- 20 | 21 | [NOTE] 22 | ==== 23 | Monitoring cannot be enabled when the {productname} Operator is installed in a single namespace. 24 | ==== -------------------------------------------------------------------------------- /modules/org-create.adoc: -------------------------------------------------------------------------------- 1 | // module included in the following assemblies: 2 | 3 | // * use_quay/master.adoc 4 | 5 | // Needs updated when v2 UI panel is available 6 | :_content-type: CONCEPT 7 | [id="org-create"] 8 | = Creating an organization by using the UI 9 | 10 | Use the following procedure to create a new organization by using the UI. 11 | 12 | .Procedure 13 | 14 | . Log in to your {productname} registry. 15 | 16 | . Click *Organization* in the navigation pane. 17 | 18 | . Click *Create Organization*. 19 | 20 | . Enter an *Organization Name*, for example, `testorg`. 21 | 22 | . Enter an *Organization Email*. 23 | 24 | . Click *Create*. 25 | 26 | Now, your example organization should populate under the *Organizations* page. -------------------------------------------------------------------------------- /modules/organization-management-api.adoc: -------------------------------------------------------------------------------- 1 | [id="organization-management-api"] 2 | = Establishing quota with the {productname} API 3 | 4 | Organizations can be created and managed through API endpoints. With the {productname} API, you can create organizations, view organization information, create proxy caches for an organization, edit users with access to the organization, change organization details, delete organizations, and more. -------------------------------------------------------------------------------- /modules/permissions-intro.adoc: -------------------------------------------------------------------------------- 1 | = Permissions 2 | 3 | Organizations are organized into a set of Teams and can provide access to a subset of the repositories under that namespace. Permissions for users within an organization can be set for individuals, teams, and robot accounts. 4 | 5 | [NOTE] 6 | ==== 7 | Permissions are only applied to new users and teams when a new repository is created. 8 | ==== 9 | -------------------------------------------------------------------------------- /modules/poc-creating-dual-stack-cn.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="poc-creating-dual-stack-cn"] 3 | = Creating a dual-stack container network 4 | 5 | Use the following procedure to create a new container network that is dual-stack. 6 | 7 | .Procedure 8 | 9 | * Unless there is a requirement that the _default_ container network use both IPv4 and IPv6, it is suggested that a _new_ container network is created that is dual-stack. As a root user, create a new container network that is dual-stack by running the following command: 10 | + 11 | [source,terminal] 12 | ---- 13 | # podman network create ip-dual-stack --ipv6 14 | ---- 15 | + 16 | With this command, new containers use this network are a natively dual-stack. -------------------------------------------------------------------------------- /modules/preparing-system-deploy-quay.adoc: -------------------------------------------------------------------------------- 1 | 2 | :_content-type: CONCEPT 3 | [id="preparing-system-deploy-quay"] 4 | = Preparing your system to deploy {productname} 5 | 6 | For a proof of concept {productname} deployment, you must configure port mapping, a database, and Redis prior to deploying the registry. Use the following procedures to prepare your system to deploy {productname}. -------------------------------------------------------------------------------- /modules/proc_deploy_quay_local_ipv6.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="poc-deploy-quay-local-ipv6"] 3 | = Configuring the Podman CNI to use IPv6 4 | 5 | In some cases, you might want to run a local instance of {productname} to use IPv6. This setup is common for development or testing purposes. 6 | 7 | By default, the Podman network for a root user does not use IPv6, and instead defaults to use IPv4. You can configure the Podman Container Network Interface (CNI) to use both IPv4 and IPv6, which allows for a local instance of {productname} using IPv6. 8 | 9 | [discrete] 10 | [id="additional-resources"] 11 | == Additional resources 12 | 13 | * link:https://access.redhat.com/solutions/6196301[How to configure the default podman container network for the root user to use both IPv4 and IPv6]. -------------------------------------------------------------------------------- /modules/proc_deploy_quay_poc_redis.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="poc-configuring-redis"] 3 | = Configuring Redis 4 | 5 | Redis is a key-value store that is used by {productname} for live builder logs. 6 | 7 | Use the following procedure to deploy the `Redis` container for the {productname} proof of concept. 8 | 9 | .Procedure 10 | 11 | * Start the `Redis` container, specifying the port and password, by entering the following command: 12 | + 13 | [subs="verbatim,attributes"] 14 | ---- 15 | $ sudo podman run -d --rm --name redis \ 16 | -p 6379:6379 \ 17 | -e REDIS_PASSWORD=strongpassword \ 18 | {redisimage} 19 | ---- -------------------------------------------------------------------------------- /modules/proc_manage-log-storage-splunk.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="proc_manage-log-storage-splunk"] 3 | = Configuring action log storage for Splunk 4 | 5 | link:https://www.splunk.com/[Splunk] is an alternative to Elasticsearch that can provide log analyses for your {productname} data. 6 | 7 | Enabling Splunk logging can be done during {productname} deployment or post-deployment using the configuration tool. Configuration includes both the option to forward action logs directly to Splunk or to the Splunk HTTP Event Collector (HEC). 8 | 9 | Use the following procedures to enable Splunk for your {productname} deployment. -------------------------------------------------------------------------------- /modules/proc_manage-log-storage.adoc: -------------------------------------------------------------------------------- 1 | [id="proc_manage-log-storage"] 2 | = Configuring action log storage for Elasticsearch and Splunk 3 | 4 | By default, usage logs are stored in the {productname} database and exposed through the web UI on organization and repository levels. Appropriate administrative privileges are required to see log entries. For deployments with a large amount of logged operations, you can store the usage logs in Elasticsearch and Splunk instead of the {productname} database backend. -------------------------------------------------------------------------------- /modules/proc_use-quay-build-workers-dockerfiles.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="bare-metal-builds"] 3 | = Bare metal builds with {productname-ocp} 4 | 5 | ifeval::["{context}" == "use-quay"] 6 | Documentation for the _builds_ feature has been moved to link:https://docs.redhat.com/en/documentation/red_hat_quay/{producty}/html/builders_and_image_automation/index[Builders and image automation]. This chapter will be removed in a future version of {productname}. 7 | endif::[] 8 | 9 | ifeval::["{context}" == "quay-builders-image-automation"] 10 | The procedures in this section explain how to create an environment for _bare metal builds_ for {productname-ocp}. 11 | endif::[] 12 | -------------------------------------------------------------------------------- /modules/proc_use-quay-notifications.adoc: -------------------------------------------------------------------------------- 1 | // module included in the following assemblies: 2 | 3 | // * use_quay/master.adoc 4 | // * quay_io/master.adoc 5 | 6 | :_content-type: CONCEPT 7 | [id="repository-notifications"] 8 | = Notifications overview 9 | 10 | ifeval::["{context}" == "quay-io"] 11 | {quayio} supports adding _notifications_ to a repository for various events that occur in the repository's lifecycle. 12 | ifdef::upstream[] 13 | [NOTE] 14 | ==== 15 | By default, vulnerability notifications are disabled on {quayio} and cannot be enabled. 16 | ==== 17 | endif::upstream[] 18 | endif::[] 19 | ifeval::["{context}" == "use-quay"] 20 | {productname} supports adding _notifications_ to a repository for various events that occur in the repository's lifecycle. 21 | endif::[] 22 | -------------------------------------------------------------------------------- /modules/proxy-cache-limitations.adoc: -------------------------------------------------------------------------------- 1 | [[proxy-cache-limitations]] 2 | = Proxy cache limitations 3 | 4 | Proxy caching with {productname} has the following limitations: 5 | 6 | * Your proxy cache must have a size limit of greater than, or equal to, the image you want to cache. For example, if your proxy cache organization has a maximum size of 500 MB, and the image a user wants to pull is 700 MB, the image will be cached and will overflow beyond the configured limit. 7 | 8 | * Cached images must have the same properties that images on a Quay repository must have. 9 | 10 | * Currently, only layers requested by the client are cached. 11 | -------------------------------------------------------------------------------- /modules/public-cloud-aws.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-quay-on-aws"] 3 | = Running {productname} on Amazon Web Services 4 | 5 | If {productname} is running on Amazon Web Services (AWS), you can use the following features: 6 | 7 | * AWS Elastic Load Balancer 8 | * AWS S3 (hot) blob storage 9 | * AWS RDS database 10 | * AWS ElastiCache Redis 11 | * EC2 virtual machine recommendation: M3.Large or M4.XLarge 12 | 13 | The following image provides a high level overview of {productname} running on AWS: 14 | 15 | .{productname} on AWS 16 | image:178_Quay_architecture_0821_on_AWS.png[{productname} on AWS] 17 | 18 | -------------------------------------------------------------------------------- /modules/public-cloud-azure.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-quay-on-azure"] 3 | = Running {productname} on Microsoft Azure 4 | 5 | If {productname} is running on Microsoft Azure, you can use the following features: 6 | 7 | * Azure managed services such as highly available PostgreSQL 8 | * Azure Blob Storage must be hot storage 9 | ** Azure cool storage is not available for {productname} 10 | * Azure Cache for Redis 11 | 12 | The following image provides a high level overview of {productname} running on Microsoft Azure: 13 | 14 | .{productname} on Microsoft Azure 15 | image:178_Quay_architecture_0821_on_Azure.png[{productname} on Microsoft Azure] -------------------------------------------------------------------------------- /modules/public-cloud-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="arch-deploy-quay-public-cloud"] 3 | = Deploying {productname} on public cloud 4 | 5 | {productname} can run on public clouds, either in standalone mode or where {ocp} itself has been deployed on public cloud. A full list of tested and supported configurations can be found in the {productname} *Tested Integrations Matrix* at link:https://access.redhat.com/articles/4067991[]. 6 | 7 | **Recommendation:** If {productname} is running on public cloud, then you should use the public cloud services for {productname} backend services to ensure proper high availability and scalability. -------------------------------------------------------------------------------- /modules/quay-api-examples.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="quay-api-examples"] 3 | = {productname} API examples 4 | 5 | The remainder of this chapter provides {productname} API examples for the features in which they are available. -------------------------------------------------------------------------------- /modules/quay-internal-registry-intro.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="quay-internal-registry-intro"] 3 | = Using {productname} with or without internal registry 4 | 5 | {productname} can be used as an external registry in front of multiple {ocp} clusters with their internal registries. 6 | 7 | {productname} can also be used in place of the internal registry when it comes to automating builds and deployment rollouts. The required coordination of `Secrets` and `ImageStreams` is automated by the Quay Bridge Operator, which can be launched from the OperatorHub for {ocp}. 8 | -------------------------------------------------------------------------------- /modules/quay-robot-accounts-intro.adoc: -------------------------------------------------------------------------------- 1 | [[quay-robot-accounts]] 2 | = {productname} robot accounts 3 | 4 | Robot accounts are named tokens that hold credentials for accessing external repositories. By assigning credentials to a robot, that robot can be used across multiple mirrored repositories that need to access the same external registry. 5 | 6 | Robot accounts are managed on the *Robot Accounts* tab. They can only belong to one organization, but can be assigned to multiple Teams. 7 | 8 | [NOTE] 9 | ==== 10 | Teams and users can belong to multiple organizations. 11 | ==== 12 | 13 | //should probably be an xref 14 | For more information on robot accounts, see link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html-single/use_red_hat_quay/index#allow-robot-access-user-repo[Allowing robot access to a user repository]. 15 | -------------------------------------------------------------------------------- /modules/quay-sso-keycloak-intro.adoc: -------------------------------------------------------------------------------- 1 | [[quay-sso-keycloak]] 2 | = {productname} and Red Hat SSO / Keycloak 3 | 4 | {productname} can support authentication via OpenID Connect (OIDC). Red Hat Single Sign On (SSO) is an OIDC provider that allows administrators to have a seamless authentication integration between {productname} and other application platforms such as Red Hat OpenShift Container Platform. 5 | 6 | {productname} and Red Hat SSO / Keycloak requires that TLS/SSL is properly configured to proceed with setup. Red Hat SSO supports many different types of OIDC. {productname}, however, only supports OIDC clients configured for link:https://access.redhat.com/solutions/3496181[Confidential Client Credentials]. For more information configuring Red Hat SSO, see link:https://access.redhat.com/solutions/3566061[Red Hat Quay with Red Hat Single Sign On / Keycloak]. 7 | -------------------------------------------------------------------------------- /modules/quota-management-api.adoc: -------------------------------------------------------------------------------- 1 | [id="quota-management-api"] 2 | = Establishing quota with the {productname} API 3 | 4 | You can establish quota for an organization or users, and tailor quota policies to suit the needs of your registry. 5 | 6 | The following sections show you how to establish quota for an organization, a user, and then how to modify those settings. -------------------------------------------------------------------------------- /modules/quota-management-limitations.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: REFERENCE 2 | [id="quota-management-limitations"] 3 | = Quota management limitations 4 | 5 | Quota management helps organizations to maintain resource consumption. One limitation of quota management is that calculating resource consumption on push results in the calculation becoming part of the push's critical path. Without this, usage data might drift. 6 | 7 | The maximum storage quota size is dependent on the selected database: 8 | 9 | .Worker count environment variables 10 | [cols="2a,2a",options="header"] 11 | |=== 12 | |Variable |Description 13 | |Postgres |8388608 TB 14 | |MySQL |8388608 TB 15 | |SQL Server |16777216 TB 16 | |=== 17 | -------------------------------------------------------------------------------- /modules/regenerating-robot-account-token-ui.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="regenerating-robot-account-ui"] 3 | = Regenerating a robot account token by using the {productname} UI 4 | 5 | Use the following procedure to regenerate a robot account token by using the {productname} UI. 6 | 7 | .Prerequisites 8 | 9 | * You have logged into {productname}. 10 | 11 | .Procedure 12 | 13 | . Click the name of an Organization. 14 | 15 | . In the navigation pane, click *Robot accounts*. 16 | 17 | . Click the name of your robot account, for example, *testorg3+test*. 18 | 19 | . Click *Regenerate token* in the popup box. -------------------------------------------------------------------------------- /modules/registry-wide-access-management.adoc: -------------------------------------------------------------------------------- 1 | // module included in the following assemblies: 2 | 3 | // * use_quay/master.adoc 4 | // * quay_io/master.adoc 5 | 6 | :_content-type: CONCEPT 7 | [id="registry-wide-access-management"] 8 | = Registry-wide access management 9 | 10 | The following sections provide information about adjusting registry-wide permissions for both users and superusers. -------------------------------------------------------------------------------- /modules/repo-manage-api.adoc: -------------------------------------------------------------------------------- 1 | [id="repo-manage-api"] 2 | = Creating and configuring repositories by using the {productname} API 3 | 4 | Repositories can be created, retrieved, changed, and deleted by using the {productname} API. -------------------------------------------------------------------------------- /modules/repo-permission-api.adoc: -------------------------------------------------------------------------------- 1 | [id="repo-permission-api"] 2 | = Managing repository permissions by using the {productname} API 3 | 4 | Repository permissions can be managed by using the {productname} API. For example, you can create, view, and delete user and team permissions. 5 | 6 | The following procedures show you how to manage repository permissions by using the {productname} API. -------------------------------------------------------------------------------- /modules/reverting-tag-changes.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="reverting-tag-changes"] 3 | = Reverting tag changes by using the UI 4 | 5 | ifeval::["{context}" == "quay-io"] 6 | {quayio} 7 | endif::[] 8 | ifeval::["{context}" == "use-quay"] 9 | {productname} 10 | endif::[] 11 | offers a comprehensive _time machine_ feature that allows older images tags to remain in the repository for set periods of time so that they can revert changes made to tags. This feature allows users to revert tag changes, like tag deletions. 12 | 13 | .Procedure 14 | 15 | . On the *Repositories* page of the v2 UI, click the name of the image you want to revert. 16 | 17 | . Click the *Tag History* tab. 18 | 19 | . Find the point in the timeline at which image tags were changed or removed. Next, click the option under *Revert* to restore a tag to its image. -------------------------------------------------------------------------------- /modules/rn_2_50.adoc: -------------------------------------------------------------------------------- 1 | [[rn-2-500]] 2 | == Version 2.5.0 3 | 4 | Release Date: September 7, 2017 5 | 6 | Added: 7 | 8 | * Better TLS caching (#2860) 9 | * Feature flag to allow read-only users to build logs (#2850) 10 | * Feature flag to enable team sync setup when not a superuser (#2813) 11 | * Preferred public organizations list (#2850) 12 | * OIDC support for OIDC implementations without user info endpoint (#2817) 13 | * Support for tag expiration, in UI and view a special quay.expires-after label (#2718) 14 | * Health checks report failure reasons (#2638) 15 | * Enable database connection pooling (#2834) 16 | 17 | Fixed: 18 | 19 | * Setting of team resync option 20 | * Purge repository on very large repositories 21 | 22 | link:https://access.redhat.com/documentation/en-us/red_hat_quay/{producty}/html-single/red_hat_quay_release_notes#rn-2-500[Link to this Release] 23 | -------------------------------------------------------------------------------- /modules/robot-account-manage-api.adoc: -------------------------------------------------------------------------------- 1 | [id="robot-account-manage-api"] 2 | = Creating and configuring robot accounts by using the {productname} API 3 | 4 | Robot accounts can be created, retrieved, changed, and deleted for both organizations and users by using the {productname} API. -------------------------------------------------------------------------------- /modules/root-rule-config-api-example.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="root-rule-config-api-example"] 3 | 4 | = rule_rule object reference 5 | 6 | [source,yaml] 7 | ---- 8 | { 9 | "root_rule": {"rule_kind": "tag_glob_csv", "rule_value": ["latest", "foo", "bar"]}, 10 | } 11 | ---- -------------------------------------------------------------------------------- /modules/scalability-intro.adoc: -------------------------------------------------------------------------------- 1 | [[scalability-intro]] 2 | = Scalability 3 | 4 | 5 | * Massive scale testing Quay.io 6 | * Real-time garbage collection 7 | * Automated squashing -------------------------------------------------------------------------------- /modules/setting-default-quota.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="default-quota"] 3 | = Setting default quota 4 | 5 | To specify a system-wide default storage quota that is applied to every organization and user, you can use the *DEFAULT_SYSTEM_REJECT_QUOTA_BYTES* configuration flag. 6 | 7 | If you configure a specific quota for an organization or user, and then delete that quota, the system-wide default quota will apply if one has been set. Similarly, if you have configured a specific quota for an organization or user, and then modify the system-wide default quota, the updated system-wide default will override any specific settings. 8 | 9 | For more information about the `DEFAULT_SYSTEM_REJECT_QUOTA_BYTES` flag, 10 | 11 | //need link for 3.9 12 | 13 | see link: 14 | -------------------------------------------------------------------------------- /modules/skipping-source-control-triggered-build.adoc: -------------------------------------------------------------------------------- 1 | [id="skipping-source-control-triggered-build"] 2 | = Skipping a source control-triggered build 3 | 4 | To specify that a commit should be ignored by the 5 | ifeval::["{context}" == "quay-io"] 6 | {quayio} 7 | endif::[] 8 | ifeval::["{context}" == "use-quay"] 9 | {productname} 10 | endif::[] 11 | build system, add the text `[skip build]` or `[build skip]` anywhere in your commit message. -------------------------------------------------------------------------------- /modules/ssl-intro.adoc: -------------------------------------------------------------------------------- 1 | [id="introduction-using-ssl"] 2 | = Using SSL/TLS 3 | 4 | Documentation for _Using SSL/TLS_ has been revised and moved to link:https://docs.redhat.com/en/documentation/red_hat_quay/3/html-single/securing_red_hat_quay/index[Securing {productname}]. This chapter will be removed in a future version of {productname}. -------------------------------------------------------------------------------- /modules/ssl-testing-ui.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="testing-ssl-tls-using-browser"] 3 | = Testing the SSL/TLS configuration using a browser 4 | 5 | Use the following procedure to test your SSL/TLS configuration using a browser. 6 | 7 | .Procedure 8 | 9 | . Navigate to your {productname} registry endpoint, for example, `https://quay-server.example.com`. If configured correctly, the browser warns of the potential risk: 10 | + 11 | image:ssl-connection-not-private.png[Potential risk] 12 | 13 | . Proceed to the log in screen. The browser notifies you that the connection is not secure. For example: 14 | + 15 | image:ssl-connection-not-secure.png[Connection not secure] 16 | + 17 | In the following section, you will configure Podman to trust the root Certificate Authority. -------------------------------------------------------------------------------- /modules/ssl-tls-sql.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="cert-based-auth-quay-sql"] 3 | = Certificate-based authentication between {productname} and SQL 4 | 5 | {productname} administrators can configure certificate-based authentication between {productname} and SQL (PostgreSQL and GCP CloudSQL) by supplying their own SSL/TLS certificates for client-side authentication. This provides enhanced security and allows for easier automation for your {productname} registry. 6 | 7 | The following sections shows you how to configure certificate-based authentication between {productname} and PostgreSQL, and {productname} and CloudSQL. -------------------------------------------------------------------------------- /modules/standalone-deployment-backup-restore.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="standalone-deployment-backup-restore"] 3 | = Backing up and restoring {productname} on a standalone deployment 4 | 5 | Use the content within this section to back up and restore {productname} in standalone deployments. -------------------------------------------------------------------------------- /modules/storage-troubleshooting.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="storage-troubleshooting"] 3 | = Troubleshooting {productname} object storage 4 | 5 | Object storage is a type of data storage architecture that manages data as discrete units called `objects`. Unlike traditional file systems that organize data into hierarchical directories and files, object storage treats data as independent entities with unique identifiers. Each object contains the data itself, along with metadata that describes the object and enables efficient retrieval. 6 | 7 | {productname} uses object storage as the underlying storage mechanism for storing and managing container images. It stores container images as individual objects. Each container image is treated as an object, with its own unique identifier and associated metadata. -------------------------------------------------------------------------------- /modules/superuser-manage-api.adoc: -------------------------------------------------------------------------------- 1 | [id="superuser-manage-api"] 2 | = Managing your deployment as a superuser with the {productname} API 3 | 4 | Through the {productname} UI, superusers have the ability to create, list, change, and delete aspects of the registry, such as users, service keys, a user's quota, and more. -------------------------------------------------------------------------------- /modules/teams-overview.adoc: -------------------------------------------------------------------------------- 1 | 2 | // module included in the following assemblies: 3 | 4 | // * use_quay/master.adoc 5 | // * quay_io/master.adoc 6 | 7 | :_content-type: CONCEPT 8 | [id="teams-overview"] 9 | = {productname} teams overview 10 | 11 | In {productname} a _team_ is a group of users with shared permissions, allowing for efficient management and collaboration on projects. Teams can help streamline access control and project management within organizations and repositories. They can be assigned designated permissions and help ensure that members have the appropriate level of access to their repositories based on their roles and responsibilities. 12 | -------------------------------------------------------------------------------- /modules/testing-features.adoc: -------------------------------------------------------------------------------- 1 | [[testing-features]] 2 | = Testing {productname} 3.7 Features 3 | 4 | The following features can be tested in one of two ways: 5 | 6 | * Using the {productname} Operator in the Community Catalog of your OpenShift Container Platform cluster. 7 | * Using the following standalone images: 8 | + 9 | [source,yaml] 10 | ---- 11 | Quay: quay.io/projectquay/quay:3.7.0-rc.2 12 | Clair: quay.io/projectquay/clair:3.7.0-rc.1 13 | Quay Builder: quay.io/projectquay/quay-builder:3.7.0-rc.2 14 | Quay Builder QEMU: quay.io/projectquay/quay-builder-qemu:main 15 | Postgres: centos/postgresql-10 centos7@sha256:de1560cb35e5ec643e7b3a772ebaac8e3a7a2a8e8271d9e91ff023539b4dfb33 16 | Redis: centos/redis-32-centos7@sha256:06dbb609484330ec6be6090109f1fa16e936afcf975d1cbc5fff3e6c7cae7542 17 | ---- 18 | -------------------------------------------------------------------------------- /modules/testing-ssl-tls-configuration.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="testing-ssl-tls-configuration"] 3 | = Testing the SSL/TLS configuration 4 | 5 | Your SSL/TLS configuration can be tested by using the command-line interface (CLI). Use the following procedure to test your SSL/TLS configuration. -------------------------------------------------------------------------------- /modules/troubleshooting-general.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="troubleshooting-general"] 3 | = General troubleshooting for {productname} 4 | 5 | The following sections detail general troubleshooting errors for {productname}. -------------------------------------------------------------------------------- /modules/troubleshooting-how-tos.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: CONCEPT 2 | [id="troubleshooting-how-tos"] 3 | = How To guide 4 | 5 | This "How to" guide provides step-by-step instructions for troubleshooting common issues encountered while using {productname}. Whether you're a system administrator, developer, or user, this guide helps identify and resolve problems effectively. 6 | 7 | -------------------------------------------------------------------------------- /modules/viewing-tag-history-v2-ui.adoc: -------------------------------------------------------------------------------- 1 | :_content-type: PROCEDURE 2 | [id="viewing-tag-history-v2-ui"] 3 | = Viewing {productname} tag history by using the UI 4 | 5 | ifeval::["{context}" == "quay-io"] 6 | {quayio} 7 | endif::[] 8 | ifeval::["{context}" == "use-quay"] 9 | {productname} 10 | endif::[] 11 | offers a comprehensive history of images and their respective image tags. 12 | 13 | .Procedure 14 | 15 | . On the {productname} v2 UI dashboard, click *Repositories* in the navigation pane. 16 | 17 | . Click the name of a repository that has image tags. 18 | 19 | . Click *Tag History*. On this page, you can perform the following actions: 20 | + 21 | * Search by tag name 22 | * Select a date range 23 | * View tag changes 24 | * View tag modification dates and the time at which they were changed -------------------------------------------------------------------------------- /quay_io/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | About Quay IO 4 | 5 | About Quay IO 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /quay_io/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /quick_start/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | {productname} Quick start guide 4 | 5 | {productname} Quick start guide 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /quick_start/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /red_hat_quay_operator_features/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Advanced {productname} Operator features 4 | 5 | Advanced {productname} Operator features 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /red_hat_quay_operator_features/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /red_hat_quay_overview/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | {productname} overview 4 | 5 | {productname} overview 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /red_hat_quay_overview/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /release_notes/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | {productname} 4 | 5 | {productname} Release Notes 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /release_notes/modules: -------------------------------------------------------------------------------- 1 | ../modules -------------------------------------------------------------------------------- /resources/config.json_example: -------------------------------------------------------------------------------- 1 | ### This is an invalid file because of these comments 2 | ### Get your own file following: https://coreos.com/quay-enterprise/docs/latest/initial-setup.html#downloading-your-license 3 | { 4 | "auths": { 5 | "quay.io": { 6 | "auth": "EXAMPLE_AUTH_TOKEN", 7 | "email": "" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /resources/test/mysql_test.py: -------------------------------------------------------------------------------- 1 | import pymysql.cursors # python2-PyMySQL.noarch 2 | 3 | # Connect to the database 4 | connection = pymysql.connect(host='quay.quaylab.lan', 5 | user='coreosuser', 6 | password='notsecure', 7 | db='enterpriseregistrydb', 8 | charset='utf8mb4', 9 | cursorclass=pymysql.cursors.DictCursor) 10 | try: 11 | with connection.cursor() as cursor: 12 | # Read a single record 13 | sql = "SELECT VERSION();" 14 | cursor.execute(sql) 15 | result = cursor.fetchone() 16 | print(result) 17 | finally: 18 | connection.close() 19 | -------------------------------------------------------------------------------- /resources/test/redis_test.py: -------------------------------------------------------------------------------- 1 | import redis 2 | try: 3 | r = redis.StrictRedis(host='quay.quaylab.lan', port=6379, db=0) 4 | print "Proxy Test: {}".format(r.ping()) 5 | except: 6 | print "Proxy Test: {}".format(False) 7 | try: 8 | r = redis.StrictRedis(host='quay.quaylab.lan', port=6380, db=0) 9 | print "Pod Test: {}".format(r.ping()) 10 | except: 11 | print "Pod Test: {}".format(False) 12 | -------------------------------------------------------------------------------- /securing_quay/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Securing {productname} 4 | 5 | Securing {productname}: SSL/TLS, Certificates, and Encryption 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /securing_quay/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /troubleshooting_quay/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Troubleshooting {productname} 4 | 5 | Troubleshooting {productname} 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /troubleshooting_quay/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /upgrade_quay/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Upgrade {productname} 4 | 5 | Upgrade {productname} 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /upgrade_quay/modules: -------------------------------------------------------------------------------- 1 | ../modules/ -------------------------------------------------------------------------------- /use_quay/docinfo.xml: -------------------------------------------------------------------------------- 1 | {productname} 2 | {producty} 3 | Use {productname} 4 | 5 | Learn to use {productname} 6 | 7 | 8 | Red Hat OpenShift Documentation Team 9 | 10 | 11 | -------------------------------------------------------------------------------- /use_quay/modules: -------------------------------------------------------------------------------- 1 | ../modules/ --------------------------------------------------------------------------------