Skip to content

Commit

Permalink
Update the replication rule related to the Chartmuseum (#18274)
Browse files Browse the repository at this point in the history
Update the registry and replication rule related to the Chartmuseum

Update replication_policy and registry as Harbor v2.8.0 deprecates chartmuseum.
Harbor deprecates chartmuseum as of v2.8.0
Epic: #17958
Discussion: #15057

Signed-off-by: Yang Jiao <jiaoya@vmware.com>
  • Loading branch information
YangJiao0817 committed Mar 2, 2023
1 parent 320c64e commit 1f3f732
Showing 1 changed file with 30 additions and 1 deletion.
31 changes: 30 additions & 1 deletion make/migrations/postgresql/0110_2.8.0_schema.up.sql
Original file line number Diff line number Diff line change
@@ -1,2 +1,31 @@
/* remove the redundant data from table artifact_blob */
delete from artifact_blob afb where not exists (select digest from blob b where b.digest = afb.digest_af);
delete from artifact_blob afb where not exists (select digest from blob b where b.digest = afb.digest_af);
/* Update the registry and replication policy associated with the chartmuseum */
UPDATE registry
SET description = 'Chartmuseum has been deprecated in Harbor v2.8.0, please delete this registry.'
WHERE type in ('artifact-hub', 'helm-hub');
WITH filter_objects AS (
SELECT id, jsonb_array_elements(filters::jsonb) AS filter
FROM replication_policy
WHERE filters IS NOT NULL AND filters != ''
AND jsonb_typeof(CAST(filters AS jsonb)) = 'array'
),
replication_policy_ids AS (
SELECT rp.id
FROM registry r
INNER JOIN replication_policy rp ON (rp.dest_registry_id = r.id OR rp.src_registry_id = r.id)
WHERE r.type IN ('artifact-hub', 'helm-hub')
)
UPDATE replication_policy AS rp
SET enabled = false,
filters = (
SELECT COALESCE(jsonb_agg(fo.filter)::text, '')
FROM filter_objects AS fo
WHERE fo.id = rp.id AND NOT(filter ->> 'type' = 'resource' AND filter ->> 'value' = 'chart')
),
description = 'Chartmuseum is deprecated in Harbor v2.8.0, because the Source resource filter of this rule is chart(chartmuseum), so please update this rule.'
WHERE id IN (
SELECT id FROM filter_objects WHERE (filter ->> 'type' = 'resource' AND filter ->> 'value' = 'chart')
UNION
SELECT id FROM replication_policy_ids
);

0 comments on commit 1f3f732

Please sign in to comment.