bundle-kubeflow icon indicating copy to clipboard operation
bundle-kubeflow copied to clipboard

Test the UATs for the 1.9 release on Microk8s

Open ca-scribner opened this issue 1 year ago • 1 comments

Context

The UAT tests should be run on any new kubeflow bundle prior to release

What needs to get done

  1. execute the UATs on the kubeflow 1.9 release

Definition of Done

  1. UATs are passing for kubeflow 1.9 release

ca-scribner avatar Jan 31 '24 15:01 ca-scribner

Thank you for reporting us your feedback!

The internal ticket has been created: https://warthogs.atlassian.net/browse/KF-5276.

This message was autogenerated

UATs in 1.9/beta

Identified issues:

  • https://github.com/canonical/katib-operators/issues/211
  • https://github.com/canonical/kubeflow-dashboard-operator/issues/197#issuecomment-2221204138

I ran UATs with tox -ve kubeflow-local, these are the results:

============================================================================ short test summary info =============================================================================
FAILED driver/test_kubeflow_workloads.py::test_kubeflow_workloads - Failed: Something went wrong while running Job test-kubeflow/test-kubeflow. Please inspect the attached logs for more info...
==================================================================== 1 failed, 1 passed in 1988.01s (0:33:08) ====================================================================
kubeflow-local: exit 1 (1989.54 seconds) /home/ubuntu/charmed-kubeflow-uats> pytest -vv --tb native /home/ubuntu/charmed-kubeflow-uats/driver/ -s --filter 'not mlflow' --model kubeflow pid=591250
  kubeflow-local: FAIL code 1 (1989.59=setup[0.05]+cmd[1989.54] seconds)
  evaluation failed :( (1989.68 seconds)

According to the logs, the Katib integration test is failing:

------------------------------ Captured log call -------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running katib-integration.ipynb...
ERROR    test_notebooks:test_notebooks.py:58 Cell In[8], line 8, in assert_experiment_succeeded(client, experiment)
      1 @retry(
      2     wait=wait_exponential(multiplier=2, min=1, max=10),
      3     stop=stop_after_attempt(30),
      4     reraise=True,
      5 )
      6 def assert_experiment_succeeded(client, experiment):
      7     """Wait for the Katib Experiment to complete successfully."""
----> 8     assert client.is_experiment_succeeded(name=experiment), f"Katib Experiment was not successful."
AssertionError: Katib Experiment was not successful.
=========================== short test summary info ============================
FAILED test_notebooks.py::test_notebook[katib-integration] - Failed: AssertionError: Katib Experiment was not successful.
============ 1 failed, 4 passed, 4 deselected in 1940.13s (0:32:20) ============
FAILED
------------------------------------------------------------------------------- live log teardown --------------------------------------------------------------------------------
INFO     test_kubeflow_workloads:test_kubeflow_workloads.py:82 Deleting Profile test-kubeflow...
INFO     httpx:_client.py:1013 HTTP Request: DELETE https://172.31.15.25:16443/apis/kubeflow.org/v1/profiles/test-kubeflow "HTTP/1.1 200 OK"
INFO     test_kubeflow_workloads:test_kubeflow_workloads.py:141 Deleting Job test-kubeflow/test-kubeflow...
INFO     httpx:_client.py:1013 HTTP Request: DELETE https://172.31.15.25:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"

Looking a bit more into the logs, I can see the following:

============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /opt/conda/bin/python3.8
cachedir: .pytest_cache
rootdir: /tests
configfile: pytest.ini
plugins: anyio-3.6.2
collecting ... collected 9 items / 4 deselected / 5 selected

test_notebooks.py::test_notebook[katib-integration]
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running katib-integration.ipynb...
ERROR    test_notebooks:test_notebooks.py:58 Cell In[8], line 8, in assert_experiment_succeeded(client, experiment)
      1 @retry(
      2     wait=wait_exponential(multiplier=2, min=1, max=10),
      3     stop=stop_after_attempt(30),
      4     reraise=True,
      5 )
      6 def assert_experiment_succeeded(client, experiment):
      7     """Wait for the Katib Experiment to complete successfully."""
----> 8     assert client.is_experiment_succeeded(name=experiment), f"Katib Experiment was not successful."
AssertionError: Katib Experiment was not successful.
FAILED                                                                   [ 20%]
test_notebooks.py::test_notebook[kfp-v1-integration]
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running kfp-v1-integration.ipynb...
PASSED                                                                   [ 40%]
test_notebooks.py::test_notebook[kfp-v2-integration]
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running kfp-v2-integration.ipynb...
PASSED                                                                   [ 60%]
test_notebooks.py::test_notebook[kserve-integration]
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running kserve-integration.ipynb...
PASSED                                                                   [ 80%]
test_notebooks.py::test_notebook[training-integration]
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running training-integration.ipynb...
PASSED                                                                   [100%]
=================================== FAILURES ===================================
_______________________ test_notebook[katib-integration] _______________________

test_notebook = '/tests/notebooks/katib/katib-integration.ipynb'

    @pytest.mark.ipynb
    @pytest.mark.parametrize(
        # notebook - ipynb file to execute
        "test_notebook",
        NOTEBOOKS.values(),
        ids=NOTEBOOKS.keys(),
    )
    def test_notebook(test_notebook):
        """Test Notebook Generic Wrapper."""
        os.chdir(os.path.dirname(test_notebook))

        with open(test_notebook) as nb:
            notebook = nbformat.read(nb, as_version=nbformat.NO_CONVERT)

        ep = ExecutePreprocessor(
            timeout=-1, kernel_name="python3", on_notebook_start=install_python_requirements
        )
        ep.skip_cells_with_tag = "pytest-skip"

        try:
            log.info(f"Running {os.path.basename(test_notebook)}...")
            output_notebook, _ = ep.preprocess(notebook, {"metadata": {"path": "./"}})
            # persist the notebook output to the original file for debugging purposes
            save_notebook(output_notebook, test_notebook)
        except CellExecutionError as e:
            # handle underlying error
            pytest.fail(f"Notebook execution failed with {e.ename}: {e.evalue}")

        for cell in output_notebook.cells:
            metadata = cell.get("metadata", dict)
            if "raises-exception" in metadata.get("tags", []):
                for cell_output in cell.outputs:
                    if cell_output.output_type == "error":
                        # extract the error message from the cell output
                        log.error(format_error_message(cell_output.traceback))
>                       pytest.fail(cell_output.traceback[-1])
E                       Failed: AssertionError: Katib Experiment was not successful.

/tests/test_notebooks.py:59: Failed

Preliminary tests for beta

  1. Deployed juju kubeflow --channel 1.9/beta --trust
  2. Configured dex-auth and oidc-gatekeeper's public-url = http://dex-auth.kubeflow.svc:5556
  3. Configured dex-auth's static-username and static-password
  4. Waited for about 10 minutes and checked the status of the model:
ubuntu@ip-172-31-15-25:~$ juju status
Model     Controller  Cloud/Region        Version  SLA          Timestamp
kubeflow  uk8s-343    microk8s/localhost  3.4.4    unsupported  20:23:35Z

App                        Version                  Status  Scale  Charm                    Channel       Rev  Address         Exposed  Message
admission-webhook                                   active      1  admission-webhook        latest/beta   328  10.152.183.124  no
argo-controller                                     active      1  argo-controller          latest/beta   526  10.152.183.183  no
dex-auth                                            active      1  dex-auth                 latest/beta   507  10.152.183.141  no
envoy                                               active      1  envoy                    latest/beta   231  10.152.183.126  no
istio-ingressgateway                                active      1  istio-gateway            latest/beta  1048  10.152.183.69   no
istio-pilot                                         active      1  istio-pilot              latest/beta  1013  10.152.183.23   no
jupyter-controller                                  active      1  jupyter-controller       latest/beta  1002  10.152.183.175  no
jupyter-ui                                          active      1  jupyter-ui               latest/beta   925  10.152.183.41   no
katib-controller                                    active      1  katib-controller         latest/beta   690  10.152.183.35   no
katib-db                   8.0.36-0ubuntu0.22.04.1  active      1  mysql-k8s                8.0/stable    153  10.152.183.129  no
katib-db-manager                                    active      1  katib-db-manager         latest/beta   653  10.152.183.50   no
katib-ui                                            active      1  katib-ui                 latest/beta   657  10.152.183.217  no
kfp-api                                             active      1  kfp-api                  latest/beta  1466  10.152.183.91   no
kfp-db                     8.0.36-0ubuntu0.22.04.1  active      1  mysql-k8s                8.0/stable    153  10.152.183.80   no
kfp-metadata-writer                                 active      1  kfp-metadata-writer      latest/beta   524  10.152.183.59   no
kfp-persistence                                     active      1  kfp-persistence          latest/beta  1473  10.152.183.42   no
kfp-profile-controller                              active      1  kfp-profile-controller   latest/beta  1431  10.152.183.130  no
kfp-schedwf                                         active      1  kfp-schedwf              latest/beta  1484  10.152.183.180  no
kfp-ui                                              active      1  kfp-ui                   latest/beta  1467  10.152.183.229  no
kfp-viewer                                          active      1  kfp-viewer               latest/beta  1499  10.152.183.77   no
kfp-viz                                             active      1  kfp-viz                  latest/beta  1417  10.152.183.219  no
knative-eventing                                    active      1  knative-eventing         latest/beta   441  10.152.183.111  no
knative-operator                                    active      1  knative-operator         latest/beta   416  10.152.183.134  no
knative-serving                                     active      1  knative-serving          latest/beta   442  10.152.183.75   no
kserve-controller                                   active      1  kserve-controller        latest/beta   397  10.152.183.132  no
kubeflow-dashboard                                  active      1  kubeflow-dashboard       latest/beta   600  10.152.183.32   no
kubeflow-profiles                                   active      1  kubeflow-profiles        latest/beta   393  10.152.183.221  no
kubeflow-roles                                      active      1  kubeflow-roles           latest/beta   225  10.152.183.150  no
kubeflow-volumes                                    active      1  kubeflow-volumes         latest/beta   314  10.152.183.28   no
metacontroller-operator                             active      1  metacontroller-operator  latest/beta   280  10.152.183.61   no
minio                      res:oci-image@5102166    active      1  minio                    latest/beta   334  10.152.183.21   no
mlmd                                                active      1  mlmd                     latest/beta   201  10.152.183.197  no
oidc-gatekeeper                                     active      1  oidc-gatekeeper          latest/beta   396  10.152.183.43   no
pvcviewer-operator                                  active      1  pvcviewer-operator       latest/beta   118  10.152.183.253  no
seldon-controller-manager                           active      1  seldon-core              latest/beta   691  10.152.183.236  no
tensorboard-controller                              active      1  tensorboard-controller   latest/beta   307  10.152.183.18   no
tensorboards-web-app                                active      1  tensorboards-web-app     latest/beta   295  10.152.183.211  no
training-operator                                   active      1  training-operator        latest/beta   483  10.152.183.215  no
  1. Using the LB tried logging into the dashboard:

image

  1. I was able to log in and navigate the dashboard (all components seem to be working)
image
  1. I tried creating a notebook, connect to it and use it - it works
  2. I tried creating a Pipelines experiment, create a run and a recurring run - it works
  3. Looked into volumes and using the pvc viewer, I was able to navigate directories

Preliminary tests indicate the 1.9/beta bundle works just fine.

DnPlas avatar Jul 09 '24 20:07 DnPlas

I have run the UATs on a Kubeflow deployment from latest/edge using the driver on a VM with the following versions:

  • Ubuntu 22.04
  • microk8s v1.29.5
  • Juju 3.4.4

The final result is 1 successful and 1 failed test, here are the complete logs from the test run.

It seems that is an incompatibility during the installation of the packages specified in requirements.txt. This is an excerpt of the logs:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
kfp 2.8.0 requires kubernetes<27,>=8.0.0, but you have kubernetes 30.1.0 which is incompatible.
kfp 2.8.0 requires protobuf<5,>=4.21.1, but you have protobuf 3.20.3 which is incompatible.
kfp 2.8.0 requires urllib3<2.0.0, but you have urllib3 2.2.2 which is incompatible.
kubeflow-katib 0.17.0 requires protobuf<5,>=4.21.12, but you have protobuf 3.20.3 which is incompatible.
kfp-pipeline-spec 0.3.0 requires protobuf<5,>=4.21.1, but you have protobuf 3.20.3 which is incompatible.

After doing some research, I see that upstream kserve has pinned protobuf<4.0, as seen here. This creates an incompatibility with the versions kfp, kubeflow-katib, and kfp-pipeline-spec that are used in Kubeflow 1.9.

mvlassis avatar Jul 26 '24 15:07 mvlassis

After further examination, the package conflicts are not actually showstoppers: The jupyter-scipy:v1.9.0 image has specific versions of the packages kfp, kubeflow-katib, and kfp-pipeline-spec preinstalled (among others). When a .ipynb test installs a different version of the dependencies (like kubernetes), an error is displayed to the stderr. However, those packages are not used in that test, and the tests do finish successfully. When we do want to use kfp, kubeflow-katib, and kfp-pipeline-spec, we specify the correct version of the dependencies, so no conflicts are actually created.

This is the preinstalled packages and their version from a newly created jupyter-scipy:v1.9.0 image:

(base) jovyan@test-image:~$ pip list
Package                   Version
------------------------- --------------
altair                    5.3.0
anyio                     4.4.0
archspec                  0.2.3
argon2-cffi               23.1.0
argon2-cffi-bindings      21.2.0
arrow                     1.3.0
asttokens                 2.4.1
async-lru                 2.0.4
attrs                     23.2.0
Babel                     2.14.0
beautifulsoup4            4.12.3
bleach                    6.1.0
bokeh                     3.3.4
boltons                   24.0.0
Bottleneck                1.4.0
Brotli                    1.1.0
cached-property           1.5.2
cachetools                5.3.3
certifi                   2024.6.2
cffi                      1.16.0
charset-normalizer        3.3.2
click                     8.1.7
cloudpickle               3.0.0
colorama                  0.4.6
comm                      0.2.2
conda                     24.5.0
conda-libmamba-solver     24.1.0
conda-package-handling    2.3.0
conda_package_streaming   0.10.0
contourpy                 1.2.1
cycler                    0.12.1
cytoolz                   0.12.3
dask                      2024.5.1
dask-expr                 1.1.1
debugpy                   1.8.2
decorator                 5.1.1
defusedxml                0.7.1
dill                      0.3.8
distributed               2024.5.1
distro                    1.9.0
docstring_parser          0.16
entrypoints               0.4
et-xmlfile                1.1.0
exceptiongroup            1.2.0
executing                 2.0.1
fastjsonschema            2.20.0
fonttools                 4.53.0
fqdn                      1.5.1
frozendict                2.4.4
fsspec                    2024.6.1
gitdb                     4.0.11
GitPython                 3.1.43
gmpy2                     2.1.5
google-api-core           2.19.1
google-auth               2.31.0
google-cloud-core         2.4.1
google-cloud-storage      2.17.0
google-crc32c             1.5.0
google-resumable-media    2.7.1
googleapis-common-protos  1.63.2
greenlet                  3.0.3
h11                       0.14.0
h2                        4.1.0
h5py                      3.11.0
hpack                     4.0.0
httpcore                  1.0.5
httpx                     0.27.0
hyperframe                6.0.1
idna                      3.7
imagecodecs               2024.6.1
imageio                   2.34.2
importlib_metadata        8.0.0
importlib_resources       6.4.0
ipykernel                 6.29.5
ipympl                    0.9.4
ipython                   8.26.0
ipython_genutils          0.2.0
ipywidgets                8.1.3
isoduration               20.11.0
jedi                      0.19.1
Jinja2                    3.1.4
joblib                    1.4.2
json5                     0.9.25
jsonpatch                 1.33
jsonpointer               3.0.0
jsonschema                4.22.0
jsonschema-specifications 2023.12.1
jupyter_client            8.6.2
jupyter_core              5.7.2
jupyter-events            0.10.0
jupyter-lsp               2.2.5
jupyter_server            2.14.1
jupyter-server-mathjax    0.2.6
jupyter_server_terminals  0.5.3
jupyterlab                4.2.1
jupyterlab_git            0.50.1
jupyterlab_pygments       0.3.0
jupyterlab_server         2.27.2
jupyterlab_widgets        3.0.11
kfp                       2.7.0
kfp-pipeline-spec         0.3.0
kfp-server-api            2.0.5
kiwisolver                1.4.5
kubernetes                26.1.0
lazy_loader               0.4
libmambapy                1.5.8
llvmlite                  0.43.0
locket                    1.0.0
lz4                       4.3.3
mamba                     1.5.8
MarkupSafe                2.1.5
matplotlib                3.8.4
matplotlib-inline         0.1.7
menuinst                  2.1.1
mistune                   3.0.2
mpmath                    1.3.0
msgpack                   1.0.8
munkres                   1.1.4
nbclient                  0.10.0
nbconvert                 7.16.4
nbdime                    4.0.1
nbformat                  5.10.4
nest_asyncio              1.6.0
networkx                  3.3
notebook                  7.2.0
notebook_shim             0.2.4
numba                     0.60.0
numexpr                   2.10.0
numpy                     1.26.4
oauthlib                  3.2.2
openpyxl                  3.1.4
overrides                 7.7.0
packaging                 24.1
pandas                    2.1.4
pandocfilters             1.5.0
parso                     0.8.4
partd                     1.4.2
patsy                     0.5.6
pexpect                   4.9.0
pickleshare               0.7.5
pillow                    10.4.0
pip                       24.0
pkgutil_resolve_name      1.3.10
platformdirs              4.2.2
pluggy                    1.5.0
ply                       3.11
prometheus_client         0.20.0
prompt_toolkit            3.0.47
proto-plus                1.24.0
protobuf                  4.25.3
psutil                    6.0.0
ptyprocess                0.7.0
pure-eval                 0.2.2
py-cpuinfo                9.0.0
pyarrow                   16.1.0
pyarrow-hotfix            0.6
pyasn1                    0.6.0
pyasn1_modules            0.4.0
pycosat                   0.6.6
pycparser                 2.22
Pygments                  2.18.0
pyparsing                 3.1.2
PyQt5                     5.15.9
PyQt5-sip                 12.12.2
PySocks                   1.7.1
python-dateutil           2.9.0
python-json-logger        2.0.7
pytz                      2024.1
PyWavelets                1.6.0
PyYAML                    6.0.1
pyzmq                     26.0.3
referencing               0.35.1
requests                  2.32.3
requests-oauthlib         2.0.0
requests-toolbelt         0.10.1
rfc3339-validator         0.1.4
rfc3986-validator         0.1.1
rpds-py                   0.18.1
rsa                       4.9
ruamel.yaml               0.18.6
ruamel.yaml.clib          0.2.8
scikit-image              0.22.0
scikit-learn              1.3.2
scipy                     1.11.3
seaborn                   0.13.2
Send2Trash                1.8.3
setuptools                70.1.1
sip                       6.7.12
six                       1.16.0
smmap                     5.0.1
sniffio                   1.3.1
sortedcontainers          2.4.0
soupsieve                 2.5
SQLAlchemy                2.0.30
stack-data                0.6.2
statsmodels               0.14.2
sympy                     1.12.1
tables                    3.9.2
tabulate                  0.9.0
tblib                     3.0.0
terminado                 0.18.1
threadpoolctl             3.5.0
tifffile                  2024.7.2
tinycss2                  1.3.0
toml                      0.10.2
tomli                     2.0.1
toolz                     0.12.1
tornado                   6.4.1
tqdm                      4.66.4
traitlets                 5.14.3
truststore                0.8.0
types-python-dateutil     2.9.0.20240316
typing_extensions         4.12.2
typing-utils              0.1.0
tzdata                    2024.1
uri-template              1.3.0
urllib3                   1.26.19
vincent                   0.4.4
wcwidth                   0.2.13
webcolors                 24.6.0
webencodings              0.5.1
websocket-client          1.8.0
wheel                     0.43.0
widgetsnbextension        4.0.11
xlrd                      2.0.1
xyzservices               2024.6.0
zict                      3.0.0
zipp                      3.19.2
zstandard                 0.22.0

After manually running the tests one by one on a JupyterLab notebook, I got these logs from the kserve-integration.ipynb:

kubectl describe pods -n admin sklearn-iris-predictor-00001-deployment-8d64bfddc-c2r7p
Name:             sklearn-iris-predictor-00001-deployment-8d64bfddc-c2r7p
Namespace:        admin
Priority:         0
Service Account:  default
Node:             <none>
Labels:           app=sklearn-iris-predictor-00001
                  component=predictor
                  pod-template-hash=8d64bfddc
                  service.istio.io/canonical-name=sklearn-iris-predictor
                  service.istio.io/canonical-revision=sklearn-iris-predictor-00001
                  serving.knative.dev/configuration=sklearn-iris-predictor
                  serving.knative.dev/configurationGeneration=1
                  serving.knative.dev/configurationUID=7b7e5f61-803e-4a18-b2e8-e94f1f580e6f
                  serving.knative.dev/revision=sklearn-iris-predictor-00001
                  serving.knative.dev/revisionUID=7c6a2d83-01b3-4b36-a1b6-7dee7bac9852
                  serving.knative.dev/service=sklearn-iris-predictor
                  serving.knative.dev/serviceUID=5dfb37d9-5f32-46a5-929e-a57b94fbddc3
                  serving.kserve.io/inferenceservice=sklearn-iris
Annotations:      autoscaling.knative.dev/class: kpa.autoscaling.knative.dev
                  autoscaling.knative.dev/min-scale: 1
                  internal.serving.kserve.io/storage-initializer-sourceuri: gs://kfserving-examples/models/sklearn/1.0/model
                  prometheus.kserve.io/path: /metrics
                  prometheus.kserve.io/port: 8080
                  serving.knative.dev/creator: system:serviceaccount:kubeflow:kserve-controller
                  serving.kserve.io/enable-metric-aggregation: false
                  serving.kserve.io/enable-prometheus-scraping: false
                  sidecar.istio.io/inject: false
Status:           Pending
IP:               
IPs:              <none>
Controlled By:    ReplicaSet/sklearn-iris-predictor-00001-deployment-8d64bfddc
Init Containers:
  storage-initializer:
    Image:      charmedkubeflow/storage-initializer:0.13.0-70e4564
    Port:       <none>
    Host Port:  <none>
    Args:
      gs://kfserving-examples/models/sklearn/1.0/model
      /mnt/models
    Limits:
      cpu:     1
      memory:  1Gi
    Requests:
      cpu:        100m
      memory:     100Mi
    Environment:  <none>
    Mounts:
      /mnt/models from kserve-provision-location (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-87rsq (ro)
Containers:
  kserve-container:
    Image:      index.docker.io/charmedkubeflow/sklearnserver@sha256:851d519f718692eff76f815e3bcda062a2ec219d57e59903bc0d0ee3264e27a4
    Port:       8080/TCP
    Host Port:  0/TCP
    Args:
      --model_name=sklearn-iris
      --model_dir=/mnt/models
      --http_port=8080
    Limits:
      cpu:     1
      memory:  2Gi
    Requests:
      cpu:     1
      memory:  2Gi
    Environment:
      PORT:             8080
      K_REVISION:       sklearn-iris-predictor-00001
      K_CONFIGURATION:  sklearn-iris-predictor
      K_SERVICE:        sklearn-iris-predictor
    Mounts:
      /mnt/models from kserve-provision-location (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-87rsq (ro)
  queue-proxy:
    Image:           gcr.io/knative-releases/knative.dev/serving/cmd/queue@sha256:89e6f90141f1b63405883fbb4de0d3b6d80f8b77e530904c4d29bdcd1dc5a167
    Ports:           8022/TCP, 9090/TCP, 9091/TCP, 8012/TCP, 8112/TCP
    Host Ports:      0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP
    SeccompProfile:  RuntimeDefault
    Requests:
      cpu:      25m
    Readiness:  http-get http://:8012/ delay=0s timeout=1s period=10s #success=1 #failure=3
    Environment:
      SERVING_NAMESPACE:                                 admin
      SERVING_SERVICE:                                   sklearn-iris-predictor
      SERVING_CONFIGURATION:                             sklearn-iris-predictor
      SERVING_REVISION:                                  sklearn-iris-predictor-00001
      QUEUE_SERVING_PORT:                                8012
      QUEUE_SERVING_TLS_PORT:                            8112
      CONTAINER_CONCURRENCY:                             0
      REVISION_TIMEOUT_SECONDS:                          300
      REVISION_RESPONSE_START_TIMEOUT_SECONDS:           0
      REVISION_IDLE_TIMEOUT_SECONDS:                     0
      SERVING_POD:                                       sklearn-iris-predictor-00001-deployment-8d64bfddc-c2r7p (v1:metadata.name)
      SERVING_POD_IP:                                     (v1:status.podIP)
      SERVING_LOGGING_CONFIG:                            
      SERVING_LOGGING_LEVEL:                             
      SERVING_REQUEST_LOG_TEMPLATE:                      {"httpRequest": {"requestMethod": "{{.Request.Method}}", "requestUrl": "{{js .Request.RequestURI}}", "requestSize": "{{.Request.ContentLength}}", "status": {{.Response.Code}}, "responseSize": "{{.Response.Size}}", "userAgent": "{{js .Request.UserAgent}}", "remoteIp": "{{js .Request.RemoteAddr}}", "serverIp": "{{.Revision.PodIP}}", "referer": "{{js .Request.Referer}}", "latency": "{{.Response.Latency}}s", "protocol": "{{.Request.Proto}}"}, "traceId": "{{index .Request.Header "X-B3-Traceid"}}"}
      SERVING_ENABLE_REQUEST_LOG:                        false
      SERVING_REQUEST_METRICS_BACKEND:                   prometheus
      SERVING_REQUEST_METRICS_REPORTING_PERIOD_SECONDS:  5
      TRACING_CONFIG_BACKEND:                            none
      TRACING_CONFIG_ZIPKIN_ENDPOINT:                    
      TRACING_CONFIG_DEBUG:                              false
      TRACING_CONFIG_SAMPLE_RATE:                        0.1
      USER_PORT:                                         8080
      SYSTEM_NAMESPACE:                                  knative-serving
      METRICS_DOMAIN:                                    knative.dev/internal/serving
      SERVING_READINESS_PROBE:                           {"tcpSocket":{"port":8080,"host":"127.0.0.1"},"successThreshold":1}
      ENABLE_PROFILING:                                  false
      SERVING_ENABLE_PROBE_REQUEST_LOG:                  false
      METRICS_COLLECTOR_ADDRESS:                         
      HOST_IP:                                            (v1:status.hostIP)
      ENABLE_HTTP2_AUTO_DETECTION:                       false
      ROOT_CA:                                           
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-87rsq (ro)
Conditions:
  Type           Status
  PodScheduled   False 
Volumes:
  kube-api-access-87rsq:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
  kserve-provision-location:
    Type:        EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:      
    SizeLimit:   <unset>
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  26s (x2 over 5m52s)  default-scheduler  0/1 nodes are available: 1 Insufficient memory. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod.

Insufficient memory (on a local VM with 16GiB of memory) seemed to be the the culprit. Testing the UATs on a t2.2xlarge instance on AWS was successful. Here are the logs:

kubeflow-local: find interpreter for spec PythonSpec(path=/home/ubuntu/py38/bin/python3.8)
kubeflow-local: proposed PythonInfo(spec=CPython3.8.19.final.0-64, system=/usr/bin/python3.8, exe=/home/ubuntu/py38/bin/python3.8, platform=linux, version='3.8.19 (default, Apr  6 2024, 17:58:10) \n[GCC 11.4.0]', encoding_fs_io=utf-8-utf-8)
kubeflow-local: commands[0]> pytest -vv --tb native /home/ubuntu/charmed-kubeflow-uats/driver/ -s --filter 'not mlflow' --model kubeflow
=========================================== test session starts ===========================================
platform linux -- Python 3.8.19, pytest-7.4.3, pluggy-1.3.0 -- /home/ubuntu/charmed-kubeflow-uats/.tox/kubeflow-local/bin/python
cachedir: .tox/kubeflow-local/.pytest_cache
rootdir: /home/ubuntu/charmed-kubeflow-uats
configfile: pyproject.toml
plugins: asyncio-0.21.1, operator-0.31.0, anyio-4.0.0
asyncio: mode=strict
collected 2 items                                                                                         

driver/test_kubeflow_workloads.py::test_create_profile 
--------------------------------------------- live log setup ----------------------------------------------
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/apiextensions.k8s.io/v1/customresourcedefinitions "HTTP/1.1 200 OK"
INFO     test_kubeflow_workloads:test_kubeflow_workloads.py:69 Creating Profile test-kubeflow...
INFO     httpx:_client.py:1013 HTTP Request: POST https://127.0.0.1:16443/apis/kubeflow.org/v1/profiles "HTTP/1.1 201 Created"
---------------------------------------------- live log call ----------------------------------------------
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/kubeflow.org/v1/profiles/test-kubeflow "HTTP/1.1 200 OK"
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/api/v1/namespaces/test-kubeflow "HTTP/1.1 404 Not Found"
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/api/v1/namespaces/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:32 Waiting for namespace test-kubeflow to become 'Active': phase == Active
PASSED
driver/test_kubeflow_workloads.py::test_kubeflow_workloads 
---------------------------------------------- live log call ----------------------------------------------
INFO     test_kubeflow_workloads:test_kubeflow_workloads.py:110 Starting Kubernetes Job test-kubeflow/test-kubeflow to run notebook tests...
INFO     httpx:_client.py:1013 HTTP Request: POST https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs "HTTP/1.1 201 Created"
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == not ready)
INFO     utils:utils.py:40 Retrying in 2 seconds (attempts: 1)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 4 seconds (attempts: 2)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 8 seconds (attempts: 3)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 16 seconds (attempts: 4)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 5)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 6)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 7)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 8)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 9)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 10)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 11)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 12)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 13)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 14)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 15)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 16)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 17)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 18)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 19)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 20)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 21)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 22)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 23)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 24)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 25)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 26)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 27)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 28)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 29)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 30)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 31)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 32)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 33)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 34)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 35)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 36)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 37)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 38)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 39)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 40)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 41)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 42)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 43)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 44)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 45)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 46)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 47)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 48)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 49)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 50)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 51)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 52)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 53)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 54)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 55)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 56)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 57)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 58)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 59)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 60)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 61)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 62)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:76 Waiting for Job test-kubeflow/test-kubeflow to complete (status == active)
INFO     utils:utils.py:40 Retrying in 32 seconds (attempts: 63)
INFO     httpx:_client.py:1013 HTTP Request: GET https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"
INFO     utils:utils.py:69 Job test-kubeflow/test-kubeflow completed successfully!
INFO     test_kubeflow_workloads:test_kubeflow_workloads.py:135 Fetching Job logs...
##### test-kubeflow container logs #####
============================= test session starts ==============================
platform linux -- Python 3.11.9, pytest-8.3.2, pluggy-1.5.0 -- /opt/conda/bin/python3.11
cachedir: .pytest_cache
rootdir: /tests
configfile: pytest.ini
plugins: anyio-4.4.0
collecting ... collected 9 items / 4 deselected / 5 selected

test_notebooks.py::test_notebook[katib-integration] 
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running katib-integration.ipynb...
PASSED                                                                   [ 20%]
test_notebooks.py::test_notebook[kfp-v1-integration] 
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running kfp-v1-integration.ipynb...
PASSED                                                                   [ 40%]
test_notebooks.py::test_notebook[kfp-v2-integration] 
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running kfp-v2-integration.ipynb...
PASSED                                                                   [ 60%]
test_notebooks.py::test_notebook[kserve-integration] 
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running kserve-integration.ipynb...
PASSED                                                                   [ 80%]
test_notebooks.py::test_notebook[training-integration] 
-------------------------------- live log call ---------------------------------
INFO     test_notebooks:test_notebooks.py:44 Running training-integration.ipynb...
PASSED                                                                   [100%]

================= 5 passed, 4 deselected in 1903.56s (0:31:43) =================
PASSED
-------------------------------------------- live log teardown --------------------------------------------
INFO     test_kubeflow_workloads:test_kubeflow_workloads.py:82 Deleting Profile test-kubeflow...
INFO     httpx:_client.py:1013 HTTP Request: DELETE https://127.0.0.1:16443/apis/kubeflow.org/v1/profiles/test-kubeflow "HTTP/1.1 200 OK"
INFO     test_kubeflow_workloads:test_kubeflow_workloads.py:141 Deleting Job test-kubeflow/test-kubeflow...
INFO     httpx:_client.py:1013 HTTP Request: DELETE https://127.0.0.1:16443/apis/batch/v1/namespaces/test-kubeflow/jobs/test-kubeflow "HTTP/1.1 200 OK"


===================================== 2 passed in 1923.72s (0:32:03) ======================================
kubeflow-local: exit 0 (1924.75 seconds) /home/ubuntu/charmed-kubeflow-uats> pytest -vv --tb native /home/ubuntu/charmed-kubeflow-uats/driver/ -s --filter 'not mlflow' --model kubeflow pid=577857
  kubeflow-local: OK (1924.80=setup[0.05]+cmd[1924.75] seconds)
  congratulations :) (1924.89 seconds)

mvlassis avatar Jul 31 '24 11:07 mvlassis