Skip to content

Commit 37f462e

Browse files
authored
Merge pull request #365 from opendatahub-io/master
2 parents 1ca445a + 54cf387 commit 37f462e

492 files changed

Lines changed: 23955 additions & 24620 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/deploy/action.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ runs:
145145
shell: bash
146146
if: ${{ inputs.skip_load_docker_images != 'true' }}
147147
run: |
148-
APPS=("apiserver" "driver" "launcher" "scheduledworkflow" "persistenceagent" "frontend" "metadata-writer" "viewer-crd-controller" "visualization-server" "cache-deployer" "cache-server" "metadata-envoy" )
148+
APPS=("apiserver" "scheduledworkflow" "persistenceagent" "frontend" "metadata-writer" "viewer-crd-controller" "visualization-server" "cache-deployer" "cache-server" "metadata-envoy")
149149
for app in "${APPS[@]}"; do
150150
docker image load -i ${{ inputs.image_path }}/$app/$app.tar
151151
docker tag ${{ inputs.image_registry }}/$app:${{ inputs.image_tag }} localhost:5000/$app:${{ inputs.image_tag }}
@@ -154,6 +154,18 @@ runs:
154154
docker image rm ${{ inputs.image_registry }}/$app:${{ inputs.image_tag }}
155155
docker image rm localhost:5000/$app:${{ inputs.image_tag }}
156156
done
157+
RUNTIME_APPS=("driver" "launcher")
158+
for app in "${RUNTIME_APPS[@]}"; do
159+
docker image load -i ${{ inputs.image_path }}/$app/$app.tar
160+
docker tag ${{ inputs.image_registry }}/$app:${{ inputs.image_tag }} localhost:5000/$app:${{ inputs.image_tag }}
161+
docker tag ${{ inputs.image_registry }}/$app:${{ inputs.image_tag }} localhost:5000/$app:ci
162+
docker push localhost:5000/$app:${{ inputs.image_tag }}
163+
docker push localhost:5000/$app:ci
164+
rm ${{ inputs.image_path }}/$app/$app.tar
165+
docker image rm ${{ inputs.image_registry }}/$app:${{ inputs.image_tag }}
166+
docker image rm localhost:5000/$app:${{ inputs.image_tag }}
167+
docker image rm localhost:5000/$app:ci
168+
done
157169
docker pull python:3.11
158170
docker pull registry.access.redhat.com/ubi9/python-311:latest
159171
kind load docker-image python:3.11 --name ${{ inputs.cluster_name }}

.github/actions/deploy/operator_deployer.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,10 @@ def deploy_operator(self):
149149
elif self.target_branch == 'stable':
150150
dspo_tag = 'odh-stable'
151151
elif self.target_branch == 'master':
152-
dspo_tag = 'main'
152+
dspo_tag = 'odh-main' if self.repo_owner == 'opendatahub-io' else 'main'
153153
else:
154154
dspo_tag = self.target_branch
155-
repo = 'opendatahub' if self.repo_owner == 'opendatahub-io' else 'rhoai'
156-
operator_image = f'quay.io/{repo}/data-science-pipelines-operator:{dspo_tag}'
155+
operator_image = f'quay.io/opendatahub/data-science-pipelines-operator:{dspo_tag}'
157156

158157
print(f'🏷️ Using operator image: {operator_image}')
159158

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
"""Tests for OperatorDeployer operator-image tag and registry resolution."""
2+
3+
import unittest
4+
from unittest.mock import MagicMock, patch
5+
6+
from operator_deployer import OperatorDeployer
7+
8+
9+
def _make_deployer(repo_owner='opendatahub-io',
10+
target_branch='master',
11+
operator_image_tag=''):
12+
"""Create an OperatorDeployer with stubbed dependencies."""
13+
args = MagicMock()
14+
args.operator_image_tag = operator_image_tag
15+
args.deploy_external_argo = False
16+
deployment_manager = MagicMock()
17+
deployment_manager.wait_for_resource.return_value = True
18+
deployer = OperatorDeployer(
19+
args=args,
20+
deployment_manager=deployment_manager,
21+
repo_owner=repo_owner,
22+
target_branch=target_branch,
23+
temp_dir='/tmp/test',
24+
operator_namespace='opendatahub',
25+
)
26+
deployer.operator_repo_path = '/tmp/test/data-science-pipelines-operator'
27+
return deployer
28+
29+
30+
def _resolve_operator_image(deployer):
31+
"""Call deploy_operator and return the IMG value passed to make."""
32+
with patch.object(deployer, '_patch_params_for_kind'):
33+
deployer.deploy_operator()
34+
for call in deployer.deployment_manager.run_command.call_args_list:
35+
args = call[0][0]
36+
for arg in args:
37+
if isinstance(arg, str) and arg.startswith('IMG='):
38+
return arg.split('=', 1)[1]
39+
raise AssertionError('No IMG= argument found in run_command calls')
40+
41+
42+
class TestOperatorImageResolution(unittest.TestCase):
43+
44+
def test_odh_master_uses_odh_main_tag(self):
45+
deployer = _make_deployer(
46+
repo_owner='opendatahub-io', target_branch='master')
47+
image = _resolve_operator_image(deployer)
48+
self.assertEqual(
49+
image,
50+
'quay.io/opendatahub/data-science-pipelines-operator:odh-main')
51+
52+
def test_odh_stable_uses_odh_stable_tag(self):
53+
deployer = _make_deployer(
54+
repo_owner='opendatahub-io', target_branch='stable')
55+
image = _resolve_operator_image(deployer)
56+
self.assertEqual(
57+
image,
58+
'quay.io/opendatahub/data-science-pipelines-operator:odh-stable')
59+
60+
def test_rhds_master_uses_main_tag(self):
61+
deployer = _make_deployer(
62+
repo_owner='red-hat-data-services', target_branch='master')
63+
image = _resolve_operator_image(deployer)
64+
self.assertEqual(
65+
image,
66+
'quay.io/opendatahub/data-science-pipelines-operator:main')
67+
68+
def test_rhds_rhoai_branch_uses_branch_name_as_tag(self):
69+
deployer = _make_deployer(
70+
repo_owner='red-hat-data-services', target_branch='rhoai-2.16')
71+
image = _resolve_operator_image(deployer)
72+
self.assertEqual(
73+
image,
74+
'quay.io/opendatahub/data-science-pipelines-operator:rhoai-2.16')
75+
76+
def test_explicit_tag_overrides_branch_logic(self):
77+
deployer = _make_deployer(
78+
repo_owner='opendatahub-io',
79+
target_branch='master',
80+
operator_image_tag='custom-tag')
81+
image = _resolve_operator_image(deployer)
82+
self.assertEqual(
83+
image,
84+
'quay.io/opendatahub/data-science-pipelines-operator:custom-tag')
85+
86+
def test_odh_unknown_branch_uses_branch_name_as_tag(self):
87+
deployer = _make_deployer(
88+
repo_owner='opendatahub-io', target_branch='feature-x')
89+
image = _resolve_operator_image(deployer)
90+
self.assertEqual(
91+
image,
92+
'quay.io/opendatahub/data-science-pipelines-operator:feature-x')
93+
94+
def test_rhds_stable_uses_odh_stable_tag(self):
95+
deployer = _make_deployer(
96+
repo_owner='red-hat-data-services', target_branch='stable')
97+
image = _resolve_operator_image(deployer)
98+
self.assertEqual(
99+
image,
100+
'quay.io/opendatahub/data-science-pipelines-operator:odh-stable')
101+
102+
103+
if __name__ == '__main__':
104+
unittest.main()
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: "Set up Go"
2+
description: "Sets up Go"
3+
runs:
4+
using: composite
5+
steps:
6+
- name: Set up Go
7+
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c
8+
with:
9+
go-version-file: go.mod

.github/resources/manifests/base/apiserver-env.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ spec:
2222
- name: ml-pipeline-api-server
2323
env:
2424
- name: V2_DRIVER_IMAGE
25-
value: kind-registry:5000/driver
25+
value: kind-registry:5000/driver:ci
2626
- name: V2_LAUNCHER_IMAGE
27-
value: kind-registry:5000/launcher
27+
value: kind-registry:5000/launcher:ci
2828
- name: LOG_LEVEL
2929
value: "debug"
3030
- name: DBCONFIG_HOST_NAME
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: cache-deployer-deployment
5+
spec:
6+
template:
7+
spec:
8+
containers:
9+
- name: main
10+
imagePullPolicy: IfNotPresent
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: cache-server
5+
spec:
6+
template:
7+
spec:
8+
containers:
9+
- name: server
10+
imagePullPolicy: IfNotPresent
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: metadata-envoy-deployment
5+
spec:
6+
template:
7+
spec:
8+
containers:
9+
- name: container
10+
imagePullPolicy: IfNotPresent
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: metadata-writer
5+
spec:
6+
template:
7+
spec:
8+
containers:
9+
- name: main
10+
imagePullPolicy: IfNotPresent
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: ml-pipeline-viewer-crd
5+
spec:
6+
template:
7+
spec:
8+
containers:
9+
- name: ml-pipeline-viewer-crd
10+
imagePullPolicy: IfNotPresent

0 commit comments

Comments
 (0)