#!/usr/bin/env bats @test "Create Harbor" { name='test' release="harbor-$name" # Clean up stale resources from previous failed runs kubectl -n tenant-test delete harbor.apps.cozystack.io $name 2>/dev/null || true kubectl -n tenant-test wait hr $release --timeout=60s --for=delete 2>/dev/null || true kubectl apply -f- <&1 || true echo "=== Pods ===" kubectl -n tenant-test get pods 2>&1 || true echo "=== Events ===" kubectl -n tenant-test get events --sort-by='.lastTimestamp' 2>&1 | tail -30 || true echo "=== ExternalArtifact ===" kubectl -n cozy-system get externalartifact cozystack-harbor-application-default-harbor-system -o yaml 2>&1 || true echo "=== BucketClaim status ===" kubectl -n tenant-test get bucketclaims.objectstorage.k8s.io $release-registry -o yaml 2>&1 || true echo "=== BucketAccess status ===" kubectl -n tenant-test get bucketaccesses.objectstorage.k8s.io $release-registry -o yaml 2>&1 || true echo "=== BucketAccess Secret ===" kubectl -n tenant-test get secret $release-registry-bucket -o jsonpath='{.data.BucketInfo}' 2>&1 | base64 -d 2>&1 || true false } kubectl -n tenant-test wait deploy $release-core --timeout=120s --for=condition=available kubectl -n tenant-test wait deploy $release-registry --timeout=120s --for=condition=available kubectl -n tenant-test wait deploy $release-portal --timeout=120s --for=condition=available kubectl -n tenant-test get secret $release-credentials -o jsonpath='{.data.admin-password}' | base64 --decode | grep -q '.' kubectl -n tenant-test get secret $release-credentials -o jsonpath='{.data.url}' | base64 --decode | grep -q 'https://' kubectl -n tenant-test get svc $release -o jsonpath='{.spec.ports[0].port}' | grep -q '80' kubectl -n tenant-test delete harbor.apps.cozystack.io $name }