Skip to content

Commit

Permalink
Add e2e test for adding configMap to allow defining parameters for SS…
Browse files Browse the repository at this point in the history
…H client (argoproj-labs#873)

Signed-off-by: Cheng Fang <cfang@redhat.com>
  • Loading branch information
chengfang authored Oct 1, 2024
1 parent 5403b3e commit 720f495
Show file tree
Hide file tree
Showing 7 changed files with 126 additions and 0 deletions.
35 changes: 35 additions & 0 deletions test/e2e/suite/103-ssh-client-config/01-assert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-image-updater-ssh-config
data:
config: |-
Host *
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: argocd-image-updater
spec:
selector:
matchLabels:
app.kubernetes.io/name: argocd-image-updater
template:
spec:
containers:
- name: argocd-image-updater
volumeMounts:
- mountPath: /app/config
name: image-updater-conf
- mountPath: /app/config/ssh
name: ssh-known-hosts
- mountPath: /app/.ssh
name: ssh-config
- mountPath: /tmp
name: tmp
- mountPath: /app/ssh-keys/id_rsa
name: ssh-signing-key
readOnly: true
subPath: sshPrivateKey
5 changes: 5 additions & 0 deletions test/e2e/suite/103-ssh-client-config/01-install.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
commands:
- command: kubectl -n argocd-image-updater-e2e apply -k .
- command: sleep 5
5 changes: 5 additions & 0 deletions test/e2e/suite/103-ssh-client-config/99-delete.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: kuttl.dev/v1beta1
kind: TestStep
commands:
- command: kubectl -n argocd-image-updater-e2e delete -k .
- command: sleep 5
55 changes: 55 additions & 0 deletions test/e2e/suite/103-ssh-client-config/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
This test case verifies the support for configuring ssh client via the config map `argocd-image-updater-ssh-config`.

This test case performs the following steps:
* kustomize the default argocd-image-updater installation by adding custom ssh config data to the config map `argocd-image-updater-ssh-config`
* install the customized argocd-image-updater to the test cluster
* verify that the customized ssh config (config map and volume mount) are present
* uninstall argocd-image-updater from the test cluster

To run this individual test case,

* make sure both docker daemon and k8s cluster is running
* `cd $HOME/go/src/image-updater/test/e2e`
* `SRC_DIR=$HOME/go/src/image-updater kubectl kuttl test --namespace argocd-image-updater-e2e --timeout 120 --test 103-ssh-client-config`

Test output:
```bash
harness.go:278: Successful connection to cluster at: https://0.0.0.0:58961
harness.go:363: running tests
harness.go:75: going to run test suite with timeout of 120 seconds for each step
harness.go:375: testsuite: ./suite has 8 tests
=== RUN kuttl/harness
=== RUN kuttl/harness/103-ssh-client-config
=== PAUSE kuttl/harness/103-ssh-client-config
=== CONT kuttl/harness/103-ssh-client-config
logger.go:42: 19:47:52 | 103-ssh-client-config/1-install | starting test step 1-install
logger.go:42: 19:47:52 | 103-ssh-client-config/1-install | running command: [kubectl -n argocd-image-updater-e2e apply -k .]
logger.go:42: 19:47:53 | 103-ssh-client-config/1-install | serviceaccount/argocd-image-updater created
logger.go:42: 19:47:53 | 103-ssh-client-config/1-install | role.rbac.authorization.k8s.io/argocd-image-updater created
logger.go:42: 19:47:53 | 103-ssh-client-config/1-install | rolebinding.rbac.authorization.k8s.io/argocd-image-updater created
logger.go:42: 19:47:53 | 103-ssh-client-config/1-install | configmap/argocd-image-updater-config created
logger.go:42: 19:47:53 | 103-ssh-client-config/1-install | configmap/argocd-image-updater-ssh-config created
logger.go:42: 19:47:53 | 103-ssh-client-config/1-install | secret/argocd-image-updater-secret created
logger.go:42: 19:47:53 | 103-ssh-client-config/1-install | deployment.apps/argocd-image-updater created
logger.go:42: 19:47:53 | 103-ssh-client-config/1-install | running command: [sleep 5]
logger.go:42: 19:47:58 | 103-ssh-client-config/1-install | test step completed 1-install
logger.go:42: 19:47:58 | 103-ssh-client-config/99-delete | starting test step 99-delete
logger.go:42: 19:47:58 | 103-ssh-client-config/99-delete | running command: [kubectl -n argocd-image-updater-e2e delete -k .]
logger.go:42: 19:47:59 | 103-ssh-client-config/99-delete | serviceaccount "argocd-image-updater" deleted
logger.go:42: 19:47:59 | 103-ssh-client-config/99-delete | role.rbac.authorization.k8s.io "argocd-image-updater" deleted
logger.go:42: 19:47:59 | 103-ssh-client-config/99-delete | rolebinding.rbac.authorization.k8s.io "argocd-image-updater" deleted
logger.go:42: 19:47:59 | 103-ssh-client-config/99-delete | configmap "argocd-image-updater-config" deleted
logger.go:42: 19:47:59 | 103-ssh-client-config/99-delete | configmap "argocd-image-updater-ssh-config" deleted
logger.go:42: 19:47:59 | 103-ssh-client-config/99-delete | secret "argocd-image-updater-secret" deleted
logger.go:42: 19:47:59 | 103-ssh-client-config/99-delete | deployment.apps "argocd-image-updater" deleted
logger.go:42: 19:47:59 | 103-ssh-client-config/99-delete | running command: [sleep 5]
logger.go:42: 19:48:04 | 103-ssh-client-config/99-delete | test step completed 99-delete
logger.go:42: 19:48:04 | 103-ssh-client-config | skipping kubernetes event logging
=== NAME kuttl
harness.go:407: run tests finished
harness.go:515: cleaning up
harness.go:572: removing temp folder: ""
--- PASS: kuttl (12.08s)
--- PASS: kuttl/harness (0.00s)
--- PASS: kuttl/harness/103-ssh-client-config (12.07s)
```
7 changes: 7 additions & 0 deletions test/e2e/suite/103-ssh-client-config/clusterrolebinding.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[
{
"op": "replace",
"path": "/subjects/0/namespace",
"value": "argocd-image-updater-e2e"
}
]
3 changes: 3 additions & 0 deletions test/e2e/suite/103-ssh-client-config/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Host *
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
16 changes: 16 additions & 0 deletions test/e2e/suite/103-ssh-client-config/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
resources:
- https://github.com/argoproj-labs/argocd-image-updater/manifests/base?ref=stable

configMapGenerator:
- name: argocd-image-updater-ssh-config
behavior: merge
files:
- config

patches:
- path: clusterrolebinding.json
target:
group: rbac.authorization.k8s.io
version: v1
kind: ClusterRoleBinding
name: argocd-image-updater

0 comments on commit 720f495

Please sign in to comment.