Skip to content

Validate whether TrustyAI operator, service and oauth-proxy images match the ones in the configmap#313

Closed
sheltoncyril wants to merge 13 commits intoopendatahub-io:mainfrom
sheltoncyril:test-me-configmaps
Closed

Validate whether TrustyAI operator, service and oauth-proxy images match the ones in the configmap#313
sheltoncyril wants to merge 13 commits intoopendatahub-io:mainfrom
sheltoncyril:test-me-configmaps

Conversation

@sheltoncyril
Copy link
Copy Markdown
Contributor

@sheltoncyril sheltoncyril commented May 22, 2025

Check if TrustyAI operator deployment oauth-proxy
and trustyai-service pods are using the right images from the configmap in redhat-ods-applications namespace.

Makes sure the TrustyAI deployment and service pods are created with the right images using the configmap as the source of truth.
Adresses RHOAIENG-22502 and RHOAIENG-23499

Description

Added a new test which validates whether the deployment/service pods have the same data in the image fields as the configmap.

How Has This Been Tested?

Test run successfully on a PSI cluster.

Merge criteria:

  • The commits are squashed in a cohesive manner and have meaningful messages.
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work

Summary by CodeRabbit

  • Tests
    • Added a new test to verify that TrustyAI Operator and Service pods use the correct container images as specified in the configuration.
    • Introduced a fixture for accessing the TrustyAI Operator configuration.
    • Implemented utility logic to validate container images against expected values from the configuration.

Check if TrustyAI operator deployment oauth-proxy
and trustyai-service pods are using the right images from
the configmap in redhat-ods-applications namespace.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented May 22, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

A new pytest fixture for accessing the TrustyAI operator's ConfigMap was introduced. A test was added to verify that both the TrustyAI Operator and Service pods use the correct container images, as specified in the ConfigMap. Supporting utility functions and constants for image validation were also implemented.

Changes

File(s) Change Summary
tests/conftest.py Added a pytest fixture trustyai_operator_configmap for providing the TrustyAI operator ConfigMap to tests.
tests/model_explainability/trustyai_service/test_trustyai_service.py Added a test test_trustyai_operator_and_service_images to validate container images; updated imports for new utilities and types.
tests/model_explainability/trustyai_service/utils.py Introduced constants for operator namespace/deployment and a function validate_trustyai_operator_and_service_images for image checks.

Sequence Diagram(s)

sequenceDiagram
    participant Test as test_trustyai_operator_and_service_images
    participant ConfigMap as trustyai_operator_configmap
    participant Utils as validate_trustyai_operator_and_service_images
    participant Admin as admin_client
    participant K8s as Kubernetes API

    Test->>ConfigMap: Access ConfigMap data
    Test->>Utils: Call validate_trustyai_operator_and_service_images(admin_client, namespace, configmap_data)
    Utils->>K8s: Fetch TrustyAI Operator deployment
    Utils->>K8s: Fetch TrustyAI Service pods in namespace
    Utils->>Utils: Validate container images
Loading

Suggested labels

size/l, lgtm-by-rnetser, Utilities

Poem

🐇
In the warren of tests, a fixture appears,
To check that our images are what they declare.
With ConfigMaps in paw and assertions in sight,
TrustyAI pods are inspected each night.
The rabbits all cheer, for the checks are robust—
Our containers are trusted, in code we trust!


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions
Copy link
Copy Markdown

The following are automatically added/executed:

  • PR size label.
  • Run pre-commit
  • Run tox
  • Add PR author as the PR assignee

Available user actions:

  • To mark a PR as WIP, add /wip in a comment. To remove it from the PR comment /wip cancel to the PR.
  • To block merging of a PR, add /hold in a comment. To un-block merging of PR comment /hold cancel.
  • To mark a PR as approved, add /lgtm in a comment. To remove, add /lgtm cancel.
    lgtm label removed on each new commit push.
  • To mark PR as verified comment /verified to the PR, to un-verify comment /verified cancel to the PR.
    verified label removed on each new commit push.
  • To Cherry-pick a merged PR /cherry-pick <target_branch_name> to the PR. If <target_branch_name> is valid,
    and the current PR is merged, a cherry-picked PR would be created and linked to the current PR.
Supported labels

{'/verified', '/wip', '/lgtm', '/hold'}

@sheltoncyril sheltoncyril changed the title feat: add validation to check if TrustyAI images Validate whether TrustyAI operator, service and oauth-proxy images match the ones in the configmap May 22, 2025
@sheltoncyril
Copy link
Copy Markdown
Contributor Author

/wip

@sheltoncyril
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented May 22, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
tests/model_explainability/trustyai_service/utils.py (1)

175-200: Consider adding error handling for missing ConfigMap keys.

The validation function works well but assumes that specific keys exist in the ConfigMap. Consider adding validation to check if the required keys exist before accessing them to avoid potential KeyError exceptions.

Additionally, you might want to verify that both "oauth-proxy" and TrustyAI service containers were found in the pod, as the current implementation will silently skip validation if a container is not present.

Here's a suggested improvement:

def validate_trustyai_operator_and_service_images(
    client: DynamicClient, model_namespace: str, configmap_data_dict: dict[str, str]
) -> None:
    """Validate if the TrustyAI operator deployment and service pods use the correct images from the configmap."""
+   # Verify required keys exist in configmap
+   required_keys = ["trustyaiOperatorImage", "oauthProxyImage", "trustyaiServiceImage"]
+   for key in required_keys:
+       if key not in configmap_data_dict:
+           raise KeyError(f"Required key '{key}' not found in ConfigMap data")
+
    trustyai_deployment = Deployment(
        name=TRUSTYAI_OPERATOR_DEPLOYMENT_NAME, namespace=TRUSTYAI_OPERATOR_NAMESPACE, wait_for_resource=True
    )
    assert (
        trustyai_deployment.instance.spec.template.spec.containers[0].image
        == configmap_data_dict["trustyaiOperatorImage"]
    )
    service_pods = list(
        Pod.get(
            dyn_client=client,
            namespace=model_namespace,
            label_selector=f"app.kubernetes.io/instance={TRUSTYAI_SERVICE_NAME}",
        )
    )
    if service_pods:
        if len(service_pods) > 1:
            raise TooManyPodsError("More than one pod found in TrustyAIService.")
+       
+       oauth_proxy_found = False
+       trustyai_service_found = False
+       
        for container_status in service_pods[0].instance.status.containerStatuses:
            if container_status.name == "oauth-proxy":
+               oauth_proxy_found = True
                assert configmap_data_dict["oauthProxyImage"] == container_status.image
            if container_status.name == TRUSTYAI_SERVICE_NAME:
+               trustyai_service_found = True
                assert configmap_data_dict["trustyaiServiceImage"] == container_status.image
+       
+       if not oauth_proxy_found:
+           raise AssertionError(f"Container 'oauth-proxy' not found in TrustyAI service pod")
+       if not trustyai_service_found:
+           raise AssertionError(f"Container '{TRUSTYAI_SERVICE_NAME}' not found in TrustyAI service pod")
+   else:
+       raise AssertionError(f"No TrustyAI service pods found in namespace '{model_namespace}'")
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fc0db40 and 05c2c56.

📒 Files selected for processing (3)
  • tests/conftest.py (1 hunks)
  • tests/model_explainability/trustyai_service/test_trustyai_service.py (2 hunks)
  • tests/model_explainability/trustyai_service/utils.py (2 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
tests/model_explainability/trustyai_service/test_trustyai_service.py (3)
tests/model_explainability/trustyai_service/utils.py (1)
  • validate_trustyai_operator_and_service_images (175-200)
tests/conftest.py (4)
  • admin_client (52-53)
  • current_client_token (83-84)
  • model_namespace (99-119)
  • trustyai_operator_configmap (123-129)
tests/model_explainability/trustyai_service/conftest.py (1)
  • trustyai_service_with_db_storage (93-107)
tests/model_explainability/trustyai_service/utils.py (2)
tests/conftest.py (1)
  • model_namespace (99-119)
utilities/exceptions.py (1)
  • TooManyPodsError (107-108)
🔇 Additional comments (5)
tests/conftest.py (1)

122-129: Good fixture implementation.

The fixture is well-structured and follows the established pattern in the file. It correctly returns a ConfigMap object for the TrustyAI service operator config in the appropriate namespace.

tests/model_explainability/trustyai_service/test_trustyai_service.py (3)

2-2: Appropriate import addition.

The ConfigMap import is correctly added to support the new test functionality.


5-8: Good import organization.

The import statement is properly updated to include the new validation function while maintaining the existing imports.


34-56: Well-structured test implementation.

The test is properly parameterized and uses the appropriate fixtures. The test clearly defines its purpose in the docstring and follows the established testing pattern in the file.

tests/model_explainability/trustyai_service/utils.py (1)

23-24: Good constant declarations.

The constants for the TrustyAI operator namespace and deployment name are properly defined with clear names and values.

admin_client: DynamicClient,
teardown_resources: bool,
) -> ConfigMap:
return ConfigMap(client=admin_client, namespace="redhat-ods-applications", name="trustyai-service-operator-config")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few things here:

  1. yield instead of return
  2. use ensure_exists to raise if the CM doesn't exist
  3. use applications_namespace from pyconfig instead of redhat-ods-applications
  4. use TRUSTYAI_SERVICE_NAME constant in the name
  5. I think you don't need teardown_resources here

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've made the changes but if you don't mind me asking, why yield if we are only fetching information and do not aim to modify it? I understand if there is some transactional way of doing things and we need to commit at the end but in this case a return would be more apt, right?

yield trustyai_service


def validate_trustyai_operator_and_service_images(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same, we need to split this into 2 functions, one for the service and one for the operator

dbasunag and others added 9 commits June 3, 2025 23:55
* updates to test_registering_model() based on previous review comments

* [do-not-review]must-gather collection at failure point

updates! 1176505

updates! 12d9c08

updates! 12d9c08

updates! 65e0213

* [ModelRegistry] ensure RunAsUser and RunAsGroup are not set explicitly (#226)

updates! 4813f2b

updates! 20cd457

updates! b126825

updates! 809cca7

* Lock file maintenance (#241)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* RHOAIENG-22058: chore(workbenches): add test_create_simple_notebook to smoke (#238)

* Remove uv cache from dockerfile to support running in envs like openshift-ci (#239)

* Create size-labeler.yml

* Delete .github/workflows/size-labeler.yml

* model mesh - add auth tests

* xx

* fix: remove uv cache from dockerfile

* `is_managed_cluster` fix condition (#243)

* Create size-labeler.yml

* Delete .github/workflows/size-labeler.yml

* model mesh - add auth tests

* xx

* fix: replace iter with list

* fix: add logger info

* RHOAIENG-22057: fix(workbenches): correct the check for spawned workbench (#242)

There can only ever be a single workbench pod started.

Co-authored-by: Luca Giorgi <lgiorgi@redhat.com>

* RHOAIENG-22057: fix(workbenches): check for internal image registry and adjust the image path accordingly (#244)

* now yielding TimeoutSampler get_pods_by_isvc_label func output and handling raised ResourceNotFoundError (#237)

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

* [model server] add auth test to upgrade (#245)

* Create size-labeler.yml

* Delete .github/workflows/size-labeler.yml

* model mesh - add auth tests

* xx

* feat: add auth test to upgrade

* feat: add auth test to upgrade

feat: add auth test to upgrade

* fix: dsci name in func

* [pre-commit.ci] pre-commit autoupdate (#246)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.11.4 → v0.11.5](astral-sh/ruff-pre-commit@v0.11.4...v0.11.5)
- [github.com/gitleaks/gitleaks: v8.24.2 → v8.24.3](gitleaks/gitleaks@v8.24.2...v8.24.3)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ruth Netser <rnetser@redhat.com>

* Fix add-remove-labels workflow (#249)

* Add Cluster sanity checks before test execution (#235)

* Create size-labeler.yml

* Delete .github/workflows/size-labeler.yml

* model mesh - add auth tests

* xx

* feat: cluster sanity

* feat: cluster sanity

* feat: cluster sanity

* feat: cluster sanity add readme

* fix: tix str typo

* fix: address comments

* fix: address review comments

* fix: address comment

* fix: use dsci from global config

* fix: remove duplicate fixture

* add labeler to add labels to prs based on areas impacted (#248)

* on rebase clean commented-by- labels (#251)

* [model registry] update namespace code and rearrange tests (#247)

* updates to test_registering_model() based on previous review comments

* update namespace code and rearrange tests

* remove unnecessary argument from function call (#255)

* on rebase clean commented-by- labels

* remove unnecessary argument from function call

* feat: add ocp_interop marker (#260)

* Lock file maintenance (#259)

* Lock file maintenance

* fix: add marshmallow version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: rnetser <rnetser@redhat.com>

* [pre-commit.ci] pre-commit autoupdate (#263)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.11.5 → v0.11.6](astral-sh/ruff-pre-commit@v0.11.5...v0.11.6)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ruth Netser <rnetser@redhat.com>

* feat: add upgrade tests (#258)

* Remove flake8 ignore list (#265)

* fix: remove flake8 ignore

* fix: remove flake8 ignore

* [model server] Remove pod pre-checks for image pull and fix `TestServerlessScaleToZero` (#256)

* fix: update tests

* fix: update tests

* fix: update tests

* fix: save test dep name

* fix: minio mm external route

* fix: address comemnt

* fix: address comemnt

* fix: address comemnt

* Update python-dependencies (major) (#267)

* Update python-dependencies

* fix: marshmellow version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: rnetser <rnetser@redhat.com>

* Adding Test For InferenceService Zero Initial Scale (#262)

* adding test for zero initial scale

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fixing precommit error

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

* using label_selectors when getting deployment

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* adding argument names to func call and running pre-commit on all files

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

* fixing bug in ovms_kserve_inference_service function that was preventing isvcs from being created with 0 min-replicas

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

---------

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: move interop marker (#268)

* feat: Add upgrade tests for TrustyAIService (#250)

* feat: Add upgrade tests for TrustyAIService

* Move upgrade README.md to docs/UPGRADE.md

* fix: reuse kwargs in TrustyAIService fixture

* fix: address comments, reuse kwargs, add docstrings

---------

Co-authored-by: Ruth Netser <rnetser@redhat.com>

* Fix ns deletion logic  (#272)

* fix: fix resource deletion fixture logic

* fix: fix resource deletion fixture logic

* feat: fail on missing operators (#257)

* fix: update tests

* fix: update tests

* feat: fail on missing operators

* fix: rename to dependent

* fix: address comment

* fix: add log on failure

* fix: type in raise

* fix: remove MR check

* fix: remove MR check

* fix: use package scope

* Add basic InferenceGraph deployment check (#233)

* Add basic InferenceGraph deployment check

This adds a test that deploys an InferenceGraph (IG), sends an inference request to the IG and verifies that the request succeeds.

The deployed InferenceGraph is based on the example on the KServe documentation available in the following URL: https://kserve.github.io/website/0.15/modelserving/inference_graph/image_pipeline/. The example was adapted to run in openvino (which is a supported server in ODH), rather than TorchServe.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Use cloud storage in InferenceGraph test

Use cloud storage for the models, instead of OCI

* Feedback: Ruth

* Feedback: Ruth

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Apply Ruth suggestions

Acknowledgement to @rnester for these changes.

* More feedback: Ruth

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ruth Netser <rnetser@redhat.com>

* fix: address 503 (#274)

* [model server] Move to using unprivileged_client in tests (#273)

* feat: use unprivileged_client

* feat: use unprivileged_client

* feat: use unprivileged_client

* feat: use unprivileged_client

* feat: use unprivileged_client

* feat: use unprivileged_client

* fix: unpri selection

* Update MinIo pod privileges to run on ocp 4.19 (#277)

* fix: add securityContext for minio pod

* fix: minio on 4.19

* [model server]  add multi node args check (#276)

* feat: add multi node args

* feat: add multi node args

* fix: add wait on delete

* fix: update new test

* [pre-commit.ci] pre-commit autoupdate (#279)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.11.6 → v0.11.7](astral-sh/ruff-pre-commit@v0.11.6...v0.11.7)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Ruth Netser <rnetser@redhat.com>

* `verify_no_failed_pods` - exclude container failures when model mesh deployment (#278)

* fix: mm container

* fix: update condition

* feat: add test for incorrect DB TLS config in Trusty AI (#221)

* feat: add test for incorrect DB TLS config in Trusty AI

* refactor: remove unused method from utils

* feat: move TrustyAI test to own file

* refactor: change name of db fixtures and deduplicate code

* TrustyAI Service creation code refactor into own method
* Move db secret setter to utils
* Remove test from test_fairness as test moved to own file

* docs: add description to TrustyAI invalid DB TLS config test

* fix: check TrustyAIService container for Terminated status in lastStatus

* fix: change name of terminal_state getter function

* fix: change to a valid certificate and check for service failure

* fix: address PR 221 reviewer feedback

* revert wait_for_pods to wait_for_mariadb_pods
* improve error checking logic
* remove un-necessary wrapper function

* docs: add docstring to create_trustyai_service method

* docs: add docstring to trustyai_service_with_invalid_db_cert

* fix: fix invalid return type for trustyai_db_ca_secret

* feat: use retry decorator in validate trustyai_service_db_conn_failure method

* fix: remove unnecessary return from validate db_conn_failure method

* docs: add spacing between lines of docstring

* refactor: create constants trustyai metrics and db storage config

* refactor: address reviewer feedback

- change docstring to correct formatting
- remove len(0) check
- no templating for error text

* fix: use regex instead of in operator to check for error condition

* docs: add correct formatting to docstrings

* fix: use namespace.name instead of namespace in Pod.get

* fix: remove \s from regex to check for spaces

* refactor: add Raises section in docstring and use single string for pytest.fail

* feat: use raise instead of pytest.fail

- create new exception TooManyPodsError
- create new exception UnexpectedFailureError
- replace pytest.fail with raise and handle exceptions in retry
-

* fix: change default of teardown to True in TrustyAIService

* docs: correct typo in trustyai docstring

* docs: fix raises in docs and fix formatting

* fix: fix create_trustyai_service namespace args issue

* docs: add default for name arg in create tai svc func

* [model server] Fix runtime request.param name to use external route (#280)

* fix: fix param name

* fix: fix param name

* feat: add certs when sending requests to TrustyAIService (#266)

* Wait for pods to be in running state before attempting to create ModelRegistry (#270)

* on rebase clean commented-by- labels

* Wait for pods to be in running state before attempting to create ModelRegistry

* Address Exception in thread Thread-1 (_monitor) error (#286)

* chore(deps): lock file maintenance (#287)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (opendatahub-io#292)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.11.7 → v0.11.8](astral-sh/ruff-pre-commit@v0.11.7...v0.11.8)
- [github.com/gitleaks/gitleaks: v8.24.3 → v8.25.1](gitleaks/gitleaks@v8.24.3...v8.25.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Wait for dsc and dsci ready state in cluster_sanity check (opendatahub-io#293)

* fix(workbenches): implement get_username for OpenShift <=4.14 (#275)

Turns out SelfSubjectReview is only available starting OpenShift 4.15.

fixup incorporate User resource
* RedHatQE/openshift-python-wrapper#2387

fixup incorporate SelfSubjectReview resource
* RedHatQE/openshift-python-wrapper#2389

Co-authored-by: Debarati Basu-Nag <dbasunag@redhat.com>

* replace the bot account with one owned by testdevops (opendatahub-io#291)

* Fix for post upgarde operator check (opendatahub-io#297)

Signed-off-by: Milind Waykole <mwaykole@mwaykole-thinkpadp1gen4i.bengluru.csb>
Co-authored-by: Milind Waykole <mwaykole@mwaykole-thinkpadp1gen4i.bengluru.csb>

* Add test for Model Registry RBAC for SA token (opendatahub-io#296)

* feat: add RBAC test for SA token

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: address review comments

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: incorporate coderabbit suggestions

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: remove unneeded variable

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: remove excessive logs

Signed-off-by: lugi0 <lgiorgi@redhat.com>

---------

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* Support /build-push-pr-image comment to push image to quay for testing via jenkins (opendatahub-io#290)

updates! 678b389

* Add tests for model_artifact update validations (#284)

* Add tests for model_artifact update validations

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* updates fixing pre-commit

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* update package

* minor updates

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* address review comments

updates! 50ec24b

updates! f3a6c3e

updates! 792156f

updates! 399aa10

updates! 5080e3b

updates! c34f4e7

updates! a1d7baa

---------

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>
Signed-off-by: Milind Waykole <mwaykole@mwaykole-thinkpadp1gen4i.bengluru.csb>
Signed-off-by: lugi0 <lgiorgi@redhat.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jiri Daněk <jdanek@redhat.com>
Co-authored-by: Ruth Netser <rnetser@redhat.com>
Co-authored-by: Luca Giorgi <lgiorgi@redhat.com>
Co-authored-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Adolfo Aguirrezabal <aaguirre@redhat.com>
Co-authored-by: Edgar Hernández <ehernand@redhat.com>
Co-authored-by: Shelton Cyril <sheltoncyril@gmail.com>
Co-authored-by: Milind Waykole <mwaykole@redhat.com>
Co-authored-by: Milind Waykole <mwaykole@mwaykole-thinkpadp1gen4i.bengluru.csb>
* fixing TestServerlessScaleToZero test and adding new wait_for_deployments utility method

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

* removing wait_for_deployments func and reworking wait_for_inference_deployment_replicas func to handle the same bug

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

* adding new UnexpectedResourceCountError and now using dyn_client input param for Deployment.Get() calls

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>

---------

Signed-off-by: Brett Thompson <196701379+brettmthompson@users.noreply.github.com>
…eated from the run (#283)

Test to verify RBAC bug
Create user for the test
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.11.10 → v0.11.11](astral-sh/ruff-pre-commit@v0.11.10...v0.11.11)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…o#314)

* fix: Use SA token for inference reqs in TrustyAI tests

* fix: isvc-getter typo
lugi0 and others added 2 commits June 3, 2025 23:55
* feat: add test to validate container images, improve ODH compatibility

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: Skip sidecar image check

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: fail if MR is Managed in RHOAI

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: Remove most ODH logic

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: ns reference in fixture

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: generalize pod getters and image verification

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: address review comments

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: add wait for single pod returned

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: mr_namespace constant removal

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: refactoring code

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: address comment and refactor

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* feat: parse related image refs in a fixture

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: typo in fixtue name

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: address review comments

Signed-off-by: lugi0 <lgiorgi@redhat.com>

* fix: address review comments

Signed-off-by: lugi0 <lgiorgi@redhat.com>

---------

Signed-off-by: lugi0 <lgiorgi@redhat.com>
Co-authored-by: Debarati Basu-Nag <dbasunag@redhat.com>
@sheltoncyril
Copy link
Copy Markdown
Contributor Author

sheltoncyril commented Jun 3, 2025

Closing due to merge issues, recreating another PR

@sheltoncyril sheltoncyril deleted the test-me-configmaps branch June 3, 2025 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants