Browse Source

Use OCI chart format in rancher-charts project

master
parent
commit
00794b9400
  1. 29
      .drone.yml

29
.drone.yml

@ -25,14 +25,31 @@ steps:
- name: push-to-harbor
image: alpine/helm:latest
commands:
# Install helm cm-push plugin
- helm plugin install https://github.com/chartmuseum/helm-push.git || true
# Fail if credentials are missing
- "if [ -z \"$HARBOR_USERNAME\" ] || [ -z \"$HARBOR_PASSWORD\" ]; then echo \"Error: HARBOR_USERNAME or HARBOR_PASSWORD not set\"; exit 1; fi"
# Add the library chart repository
- helm repo add library https://porto.interlegis.leg.br/chartrepo/library --username "$HARBOR_USERNAME" --password "$HARBOR_PASSWORD" --force-update || true
# Push all .tgz files to the library charts repository
- if ls charts/dist/*.tgz >/dev/null 2>&1; then for CHART in charts/dist/*.tgz; do helm cm-push "$CHART" library; done; else echo "No .tgz files to push"; exit 0; fi
# Harbor registry host (OCI). Change if you want a different host or make it an environment variable.
- export HARBOR_REGISTRY="porto.interlegis.leg.br"
# Harbor project/repository to store charts (default: rancher-charts). Can be overridden by setting HARBOR_PROJECT env var in the pipeline.
- export HARBOR_PROJECT="${HARBOR_PROJECT:-rancher-charts}"
# Login to Harbor OCI registry
- helm registry login "$HARBOR_REGISTRY" --username "$HARBOR_USERNAME" --password "$HARBOR_PASSWORD"
# Save and push each packaged chart (.tgz) to Harbor using OCI (repository: <project>/<name>:<version>)
- |
if ls charts/dist/*.tgz >/dev/null 2>&1; then
for CHART in charts/dist/*.tgz; do
NAMEVER=$(basename "$CHART" .tgz)
# split name and version: last '-' separates name and version
VERSION=${NAMEVER##*-}
NAME=${NAMEVER%-"$VERSION"}
OCI_REF="oci://$HARBOR_REGISTRY/$HARBOR_PROJECT/$NAME:$VERSION"
echo "Pushing $CHART as $OCI_REF"
helm chart save "$CHART" "$OCI_REF"
helm chart push "$OCI_REF"
done
else
echo "No .tgz files to push"
exit 0
fi
environment:
HARBOR_USERNAME:
from_secret: harbor_username

Loading…
Cancel
Save