Skip to content

Commit b45e05f

Browse files
author
Thomas Michael
committed
create testes for mirror-repo handling
1 parent 462dc4a commit b45e05f

File tree

2 files changed

+158
-6
lines changed

2 files changed

+158
-6
lines changed

argocd/argocd/projects/cluster-resources.ftl.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ spec:
1616
sourceRepos:
1717
- ${scmm.repoUrl}argocd/cluster-resources<#if scmm.provider == "gitlab">.git</#if>
1818
<#if mirrorRepos>
19-
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">3rd-party-dependencies/kube-prometheus-stack.git<#else>/repo/3rd-party-dependencies/kube-prometheus-stack</#if>
20-
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">3rd-party-dependencies/mailhog.git<#else>/repo/3rd-party-dependencies/mailhog</#if>
21-
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">3rd-party-dependencies/ingress-nginx.git<#else>/repo/3rd-party-dependencies/ingress-nginx</#if>
22-
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">3rd-party-dependencies/external-secrets.git<#else>/repo/3rd-party-dependencies/external-secrets</#if>
23-
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">3rd-party-dependencies/vault.git<#else>/repo/3rd-party-dependencies/vault</#if>
24-
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">3rd-party-dependencies/cert-manager.git<#else>/repo/3rd-party-dependencies/cert-manager</#if>
19+
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">/3rd-party-dependencies/kube-prometheus-stack.git<#else>/repo/3rd-party-dependencies/kube-prometheus-stack</#if>
20+
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">/3rd-party-dependencies/mailhog.git<#else>/repo/3rd-party-dependencies/mailhog</#if>
21+
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">/3rd-party-dependencies/ingress-nginx.git<#else>/repo/3rd-party-dependencies/ingress-nginx</#if>
22+
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">/3rd-party-dependencies/external-secrets.git<#else>/repo/3rd-party-dependencies/external-secrets</#if>
23+
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">/3rd-party-dependencies/vault.git<#else>/repo/3rd-party-dependencies/vault</#if>
24+
- ${scmm.baseUrl}<#if scmm.provider == "gitlab">/3rd-party-dependencies/cert-manager.git<#else>/repo/3rd-party-dependencies/cert-manager</#if>
2525
<#else>
2626
- https://prometheus-community.github.io/helm-charts
2727
- https://codecentric.github.io/helm-charts

src/test/groovy/com/cloudogu/gitops/features/argocd/ArgoCDTest.groovy

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,6 +1665,158 @@ class ArgoCDTest {
16651665
}
16661666
}
16671667

1668+
@Test
1669+
void 'If not using mirror, ensure source repos in cluster-resources got right URL'() {
1670+
config.application.mirrorRepos = false
1671+
1672+
createArgoCD().install()
1673+
1674+
def clusterRessourcesYaml = new YamlSlurper().parse(Path.of argocdRepo.getAbsoluteLocalRepoTmpDir(), 'projects/cluster-resources.yaml')
1675+
clusterRessourcesYaml['spec']['sourceRepos']
1676+
1677+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).contains(
1678+
'https://charts.external-secrets.io',
1679+
'https://codecentric.github.io/helm-charts',
1680+
'https://prometheus-community.github.io/helm-charts',
1681+
'https://kubernetes.github.io/ingress-nginx',
1682+
'https://helm.releases.hashicorp.com',
1683+
'https://charts.jetstack.io'
1684+
)
1685+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).doesNotContain(
1686+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/kube-prometheus-stack',
1687+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/mailhog',
1688+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/ingress-nginx',
1689+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/external-secrets',
1690+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/vault',
1691+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/cert-manager'
1692+
)
1693+
1694+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).doesNotContain(
1695+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/kube-prometheus-stack.git',
1696+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/mailhog.git',
1697+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/ingress-nginx.git',
1698+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/external-secrets.git',
1699+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/vault.git',
1700+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/cert-manager.git'
1701+
)
1702+
}
1703+
1704+
@Test
1705+
void 'If using mirror, ensure source repos in cluster-resources got right URL'() {
1706+
config.application.mirrorRepos = true
1707+
1708+
createArgoCD().install()
1709+
1710+
def clusterRessourcesYaml = new YamlSlurper().parse(Path.of argocdRepo.getAbsoluteLocalRepoTmpDir(), 'projects/cluster-resources.yaml')
1711+
clusterRessourcesYaml['spec']['sourceRepos']
1712+
1713+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).contains(
1714+
'http://scmm.scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/kube-prometheus-stack',
1715+
'http://scmm.scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/mailhog',
1716+
'http://scmm.scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/ingress-nginx',
1717+
'http://scmm.scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/external-secrets',
1718+
'http://scmm.scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/vault',
1719+
'http://scmm.scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/cert-manager'
1720+
1721+
)
1722+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).doesNotContain(
1723+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/kube-prometheus-stack.git',
1724+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/mailhog.git',
1725+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/ingress-nginx.git',
1726+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/external-secrets.git',
1727+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/vault.git',
1728+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/cert-manager.git'
1729+
)
1730+
}
1731+
@Test
1732+
void 'If using mirror with GitLab, ensure source repos in cluster-resources got right URL'() {
1733+
config.application.mirrorRepos = true
1734+
config.scmm.provider = 'gitlab'
1735+
1736+
createArgoCD().install()
1737+
1738+
def clusterRessourcesYaml = new YamlSlurper().parse(Path.of argocdRepo.getAbsoluteLocalRepoTmpDir(), 'projects/cluster-resources.yaml')
1739+
clusterRessourcesYaml['spec']['sourceRepos']
1740+
1741+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).contains(
1742+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/kube-prometheus-stack.git',
1743+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/mailhog.git',
1744+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/ingress-nginx.git',
1745+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/external-secrets.git',
1746+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/vault.git',
1747+
'http://scmm.scm-manager.svc.cluster.local/scm/3rd-party-dependencies/cert-manager.git'
1748+
)
1749+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).doesNotContain(
1750+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/kube-prometheus-stack',
1751+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/mailhog',
1752+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/ingress-nginx',
1753+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/external-secrets',
1754+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/vault',
1755+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/cert-manager'
1756+
)
1757+
}
1758+
1759+
1760+
@Test
1761+
void 'If using mirror with GitLab with prefix, ensure source repos in cluster-resources got right URL'() {
1762+
config.application.mirrorRepos = true
1763+
config.scmm.provider = 'gitlab'
1764+
config.application.namePrefix = 'test1-'
1765+
1766+
createArgoCD().install()
1767+
1768+
def clusterRessourcesYaml = new YamlSlurper().parse(Path.of argocdRepo.getAbsoluteLocalRepoTmpDir(), 'projects/cluster-resources.yaml')
1769+
clusterRessourcesYaml['spec']['sourceRepos']
1770+
1771+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).contains(
1772+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/kube-prometheus-stack.git',
1773+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/mailhog.git',
1774+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/ingress-nginx.git',
1775+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/external-secrets.git',
1776+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/vault.git',
1777+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/cert-manager.git'
1778+
)
1779+
1780+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).doesNotContain(
1781+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/kube-prometheus-stack',
1782+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/mailhog',
1783+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/ingress-nginx',
1784+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/external-secrets',
1785+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/vault',
1786+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/cert-manager'
1787+
)
1788+
}
1789+
@Test
1790+
void 'If using mirror with name-prefix, ensure source repos in cluster-resources got right URL'() {
1791+
config.application.mirrorRepos = true
1792+
config.application.namePrefix = 'test1-'
1793+
1794+
createArgoCD().install()
1795+
1796+
def clusterRessourcesYaml = new YamlSlurper().parse(Path.of argocdRepo.getAbsoluteLocalRepoTmpDir(), 'projects/cluster-resources.yaml')
1797+
clusterRessourcesYaml['spec']['sourceRepos']
1798+
1799+
1800+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).contains(
1801+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/kube-prometheus-stack',
1802+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/mailhog',
1803+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/ingress-nginx',
1804+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/external-secrets',
1805+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/vault',
1806+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/repo/3rd-party-dependencies/cert-manager'
1807+
)
1808+
1809+
assertThat(clusterRessourcesYaml['spec']['sourceRepos'] as List).doesNotContain(
1810+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/kube-prometheus-stack.git',
1811+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/mailhog.git',
1812+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/ingress-nginx.git',
1813+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/external-secrets.git',
1814+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/vault.git',
1815+
'http://scmm.test1-scm-manager.svc.cluster.local/scm/3rd-party-dependencies/cert-manager.git'
1816+
)
1817+
}
1818+
1819+
16681820
void setup() {
16691821
config.application.namePrefix = 'testPrefix-'
16701822
config.multiTenant.centralScmUrl = 'scmm.testhost/scm'

0 commit comments

Comments
 (0)