Currently if a new manifest is created that re-uses blobs already existing in the registry but not within the namespace it's possible for that manifest to be blocked if the newly referenced blobs exceed the quota limit. The issue being that the rejection only happens after the manifest has been created and tagged. This change blocks the manifest upload before the creation of the tag and prevents that tag from appearing in the UI and being pullable.
If the manifest upload get's rejected before the tag has been created for a new manifest, a temporary tag is created outside the time machine window so it is immediately available for GC.
chore: remove husky
husky replaces pre-commit which is undesirable for this repository, as
`npm install` in web/ essentially disables all pre-commit checks for
Python code.
pre-commit already has all checks that are privded by husky.
Co-authored-by: Oleg Bulatov <oleg@bulatov.me>
reconfigure: Remove ca-bundle.crt and service-ca.crt (PROJQUAY-5233)
- We need to strip out the cluster provided certs from the reconfigure rrequest to avoid duplication.
This resolves JSON encoding/decoding issues found in passing this cert through the config editor
Co-authored-by: Jonathan King <jonathankingfc@gmail.com>
* georeplication: Enqueue blobs for replication on manifest list pushes (PROJQUAY-5256) Previously, blob replication was only queued when normal manifests were pushed to the registry. This created problems with manifest lists who contain child manifests whose blobs were never queued. The end result was a huge discrepancy of storage usage between different defined storage engines. With this fix, blobs will always be enqueued for replication regardless of the image type.
* Update `black` in `requirements-dev.txt` to match the version we use on Github
---------
Co-authored-by: Ivan Bazulic <ibazulic@redhat.com>
Co-authored-by: Sunandadadi <Sunandadadi@users.noreply.github.com>
PyYAML 5.4.1 is the latest (at the moment) version that can be installed
with Cython 3.0 (3.0b9).
As gevent requires Cython 3.0+, we cannot use PyYAML 6.0 that depends on
Cython 0.x (<3.0).
As PyYAML 5.4.1 doesn't restrict the version of Cython that can be used
to build it, pip selects Cython 3.0 when it creates an isolated build
environment and fails to build PyYAML. To fix that, we preinstall build
dependencies and disable the build isolation for PyYAML.
Co-authored-by: Oleg Bulatov <oleg@bulatov.me>
- Gracefully handle errors that are thrown during remove location script
- This should handle scenarios where the location is not found or not provided, as well as other error cases
Co-authored-by: Jonathan King <jonathankingfc@gmail.com>
* api: Removing parsing of datetime (PROJQUAY-5360)
* added ignoretz flag to date util parser
* added removed extra line
---------
Co-authored-by: Sunandadadi <sunanda.3094@gmail.com>
* config-tool: (247 commits)
chore: Move config-tool into its own directory
pg: Add warning log when Postgres version less than 13 (#218)
chore: Bump dependencies (PROJQUAY-5630) (#211)
build(deps): bump decode-uri-component in /pkg/lib/editor (#192)
chore: Create Quay PR from the same push event
chore: Use DEPLOY_PAT so that GitHub reacts on new tags
build(deps): bump socket.io-parser in /pkg/lib/editor (#213)
chore: Create PR against Quay for new tags (#212)
build(deps): bump minimist and karma in /pkg/lib/editor (#210)
deploy: use PAT for creating PR on quay repo (PROJQUAY-5048) (#207)
deploy: fix release.yaml quote (PROJQUAY-5048) (#206)
chore: Bump http-swagger (PROJQUAY-3643) (#198)
deploy: Create a PR against quay for every release (PROJQUAY-5048) (#204)
deploy: Add workflow to auto release on push (PROJQUAY-5048) (#200)
storage: Add CloudFlare and MultiCDN config validation (PROJQUAY-5048) (#199)
setup: Add ALLOWED_OCI_ARFICAT_TYPES to generated config (PROJQUAY-1032) (#110)
docs: Add documentation for TLS usage (PROJQUAY-4558) (#188)
Update mini-go (#184)
validator: Fix database.pem path in config.yaml (PROJQIUAY-4222) (#181)
ci: Update golang version in CI (PROJQUAY-1605)
...