Skip to content

Commit

Permalink
Allow variable push_secret to push into external Image registry
Browse files Browse the repository at this point in the history
Document push_secrets in values.schema.json

Fix testing suite so tests passed

Signed-off-by: Petr "Stone" Hracek <phracek@redhat.com>
  • Loading branch information
phracek committed Oct 24, 2024
1 parent 7eb70e9 commit 852e4c9
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 118 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ spec:
kind: DockerImage
name: "{{ .Values.registry.name }}/{{ .Values.registry.namespace }}/{{ .Values.name }}:latest"
pushSecret:
name: images-paas-push-config
name: {{ .Values.registry.push_secret }}
{{ else }}
output:
to:
Expand Down
4 changes: 4 additions & 0 deletions charts/redhat/httpd-template/src/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@
"namespace": {
"type": "string",
"description": "The namespace of registry that will be used for pushing built image."
},
"push_secret": {
"type": "string",
"description": "The push secret to push image to registry."
}
}
}
Expand Down
1 change: 1 addition & 0 deletions charts/redhat/httpd-template/src/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ registry:
enabled: false
name: "quay.io"
namespace: "something"
push_secret: ""
28 changes: 2 additions & 26 deletions tests/test_httpd_imagestreams.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ def setup_method(self):
package_name = "httpd-imagestreams"
path = test_dir / "../charts/redhat"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()

def teardown_method(self):
self.hc_api.delete_project()
Expand All @@ -28,30 +30,4 @@ def teardown_method(self):
],
)
def test_httpd_imagestream(self, version, registry, expected):
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
assert self.hc_api.check_imagestreams(version=version, registry=registry) == expected


class TestHelmCentOSHttpdImagestreams:
def setup_method(self):
package_name = "httpd-imagestreams"
path = test_dir / "../charts/centos"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)

def teardown_method(self):
self.hc_api.delete_project()

@pytest.mark.parametrize(
"version,registry,expected",
[
("2.4-ubi9", "registry.access.redhat.com/ubi9/httpd-24:latest", True),
("2.4-ubi8", "registry.access.redhat.com/ubi8/httpd-24:latest", True),
("2.4-el8", "quay.io/sclorg/httpd-24-c8s:latest", False),
("2.4-el9", "quay.io/sclorg/httpd-24-c9s:latest", True),
]
)
def test_httpd_imagestream(self, version, registry, expected):
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
assert self.hc_api.check_imagestreams(version=version, registry=registry) == expected
30 changes: 2 additions & 28 deletions tests/test_mariadb_imagestreams.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ def setup_method(self):
package_name = "mariadb-imagestreams"
path = test_dir / "../charts/redhat"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()

def teardown_method(self):
self.hc_api.delete_project()
Expand All @@ -29,32 +31,4 @@ def teardown_method(self):
],
)
def test_package_imagestream(self, version, registry, expected):
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
assert self.hc_api.check_imagestreams(version=version, registry=registry) == expected


class TestHelmCentOSMariadbImageStreams:

def setup_method(self):
package_name = "mariadb-imagestreams"
path = test_dir / "../charts/centos"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)

def teardown_method(self):
self.hc_api.delete_project()

@pytest.mark.parametrize(
"version,registry,expected",
[
("10.3-el8", "quay.io/sclorg/mariadb-103-c8s:latest", False),
("10.5-el8", "quay.io/sclorg/mariadb-105-c8s:latest", False),
("10.5-el9", "quay.io/sclorg/mariadb-105-c9s:latest", True),
("10.11-el8", "quay.io/sclorg/mariadb-1011-c8s:latest", False),
("10.11-el9", "quay.io/sclorg/mariadb-1011-c9s:latest", True),
],
)
def test_package_imagestream(self, version, registry, expected):
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
assert self.hc_api.check_imagestreams(version=version, registry=registry) == expected
7 changes: 3 additions & 4 deletions tests/test_mariadb_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ def setup_method(self):
package_name = "mariadb-persistent"
path = test_dir / "../charts/redhat"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)
self.hc_api.package_name = "mariadb-imagestreams"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()

def teardown_method(self):
self.hc_api.delete_project()
Expand All @@ -22,17 +25,13 @@ def teardown_method(self):
"version",
[
"10.3-el8",
"10.3-el9",
"10.5-el8",
"10.5-el9",
"10.11-el8",
"10.11-el9",
],
)
def test_package_persistent(self, version):
self.hc_api.package_name = "mariadb-imagestreams"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
self.hc_api.package_name = "mariadb-persistent"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation(
Expand Down
27 changes: 2 additions & 25 deletions tests/test_mysql_imagestreams.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,41 +14,18 @@ def setup_method(self):
package_name = "mysql-imagestreams"
path = test_dir / "../charts/redhat"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)

def teardown_method(self):
self.hc_api.delete_project()

@pytest.mark.parametrize(
"version,registry,expected",
[
("8.0-el9", "registry.redhat.io/rhel9/mysql-80:latest", True),
("8.0-el8", "registry.redhat.io/rhel8/mysql-80:latest", True),
],
)
def test_package_imagestream(self, version, registry, expected):
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
assert self.hc_api.check_imagestreams(version=version, registry=registry) == expected


class TestHelmCentOSMySQLImageStreams:

def setup_method(self):
package_name = "mysql-imagestreams"
path = test_dir / "../charts/centos"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)

def teardown_method(self):
self.hc_api.delete_project()

@pytest.mark.parametrize(
"version,registry,expected",
[
("8.0-c8s", "quay.io/sclorg/mysql-80-c8s:latest", False),
("8.0-c9s", "quay.io/sclorg/mysql-80-c9s:latest", True),
("8.0-el9", "registry.redhat.io/rhel9/mysql-80:latest", True),
("8.0-el8", "registry.redhat.io/rhel8/mysql-80:latest", True),
],
)
def test_package_imagestream(self, version, registry, expected):
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
assert self.hc_api.check_imagestreams(version=version, registry=registry) == expected
14 changes: 10 additions & 4 deletions tests/test_mysql_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ def setup_method(self):
package_name = "mysql-persistent"
path = test_dir / "../charts/redhat"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)
self.hc_api.package_name = "mysql-imagestreams"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()

def teardown_method(self):
self.hc_api.delete_project()
Expand All @@ -26,11 +29,14 @@ def teardown_method(self):
],
)
def test_package_persistent(self, version):
self.hc_api.package_name = "mysql-imagestreams"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()

self.hc_api.package_name = "mysql-persistent"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation(values={".mysql_version": version, ".namespace": self.hc_api.namespace})
assert self.hc_api.helm_installation(
values={
"mysql_version": version,
"namespace": self.hc_api.namespace
}
)
assert self.hc_api.is_pod_running(pod_name_prefix="mysql")
assert self.hc_api.test_helm_chart(expected_str=["42", "testval"])
28 changes: 2 additions & 26 deletions tests/test_redis_imagestreams.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,42 +14,18 @@ def setup_method(self):
package_name = "redis-imagestreams"
path = test_dir / "../charts/redhat"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)

def teardown_method(self):
self.hc_api.delete_project()

@pytest.mark.parametrize(
"version,registry,expected",
[
("6-el9", "registry.redhat.io/rhel9/redis-6:latest", True),
("6-el8", "registry.redhat.io/rhel8/redis-6:latest", True),
],
)
def test_package_imagestream(self, version, registry, expected):
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
assert self.hc_api.check_imagestreams(version=version, registry=registry) == expected


class TestHelmCentOSRedisImageStreams:

def setup_method(self):
package_name = "redis-imagestreams"
path = test_dir / "../charts/centos"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)

def teardown_method(self):
self.hc_api.delete_project()

@pytest.mark.parametrize(
"version,registry,expected",
[
("6-el8", "quay.io/sclorg/redis-6-c8s:latest", False),
("6-el9", "quay.io/sclorg/redis-6-c9s:latest", True),
("7-el9", "quay.io/sclorg/redis-7-c9s:latest", True),
("6-el9", "registry.redhat.io/rhel9/redis-6:latest", True),
("6-el8", "registry.redhat.io/rhel8/redis-6:latest", True),
],
)
def test_package_imagestream(self, version, registry, expected):
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()
assert self.hc_api.check_imagestreams(version=version, registry=registry) == expected
14 changes: 10 additions & 4 deletions tests/test_redis_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ def setup_method(self):
package_name = "redis-persistent"
path = test_dir / "../charts/redhat"
self.hc_api = HelmChartsAPI(path=path, package_name=package_name, tarball_dir=test_dir)
self.hc_api.package_name = "redis-imagestreams"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()

def teardown_method(self):
self.hc_api.delete_project()
Expand All @@ -26,11 +29,14 @@ def teardown_method(self):
],
)
def test_package_persistent(self, version):
self.hc_api.package_name = "redis-imagestreams"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation()

self.hc_api.package_name = "redis-persistent"
assert self.hc_api.helm_package()
assert self.hc_api.helm_installation(values={".redis_version": version, ".namespace": self.hc_api.namespace})
assert self.hc_api.helm_installation(
values={
"redis_version": version,
"namespace": self.hc_api.namespace
}
)
assert self.hc_api.is_pod_running(pod_name_prefix="redis")
assert self.hc_api.test_helm_chart(expected_str=["PONG"])

0 comments on commit 852e4c9

Please sign in to comment.