Skip to content

Commit 748030f

Browse files
committed
fix opa test scaffold
1 parent 5ea83bd commit 748030f

9 files changed

+295
-22
lines changed

tests/templates/kuttl/opa/10-install-postgresql.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ commands:
66
helm install superset-postgresql
77
--namespace $NAMESPACE
88
--version 12.5.6
9-
-f helm-bitnami-postgresql-values.yaml
9+
-f 10_helm-bitnami-postgresql-values.yaml
1010
--repo https://charts.bitnami.com/bitnami postgresql
1111
--wait
1212
timeout: 600
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
volumePermissions:
3+
enabled: false
4+
securityContext:
5+
runAsUser: auto
6+
7+
primary:
8+
podSecurityContext:
9+
{% if test_scenario['values']['openshift'] == 'true' %}
10+
enabled: false
11+
{% else %}
12+
enabled: true
13+
{% endif %}
14+
containerSecurityContext:
15+
enabled: false
16+
resources:
17+
requests:
18+
memory: "128Mi"
19+
cpu: "512m"
20+
limits:
21+
memory: "128Mi"
22+
cpu: "1"
23+
24+
shmVolume:
25+
chmod:
26+
enabled: false
27+
28+
auth:
29+
username: superset
30+
password: superset
31+
database: superset
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
---
22
apiVersion: kuttl.dev/v1beta1
33
kind: TestAssert
4-
metadata:
5-
name: test-keycloak
6-
timeout: 480
4+
timeout: 300
75
---
86
apiVersion: apps/v1
97
kind: Deployment
108
metadata:
11-
name: keycloak1
9+
name: keycloak
1210
status:
1311
readyReplicas: 1
1412
replicas: 1

tests/templates/kuttl/opa/20-install-keycloak.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
---
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
name: keycloak
6+
---
7+
kind: Role
8+
apiVersion: rbac.authorization.k8s.io/v1
9+
metadata:
10+
name: keycloak
11+
{% if test_scenario['values']['openshift'] == 'true' %}
12+
rules:
13+
- apiGroups: ["security.openshift.io"]
14+
resources: ["securitycontextconstraints"]
15+
resourceNames: ["privileged"]
16+
verbs: ["use"]
17+
{% endif %}
18+
---
19+
kind: RoleBinding
20+
apiVersion: rbac.authorization.k8s.io/v1
21+
metadata:
22+
name: keycloak
23+
subjects:
24+
- kind: ServiceAccount
25+
name: keycloak
26+
roleRef:
27+
kind: Role
28+
name: keycloak
29+
apiGroup: rbac.authorization.k8s.io
30+
---
31+
apiVersion: kuttl.dev/v1beta1
32+
kind: TestStep
33+
commands:
34+
- script: |
35+
kubectl apply -n $NAMESPACE -f - << EOF
36+
---
37+
apiVersion: secrets.stackable.tech/v1alpha1
38+
kind: SecretClass
39+
metadata:
40+
name: keycloak-tls-$NAMESPACE
41+
spec:
42+
backend:
43+
autoTls:
44+
ca:
45+
autoGenerate: true
46+
secret:
47+
name: tls
48+
namespace: $NAMESPACE
49+
---
50+
apiVersion: apps/v1
51+
kind: Deployment
52+
metadata:
53+
name: keycloak
54+
labels:
55+
app: keycloak
56+
spec:
57+
replicas: 1
58+
selector:
59+
matchLabels:
60+
app: keycloak
61+
template:
62+
metadata:
63+
labels:
64+
app: keycloak
65+
spec:
66+
serviceAccountName: keycloak
67+
containers:
68+
- name: keycloak
69+
image: quay.io/keycloak/keycloak:23.0.4
70+
args:
71+
- start
72+
- --hostname-strict=false
73+
- --https-key-store-file=/tls/keystore.p12
74+
- --https-key-store-password=changeit
75+
- --import-realm
76+
env:
77+
- name: KEYCLOAK_ADMIN
78+
value: admin
79+
- name: KEYCLOAK_ADMIN_PASSWORD
80+
valueFrom:
81+
secretKeyRef:
82+
name: keycloak-admin-credentials
83+
key: admin
84+
- name: USER_INFO_FETCHER_CLIENT_ID
85+
valueFrom:
86+
secretKeyRef:
87+
name: user-info-fetcher-client-credentials
88+
key: clientId
89+
- name: USER_INFO_FETCHER_CLIENT_SECRET
90+
valueFrom:
91+
secretKeyRef:
92+
name: user-info-fetcher-client-credentials
93+
key: clientSecret
94+
ports:
95+
- name: https
96+
containerPort: 8443
97+
readinessProbe:
98+
httpGet:
99+
scheme: HTTPS
100+
path: /realms/master
101+
port: https
102+
resources:
103+
limits:
104+
cpu: 1
105+
memory: 1024Mi
106+
requests:
107+
cpu: 500m
108+
memory: 1024Mi
109+
volumeMounts:
110+
- name: data
111+
mountPath: /opt/keycloak/data/
112+
- name: tls
113+
mountPath: /tls/
114+
- name: realm-volume
115+
mountPath: /opt/keycloak/data/import
116+
securityContext:
117+
fsGroup: 1000
118+
runAsGroup: 1000
119+
runAsUser: 1000
120+
volumes:
121+
- name: data
122+
emptyDir: {}
123+
- name: tls
124+
ephemeral:
125+
volumeClaimTemplate:
126+
metadata:
127+
annotations:
128+
secrets.stackable.tech/class: keycloak-tls-$NAMESPACE
129+
secrets.stackable.tech/format: tls-pkcs12
130+
secrets.stackable.tech/format.compatibility.tls-pkcs12.password: changeit
131+
secrets.stackable.tech/scope: service=keycloak,node
132+
spec:
133+
storageClassName: secrets.stackable.tech
134+
accessModes:
135+
- ReadWriteOnce
136+
resources:
137+
requests:
138+
storage: "1"
139+
- name: realm-volume
140+
configMap:
141+
name: keycloak-my-dataspace-realm
142+
---
143+
apiVersion: v1
144+
kind: Secret
145+
metadata:
146+
name: keycloak-admin-credentials
147+
stringData:
148+
admin: "adminadmin"
149+
---
150+
apiVersion: v1
151+
kind: Service
152+
metadata:
153+
name: keycloak
154+
labels:
155+
app: keycloak
156+
spec:
157+
ports:
158+
- name: https
159+
port: 8443
160+
targetPort: 8443
161+
selector:
162+
app: keycloak
163+
EOF
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: user-info-fetcher-client-credentials
6+
stringData:
7+
clientId: user-info-fetcher
8+
clientSecret: user-info-fetcher-client-secret
9+
---
10+
apiVersion: v1
11+
kind: ConfigMap
12+
metadata:
13+
name: keycloak-my-dataspace-realm
14+
data:
15+
realm.json: |
16+
{
17+
"realm" : "my-dataspace",
18+
"enabled" : true,
19+
"groups" : [ {
20+
"name" : "group-user",
21+
"path" : "/group-user"
22+
} ],
23+
"users" : [ {
24+
"username" : "service-account-user-info-fetcher",
25+
"enabled" : true,
26+
"totp" : false,
27+
"emailVerified" : false,
28+
"serviceAccountClientId" : "user-info-fetcher",
29+
"credentials" : [ ],
30+
"disableableCredentialTypes" : [ ],
31+
"requiredActions" : [ ],
32+
"realmRoles" : [ "default-roles-my-dataspace" ],
33+
"clientRoles" : {
34+
"realm-management" : [
35+
"view-users"
36+
]
37+
},
38+
"notBefore" : 0,
39+
"groups" : [ ]
40+
},
41+
{
42+
"enabled": true,
43+
"username": "alice",
44+
"email" : "[email protected]",
45+
"credentials": [
46+
{
47+
"type": "password",
48+
"value": "aj238dSbs72k"
49+
}
50+
],
51+
"realmRoles": [
52+
"Test1",
53+
"Test2"
54+
]
55+
}
56+
],
57+
"roles": {
58+
"realm": [
59+
{
60+
"name": "Test1",
61+
"description": "Test1"
62+
},
63+
{
64+
"name": "Test2",
65+
"description": "Test2"
66+
}
67+
]
68+
},
69+
"clients" : [ {
70+
"clientId" : "${USER_INFO_FETCHER_CLIENT_ID}",
71+
"surrogateAuthRequired" : false,
72+
"enabled" : true,
73+
"alwaysDisplayInConsole" : false,
74+
"clientAuthenticatorType" : "client-secret",
75+
"secret" : "${USER_INFO_FETCHER_CLIENT_SECRET}",
76+
"redirectUris" : [ "/*" ],
77+
"webOrigins" : [ "/*" ],
78+
"notBefore" : 0,
79+
"bearerOnly" : false,
80+
"serviceAccountsEnabled" : true,
81+
"publicClient" : false,
82+
"frontchannelLogout" : true,
83+
"protocol" : "openid-connect",
84+
"attributes" : {
85+
"oidc.ciba.grant.enabled" : "true",
86+
"oauth2.device.authorization.grant.enabled" : "false"
87+
},
88+
"authenticationFlowBindingOverrides" : { },
89+
"fullScopeAllowed" : true
90+
} ]
91+
}

tests/templates/kuttl/opa/40-install-superset.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ kind: TestStep
44
timeout: 300
55
commands:
66
- script: >
7-
envsubst '$NAMESPACE' < install-superset.yaml |
7+
envsubst '$NAMESPACE' < 40_superset.yaml |
88
kubectl apply -n $NAMESPACE -f -

tests/templates/kuttl/opa/40_install-superset.yaml.j2 renamed to tests/templates/kuttl/opa/40_superset.yaml.j2

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,13 @@ metadata:
2020
name: superset
2121
spec:
2222
image:
23+
custom: docker.stackable.tech/stackable/superset:4.0.2-stackable0.0.0-dev-opa
2324
productVersion: "{{ test_scenario['values']['superset'] }}"
2425
pullPolicy: IfNotPresent
2526
clusterConfig:
2627
authorization:
2728
opa:
28-
configMapName: simple-opa
29+
configMapName: opa
2930
package: superset
3031
credentialsSecret: superset-credentials
3132
{% if lookup('env', 'VECTOR_AGGREGATOR') %}

tests/test-definition.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ dimensions:
1515
- no-tls
1616
- insecure-tls
1717
- server-verification-tls
18+
- name: opa
19+
values:
20+
- 0.66.0
1821
- name: openshift
1922
values:
2023
- "false"
@@ -43,6 +46,7 @@ tests:
4346
- name: opa
4447
dimensions:
4548
- superset
49+
- opa
4650
- openshift
4751
- name: resources
4852
dimensions:

0 commit comments

Comments
 (0)