diff --git a/.github/workflows/components-build-deploy.yml b/.github/workflows/components-build-deploy.yml index ed3bae46c..700ec3d94 100644 --- a/.github/workflows/components-build-deploy.yml +++ b/.github/workflows/components-build-deploy.yml @@ -235,6 +235,22 @@ jobs: oc wait csv "$CSV" -n redhat-ods-operator \ --for=jsonpath='{.status.phase}'=Succeeded --timeout=600s + - name: Wait for DataScienceCluster CRD to be available + run: | + echo "Waiting for DataScienceCluster CRD to be registered..." + for i in $(seq 1 60); do + if oc get crd datascienceclusters.datasciencecluster.opendatahub.io &>/dev/null; then + echo "DataScienceCluster CRD is available" + break + fi + if [ "$i" -eq 60 ]; then + echo "::error::DataScienceCluster CRD did not become available within timeout" + exit 1 + fi + echo "Attempt $i/60 - CRD not yet available, waiting 10s..." + sleep 10 + done + - name: Apply DSCInitialization and DataScienceCluster run: | oc apply -f components/manifests/components/openshift-ai/dsci.yaml @@ -256,6 +272,14 @@ jobs: sleep 10 done + - name: Ensure mlflow database exists in PostgreSQL + run: | + oc exec -n ambient-code deploy/postgresql -- \ + psql -U postgres -tAc \ + "SELECT 1 FROM pg_database WHERE datname = 'mlflow'" | grep -q 1 \ + || oc exec -n ambient-code deploy/postgresql -- \ + psql -U postgres -c "CREATE DATABASE mlflow" + - name: Verify mlflow-db-credentials secret exists run: | if ! oc get secret mlflow-db-credentials -n redhat-ods-applications &>/dev/null; then diff --git a/.github/workflows/prod-release-deploy.yaml b/.github/workflows/prod-release-deploy.yaml index db2d90126..1983b266b 100644 --- a/.github/workflows/prod-release-deploy.yaml +++ b/.github/workflows/prod-release-deploy.yaml @@ -374,6 +374,22 @@ jobs: oc wait csv "$CSV" -n redhat-ods-operator \ --for=jsonpath='{.status.phase}'=Succeeded --timeout=600s + - name: Wait for DataScienceCluster CRD to be available + run: | + echo "Waiting for DataScienceCluster CRD to be registered..." + for i in $(seq 1 60); do + if oc get crd datascienceclusters.datasciencecluster.opendatahub.io &>/dev/null; then + echo "DataScienceCluster CRD is available" + break + fi + if [ "$i" -eq 60 ]; then + echo "::error::DataScienceCluster CRD did not become available within timeout" + exit 1 + fi + echo "Attempt $i/60 - CRD not yet available, waiting 10s..." + sleep 10 + done + - name: Apply DSCInitialization and DataScienceCluster run: | oc apply -f components/manifests/components/openshift-ai/dsci.yaml @@ -395,6 +411,14 @@ jobs: sleep 10 done + - name: Ensure mlflow database exists in PostgreSQL + run: | + oc exec -n ambient-code deploy/postgresql -- \ + psql -U postgres -tAc \ + "SELECT 1 FROM pg_database WHERE datname = 'mlflow'" | grep -q 1 \ + || oc exec -n ambient-code deploy/postgresql -- \ + psql -U postgres -c "CREATE DATABASE mlflow" + - name: Verify mlflow-db-credentials secret exists run: | if ! oc get secret mlflow-db-credentials -n redhat-ods-applications &>/dev/null; then diff --git a/components/manifests/components/openshift-ai/mlflow.yaml b/components/manifests/components/openshift-ai/mlflow.yaml index 835f978ab..a9a6bc94d 100644 --- a/components/manifests/components/openshift-ai/mlflow.yaml +++ b/components/manifests/components/openshift-ai/mlflow.yaml @@ -3,7 +3,7 @@ kind: MLflow metadata: name: mlflow spec: - replicas: 2 + replicas: 1 resources: requests: