Skip to content

Commit 0ae00f6

Browse files
committed
Testing: sealed secrets
Signed-off-by: Leonardo Milleri <[email protected]>
1 parent 1969b6a commit 0ae00f6

File tree

10 files changed

+91
-1
lines changed

10 files changed

+91
-1
lines changed

tests/scripts/config-trustee.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,5 @@ spec:
9797
kbsRvpsRefValuesConfigMapName: rvps-reference-values
9898
kbsSecretResources: ["kbsres1"]
9999
kbsResourcePolicyConfigMapName: resource-policy
100-
kbsServiceType: LoadBalancer
101100
EOF
102101

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: vault-secret
5+
namespace: trustee-operator-system
6+
---
7+
apiVersion: v1
8+
kind: Secret
9+
metadata:
10+
name: sealed-secret
11+
namespace: default
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
# create vault secret pointing to kbs default/vault-secret/secret
5+
- script: export BASE64=$(cat secret.json | basenc --base64url -w0) && kubectl create secret generic sealed-secret --from-literal="secret=sealed.fakejwsheader.${BASE64}.fakesignature"
6+
- script: kubectl create secret generic -n trustee-operator-system vault-secret --from-literal='secret=hello!'
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: export CR_NAME=$(kubectl get kbsconfig -n trustee-operator-system -o=jsonpath='{.items[0].metadata.name}') && kubectl patch KbsConfig -n trustee-operator-system $CR_NAME --type=json -p='[{"op":"add", "path":"/spec/kbsSecretResources/-", "value":"vault-secret"}]'
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: sealed-pod
5+
namespace: default
6+
status:
7+
containerStatuses:
8+
- ready: true
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: export KATA_RUNTIME=${KATA_RUNTIME:-kata-snp} && envsubst < "pod-sealed.yaml.in" > "pod-sealed.yaml"
5+
- script: kubectl apply -f pod-sealed.yaml
6+
- script: rm pod-sealed.yaml
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestAssert
3+
commands:
4+
- script: test "$(kubectl exec sealed-pod -- cat /sealed/mysecret/secret)" = "hello!"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- script: kubectl delete secret -n default sealed-secret
5+
- script: kubectl delete secret -n trustee-operator-system vault-secret
6+
- script: kubectl delete pod sealed-pod
7+
- script: export CR_NAME=$(kubectl get kbsconfig -n trustee-operator-system -o=jsonpath='{.items[0].metadata.name}') &&
8+
kubectl get KbsConfig -n trustee-operator-system $CR_NAME -o json | jq ".spec.kbsSecretResources -= [\"vault-secret\"]" | kubectl apply -f -
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: sealed-pod
5+
annotations:
6+
io.containerd.cri.runtime-handler: ${KATA_RUNTIME}
7+
io.katacontainers.config.hypervisor.kernel_params: " agent.aa_kbc_params=cc_kbc::http://kbs-service.trustee-operator-system:8080"
8+
spec:
9+
runtimeClassName: ${KATA_RUNTIME}
10+
containers:
11+
- name: sealed-pod
12+
volumeMounts:
13+
- name: secret-volume
14+
mountPath: "/sealed/mysecret"
15+
env:
16+
- name: PROTECTED_SECRET
17+
valueFrom:
18+
secretKeyRef:
19+
name: sealed-secret
20+
key: secret
21+
image: quay.io/prometheus/busybox:latest
22+
imagePullPolicy: Always
23+
command:
24+
- sh
25+
- -c
26+
- |
27+
env
28+
sleep "36000"
29+
securityContext:
30+
privileged: false
31+
seccompProfile:
32+
type: RuntimeDefault
33+
volumes:
34+
- name: secret-volume
35+
secret:
36+
secretName: sealed-secret
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"version": "0.1.0",
3+
"type": "vault",
4+
"name": "kbs:///default/vault-secret/secret",
5+
"provider": "kbs",
6+
"provider_settings": {},
7+
"annotations": {}
8+
}

0 commit comments

Comments
 (0)