[PATCH] regindexer: create two sets of indexes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "Owen W. Taylor" <otaylor@xxxxxxxxxxxx>

Flatpak-1.6 expects metadata to be stored in Docker-compatible labels
rather than OCI annotations. We build Flatpaks for Fedora with both
labels and annotations for compatibility with older and newer Flatpaks,
but we also need to have two sets of indexes:

 - One that is served in response to a query for labels, and skips
   including Flatpak annotations in the response (to reduce size)
 - One that is served in response to a query for annotation, and skips
   including Flatpak labels in the response.

This commit requires regindexer-1.6. See:

 https://pagure.io/fedora-infrastructure/issue/8579

Signed-off-by: Owen W. Taylor <otaylor@xxxxxxxxxxxx>
---
 .../reversepassproxy.registry-generic.conf    | 16 ++++++++
 roles/regindexer/build/templates/config.yaml  | 38 +++++++++++++++++++
 2 files changed, 54 insertions(+)

diff --git a/roles/httpd/reverseproxy/templates/reversepassproxy.registry-generic.conf b/roles/httpd/reverseproxy/templates/reversepassproxy.registry-generic.conf
index 3030b1d73..e2878a8d7 100644
--- a/roles/httpd/reverseproxy/templates/reversepassproxy.registry-generic.conf
+++ b/roles/httpd/reverseproxy/templates/reversepassproxy.registry-generic.conf
@@ -25,17 +25,33 @@ RewriteCond "&%{QUERY_STRING}" &tag=testing
 RewriteCond "&%{QUERY_STRING}" &architecture=([^&]+)
 RewriteRule "^/index/static$" /index/flatpak-testing-%1.json [L,PT]
 
+RewriteCond "&%{QUERY_STRING}" &label(%3A|:)org.flatpak.ref(%3A|:)exists=1
+RewriteCond "&%{QUERY_STRING}" &tag=testing
+RewriteCond "&%{QUERY_STRING}" &architecture=([^&]+)
+RewriteRule "^/index/static$" /index/flatpak-testing-%1-labels.json [L,PT]
+
 RewriteCond "&%{QUERY_STRING}" &annotation(%3A|:)org.flatpak.ref(%3A|:)exists=1
 RewriteCond "&%{QUERY_STRING}" &architecture=([^&]+)
 RewriteRule "^/index/static$" /index/flatpak-%1.json [L,PT]
 
+RewriteCond "&%{QUERY_STRING}" &label(%3A|:)org.flatpak.ref(%3A|:)exists=1
+RewriteCond "&%{QUERY_STRING}" &architecture=([^&]+)
+RewriteRule "^/index/static$" /index/flatpak-%1-labels.json [L,PT]
+
 RewriteCond "&%{QUERY_STRING}" &annotation(%3A|:)org.flatpak.ref(%3A|:)exists=1
 RewriteCond "&%{QUERY_STRING}" &tag=testing
 RewriteRule "^/index/static$" /index/flatpak-testing.json [L,PT]
 
+RewriteCond "&%{QUERY_STRING}" &label(%3A|:)org.flatpak.ref(%3A|:)exists=1
+RewriteCond "&%{QUERY_STRING}" &tag=testing
+RewriteRule "^/index/static$" /index/flatpak-testing-labels.json [L,PT]
+
 RewriteCond "&%{QUERY_STRING}" &annotation(%3A|:)org.flatpak.ref(%3A|:)exists=1
 RewriteRule "^/index/static$" /index/flatpak.json [L,PT]
 
+RewriteCond "&%{QUERY_STRING}" &label(%3A|:)org.flatpak.ref(%3A|:)exists=1
+RewriteRule "^/index/static$" /index/flatpak-labels.json [L,PT]
+
 DocumentRoot /srv/web/registry-index/
 
 <Directory /srv/web/registry-index>
diff --git a/roles/regindexer/build/templates/config.yaml b/roles/regindexer/build/templates/config.yaml
index 569dc9466..7b30290f8 100644
--- a/roles/regindexer/build/templates/config.yaml
+++ b/roles/regindexer/build/templates/config.yaml
@@ -7,6 +7,15 @@ indexes:
         registry_public: /
         tags: ['latest']
         required_annotations: ['org.flatpak.ref']
+        skip_flatpak_labels: True
+        extract_icons: True
+    flatpak_labels:
+        output: /var/lib/regindexer/index/flatpak-labels.json
+        registry: https://registry{{ env_suffix }}.fedoraproject.org
+        registry_public: /
+        tags: ['latest']
+        required_labels: ['org.flatpak.ref']
+        skip_flatpak_annotations: True
         extract_icons: True
     flatpak_testing:
         output: /var/lib/regindexer/index/flatpak-testing.json
@@ -14,6 +23,15 @@ indexes:
         registry_public: /
         tags: ['testing']
         required_annotations: ['org.flatpak.ref']
+        skip_flatpak_labels: True
+        extract_icons: True
+    flatpak_testing_labels:
+        output: /var/lib/regindexer/index/flatpak-testing-labels.json
+        registry: https://registry{{ env_suffix }}.fedoraproject.org
+        registry_public: /
+        tags: ['testing']
+        required_labels: ['org.flatpak.ref']
+        skip_flatpak_annotations: True
         extract_icons: True
     flatpak_amd64:
         output: /var/lib/regindexer/index/flatpak-amd64.json
@@ -22,6 +40,16 @@ indexes:
         tags: ['latest']
         required_annotations: ['org.flatpak.ref']
         architectures: ['amd64']
+        skip_flatpak_labels: True
+        extract_icons: True
+    flatpak_amd64_labels:
+        output: /var/lib/regindexer/index/flatpak-amd64-labels.json
+        registry: https://registry{{ env_suffix }}.fedoraproject.org
+        registry_public: /
+        tags: ['latest']
+        required_labels: ['org.flatpak.ref']
+        architectures: ['amd64']
+        skip_flatpak_annotations: True
         extract_icons: True
     flatpak_testing_amd64:
         output: /var/lib/regindexer/index/flatpak-testing-amd64.json
@@ -30,6 +58,16 @@ indexes:
         tags: ['testing']
         required_annotations: ['org.flatpak.ref']
         architectures: ['amd64']
+        skip_flatpak_labels: True
+        extract_icons: True
+    flatpak_testing_amd64_labels:
+        output: /var/lib/regindexer/index/flatpak-testing-amd64-labels.json
+        registry: https://registry{{ env_suffix }}.fedoraproject.org
+        registry_public: /
+        tags: ['testing']
+        required_labels: ['org.flatpak.ref']
+        architectures: ['amd64']
+        skip_flatpak_annotations: True
         extract_icons: True
 daemon: 
     topic_prefix: org.fedoraproject
-- 
2.21.1
_______________________________________________
infrastructure mailing list -- infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to infrastructure-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Development]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux