Skip to content

Commit

Permalink
Fix private registry init containers (#1925)
Browse files Browse the repository at this point in the history
  • Loading branch information
danielhoherd committed Jul 11, 2023
1 parent 47d1360 commit 050b09c
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 17 deletions.
2 changes: 1 addition & 1 deletion charts/prometheus/templates/_helpers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Create chart name and version as used by the chart label.

{{ define "prometheus.init.image" -}}
{{- if .Values.global.privateRegistry.enabled -}}
{{ .Values.global.privateRegistry.repository }}/ap-base:{{ .Values.images.init.tag }}
{{ .Values.global.privateRegistry.repository }}/ap-init:{{ .Values.images.init.tag }}
{{- else -}}
{{ .Values.images.init.repository }}:{{ .Values.images.init.tag }}
{{- end }}
Expand Down
2 changes: 1 addition & 1 deletion charts/stan/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Return the list of peers in a NATS Streaming cluster.

{{ define "stan.init.image" -}}
{{- if .Values.global.privateRegistry.enabled -}}
{{ .Values.global.privateRegistry.repository }}/ap-base:{{ .Values.images.init.tag }}
{{ .Values.global.privateRegistry.repository }}/ap-init:{{ .Values.images.init.tag }}
{{- else -}}
{{ .Values.images.init.repository }}:{{ .Values.images.init.tag }}
{{- end }}
Expand Down
48 changes: 33 additions & 15 deletions tests/chart_tests/test_default_chart.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,37 +72,55 @@ def test_default_chart_with_basedomain(self, doc):
assert "memory" in resources.get("requests")

private_repo = "example.com/the-private-registry-repository"
private_repo_docs = render_chart(
values={
"global": {
"privateRegistry": {
"enabled": True,
"repository": private_repo,
}
}
},
)
private_repo_docs_trimmed = [
private_values = chart_tests.get_all_features()
private_values["global"]["privateRegistry"] = {
"enabled": True,
"repository": private_repo,
}
private_values["global"]["authSidecar"] = {
"enabled": True,
"repository": f"{private_repo}/ap-auth-sidecar",
}
private_repo_docs = render_chart(values=private_values)
pod_manager_docs_private = [
doc for doc in private_repo_docs if doc["kind"] in pod_managers
]
pod_manager_docs_private_ids = [
f"{doc['kind']}/{doc['metadata']['name']}" for doc in pod_manager_docs_private
]

pod_manager_containers_public = {
f"{doc['kind']}/{doc['metadata']['name']}/{name}": container
for doc in pod_manager_docs
for name, container in get_containers_by_name(
doc, include_init_containers=True
).items()
}

@pytest.mark.parametrize(
"doc",
private_repo_docs_trimmed,
ids=[f"{x['kind']}/{x['metadata']['name']}" for x in private_repo_docs_trimmed],
pod_manager_docs_private,
ids=pod_manager_docs_private_ids,
)
def test_all_default_charts_with_private_registry(self, doc):
"""Test that each chart uses the privateRegistry.
This only finds default images, not the many which are hidden
behind feature flags.
"""
c_by_name = get_containers_by_name(doc)
c_by_name = get_containers_by_name(doc, include_init_containers=True)

for name, container in c_by_name.items():
pod_container = f"{doc['kind']}/{doc['metadata']['name']}/{name}"
assert (
container["image"].split("/")[-1:]
== self.pod_manager_containers_public[pod_container]["image"].split(
"/"
)[-1:]
), f"The spec for '{pod_container}' does not use the same image for public and private registry configurations."
assert container["image"].startswith(
self.private_repo
), f"The container '{name}' does not use the privateRegistry repo '{self.private_repo}': {container}"
), f"The spec for '{pod_container}' does not use the privateRegistry repo '{self.private_repo}': {container}"


@pytest.mark.skip(
Expand Down

0 comments on commit 050b09c

Please sign in to comment.