diff --git a/apps/apisix/data.yaml b/apps/apisix/data.yaml index 4244abae8d..c595d1caf4 100644 --- a/apps/apisix/data.yaml +++ b/apps/apisix/data.yaml @@ -19,6 +19,7 @@ why_in_catalog: "Most API gateways make you choose between performance and exten doc_link: https://apisix.apache.org/docs/helm-chart/apisix/ test_wait_for_pods: "apisix-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/dapr/data.yaml b/apps/dapr/data.yaml index 8047fe65d4..de034780aa 100644 --- a/apps/dapr/data.yaml +++ b/apps/dapr/data.yaml @@ -26,6 +26,9 @@ support_link: https://www.diagrid.io/conductor doc_link: https://docs.dapr.io/ github_repo: dapr/dapr +test_wait_for_pods: 'dapr-operator-' +test_adopted_pvc: true + validated_amd64: 'y' validated_aws: 'y' validated_azure: 'y' diff --git a/apps/eck-stack/data.yaml b/apps/eck-stack/data.yaml index d2de894cd4..8f9364e185 100644 --- a/apps/eck-stack/data.yaml +++ b/apps/eck-stack/data.yaml @@ -25,6 +25,7 @@ support_link: https://www.elastic.co/contact doc_link: https://www.elastic.co/docs/deploy-manage/deploy/cloud-on-k8s/install-using-helm-chart test_wait_for_pods: "eck-stack-eck-kibana-kb-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/gitlab/data.yaml b/apps/gitlab/data.yaml index 97aeee3d73..fc5630b011 100644 --- a/apps/gitlab/data.yaml +++ b/apps/gitlab/data.yaml @@ -82,6 +82,7 @@ doc_link: https://docs.gitlab.com/charts/ test_check_images: false test_wait_for_pods: "gitlab-gitlab-shell-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/harbor/data.yaml b/apps/harbor/data.yaml index 385faf4620..1510b0f1dc 100644 --- a/apps/harbor/data.yaml +++ b/apps/harbor/data.yaml @@ -25,6 +25,7 @@ examples: content_template_file: example_ingress/doc.md test_wait_for_pods: "harbor-registry-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/influxdb/data.yaml b/apps/influxdb/data.yaml index e296344e8e..35daa12df4 100644 --- a/apps/influxdb/data.yaml +++ b/apps/influxdb/data.yaml @@ -26,6 +26,7 @@ why_in_catalog: "Relational databases and general-purpose time-series stores bot doc_link: https://docs.influxdata.com/influxdb/v2/ test_wait_for_pods: "nfluxdb2-0" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/jenkins/data.yaml b/apps/jenkins/data.yaml index d113f5dc24..f882cedbcd 100644 --- a/apps/jenkins/data.yaml +++ b/apps/jenkins/data.yaml @@ -40,6 +40,7 @@ why_in_catalog: "Jenkins has been the backbone of CI/CD automation for fifteen y # support_link: TODO doc_link: https://www.jenkins.io/doc/ +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/jupyterhub/data.yaml b/apps/jupyterhub/data.yaml index eb796c4f91..ded587c075 100644 --- a/apps/jupyterhub/data.yaml +++ b/apps/jupyterhub/data.yaml @@ -53,6 +53,7 @@ test_deploy_chart: false test_deploy_multiclusterservice: true test_install_servicetemplates: true test_wait_for_pods: "hub-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/kubecost/data.yaml b/apps/kubecost/data.yaml index 1a291ab362..e56019e9ec 100644 --- a/apps/kubecost/data.yaml +++ b/apps/kubecost/data.yaml @@ -20,6 +20,7 @@ examples: with_ingress: title: With Ingress chart_folder: example_ingress +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/local-ai/data.yaml b/apps/local-ai/data.yaml index 7a39f917a8..697f3044e8 100644 --- a/apps/local-ai/data.yaml +++ b/apps/local-ai/data.yaml @@ -17,6 +17,7 @@ why_in_catalog: "Sending inference requests to OpenAI or other cloud LLM provide doc_link: https://localai.io/basics/kubernetes/ test_wait_for_pods: "local-ai-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/loki/data.yaml b/apps/loki/data.yaml index 26cbfdf264..eaaadbfac5 100644 --- a/apps/loki/data.yaml +++ b/apps/loki/data.yaml @@ -39,6 +39,8 @@ why_in_catalog: "Storing full log content in Elasticsearch costs an order of mag doc_link: https://grafana.com/docs/loki/latest/setup/install/helm/install-microservices/ test_wait_for_pods: "loki-0" +test_adopted_pvc: true + validated_amd64: 'y' validated_local: 'y' validated_aws: 'y' diff --git a/apps/milvus/data.yaml b/apps/milvus/data.yaml index 8fb3e07604..a5f5f961ec 100644 --- a/apps/milvus/data.yaml +++ b/apps/milvus/data.yaml @@ -37,6 +37,7 @@ why_in_catalog: "Qdrant and Milvus occupy the same space — purpose-built vecto doc_link: https://milvus.io/docs/install_cluster-helm.md test_wait_for_pods: "milvus-standalone-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/minio/data.yaml b/apps/minio/data.yaml index 64c6c18d58..c5370478d0 100644 --- a/apps/minio/data.yaml +++ b/apps/minio/data.yaml @@ -14,6 +14,7 @@ why_in_catalog: "Every AI infrastructure stack needs somewhere to put datasets, # support_link: doc_link: https://min.io/docs/minio/kubernetes/upstream/index.html +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/msr/data.yaml b/apps/msr/data.yaml index 5ad2e6adff..5ea2800457 100644 --- a/apps/msr/data.yaml +++ b/apps/msr/data.yaml @@ -21,6 +21,7 @@ examples: title: With Ingress chart_folder: example_ingress content_template_file: example_ingress/doc.md +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/opencost/data.yaml b/apps/opencost/data.yaml index f2693c48e3..8b0d8f9829 100644 --- a/apps/opencost/data.yaml +++ b/apps/opencost/data.yaml @@ -38,6 +38,7 @@ examples: k8s: ["1.29", "1.30", "1.31", "1.32"] chart_folder: example_ai_observability content_template_file: example_ai_observability/doc.md +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/penpot/data.yaml b/apps/penpot/data.yaml index d248d8b9e8..4e0d0c37bf 100644 --- a/apps/penpot/data.yaml +++ b/apps/penpot/data.yaml @@ -20,6 +20,7 @@ support_link: https://penpot.app/talk-to-us doc_link: https://help.penpot.app/technical-guide/getting-started/kubernetes/#install-penpot-chart test_wait_for_pods: "penpot-backend-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/postgresql/data.yaml b/apps/postgresql/data.yaml index 81e4aa80ae..8f21403843 100644 --- a/apps/postgresql/data.yaml +++ b/apps/postgresql/data.yaml @@ -23,6 +23,7 @@ examples: title: "With Ingress" chart_folder: example_ingress content_template_file: example_ingress/doc.md +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/prometheus/data.yaml b/apps/prometheus/data.yaml index 61f6ee15e8..4c72074eed 100644 --- a/apps/prometheus/data.yaml +++ b/apps/prometheus/data.yaml @@ -18,7 +18,7 @@ examples: doc_link: https://prometheus.io/docs/introduction/overview/ test_wait_for_pods: "prometheus-server-" - +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/qdrant/data.yaml b/apps/qdrant/data.yaml index 78f43063c3..d33d748ee6 100644 --- a/apps/qdrant/data.yaml +++ b/apps/qdrant/data.yaml @@ -21,6 +21,7 @@ why_in_catalog: "RAG applications live and die by vector search performance. Qdr doc_link: https://qdrant.tech/documentation/guides/installation/#qdrant-kubernetes-operator # test_wait_for_pods: "milvus-standalone-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/rabbitmq/data.yaml b/apps/rabbitmq/data.yaml index 93161ff679..57fa75bcdc 100644 --- a/apps/rabbitmq/data.yaml +++ b/apps/rabbitmq/data.yaml @@ -28,6 +28,7 @@ support_link: https://www.rabbitmq.com/commercial-features doc_link: https://www.rabbitmq.com/docs test_wait_for_pods: "rabbitmq-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/redis/data.yaml b/apps/redis/data.yaml index 75571da530..8971342238 100644 --- a/apps/redis/data.yaml +++ b/apps/redis/data.yaml @@ -26,6 +26,7 @@ why_in_catalog: "Semantic caching for LLM APIs — storing the responses to embe doc_link: https://redis.io/docs/latest/get-started/ test_wait_for_pods: "redis-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/teleport/data.yaml b/apps/teleport/data.yaml index 8cd8fa4475..8fda6300de 100644 --- a/apps/teleport/data.yaml +++ b/apps/teleport/data.yaml @@ -21,6 +21,7 @@ why_in_catalog: "VPNs and bastion hosts give broad network access and generate a doc_link: https://goteleport.com/docs/installation/helm/ test_wait_for_pods: "teleport-cluster-proxy-" +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/apps/victoriametrics/data.yaml b/apps/victoriametrics/data.yaml index a43666ba08..7fea359ffa 100644 --- a/apps/victoriametrics/data.yaml +++ b/apps/victoriametrics/data.yaml @@ -51,6 +51,7 @@ prerequisites: | doc_link: https://docs.victoriametrics.com/ support_link: https://victoriametrics.com/products/enterprise/ +test_adopted_pvc: true validated_amd64: 'y' validated_aws: 'y' diff --git a/scripts/deploy_cld.sh b/scripts/deploy_cld.sh index 0911d760cd..fcfaf81b4d 100755 --- a/scripts/deploy_cld.sh +++ b/scripts/deploy_cld.sh @@ -102,7 +102,9 @@ elif [[ "$TEST_MODE" == adopted ]]; then # openebs is skipped: its pods cannot start before the CNI is deployed, so # this mode leaves the cluster without a default StorageClass. echo "Skipping openebs install (no CNI yet)" - else + fi + + if [[ "${TEST_ADOPTED_PVC:-false}" == true ]]; then # Default StorageClass (openebs hostpath); k0s ships none. TEST_MODE=adopted ./scripts/install_openebs.sh fi diff --git a/scripts/utils.py b/scripts/utils.py index 1b400396ba..698597dd7a 100755 --- a/scripts/utils.py +++ b/scripts/utils.py @@ -233,6 +233,9 @@ def print_test_vars(args): # CNI apps need the adopted cluster created without a CNI (see deploy_cld.sh). test_adopted_nocni = str(app_data.get('test_adopted_nocni', False)).lower() print(f"TEST_ADOPTED_NOCNI={test_adopted_nocni}") + # Some apps need StorageClass in testing cluster. Mostly not needed so disabled by default. + test_adopted_pvc = str(app_data.get('test_adopted_pvc', False)).lower() + print(f"TEST_ADOPTED_PVC={test_adopted_pvc}") def get_wait_for_pods(args): diff --git a/scripts/web/generate_catalog_json.py b/scripts/web/generate_catalog_json.py index 7d473af3dc..222a4ea941 100644 --- a/scripts/web/generate_catalog_json.py +++ b/scripts/web/generate_catalog_json.py @@ -406,6 +406,7 @@ def generate_install_json(app_name: str, data: dict, app_path: str): 'test_check_images': bool, 'test_remove_multiclusterservice': bool, 'test_adopted_nocni': bool, + 'test_adopted_pvc': bool, # Validation results 'validated_amd64': str, 'validated_arm64': str,