Skip to content

Commit 0ccac81

Browse files
committed
tests: spark connect/kerberos/iceberg integration test
1 parent b800b11 commit 0ccac81

28 files changed

Lines changed: 1252 additions & 0 deletions
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestAssert
4+
timeout: 900
5+
---
6+
apiVersion: v1
7+
kind: ServiceAccount
8+
metadata:
9+
name: integration-tests-sa
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% if test_scenario['values']['openshift'] == 'true' %}
2+
# see https://github.com/stackabletech/issues/issues/566
3+
---
4+
apiVersion: kuttl.dev/v1beta1
5+
kind: TestStep
6+
commands:
7+
- script: kubectl patch namespace $NAMESPACE -p '{"metadata":{"labels":{"pod-security.kubernetes.io/enforce":"privileged"}}}'
8+
timeout: 120
9+
{% endif %}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
kind: Role
3+
apiVersion: rbac.authorization.k8s.io/v1
4+
metadata:
5+
name: use-integration-tests-scc
6+
rules:
7+
{% if test_scenario['values']['openshift'] == "true" %}
8+
- apiGroups: ["security.openshift.io"]
9+
resources: ["securitycontextconstraints"]
10+
resourceNames: ["privileged"]
11+
verbs: ["use"]
12+
{% endif %}
13+
---
14+
apiVersion: v1
15+
kind: ServiceAccount
16+
metadata:
17+
name: integration-tests-sa
18+
---
19+
kind: RoleBinding
20+
apiVersion: rbac.authorization.k8s.io/v1
21+
metadata:
22+
name: use-integration-tests-scc
23+
subjects:
24+
- kind: ServiceAccount
25+
name: integration-tests-sa
26+
roleRef:
27+
kind: Role
28+
name: use-integration-tests-scc
29+
apiGroup: rbac.authorization.k8s.io
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestAssert
4+
{% if lookup('env', 'VECTOR_AGGREGATOR') %}
5+
---
6+
apiVersion: v1
7+
kind: ConfigMap
8+
metadata:
9+
name: vector-aggregator-discovery
10+
{% endif %}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% if lookup('env', 'VECTOR_AGGREGATOR') %}
2+
---
3+
apiVersion: v1
4+
kind: ConfigMap
5+
metadata:
6+
name: vector-aggregator-discovery
7+
data:
8+
ADDRESS: {{ lookup('env', 'VECTOR_AGGREGATOR') }}
9+
{% endif %}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestAssert
4+
timeout: 600
5+
---
6+
apiVersion: apps/v1
7+
kind: StatefulSet
8+
metadata:
9+
name: krb5-kdc
10+
status:
11+
readyReplicas: 1
12+
replicas: 1
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
---
2+
apiVersion: apps/v1
3+
kind: StatefulSet
4+
metadata:
5+
name: krb5-kdc
6+
spec:
7+
selector:
8+
matchLabels:
9+
app: krb5-kdc
10+
template:
11+
metadata:
12+
labels:
13+
app: krb5-kdc
14+
spec:
15+
serviceAccountName: integration-tests-sa
16+
initContainers:
17+
- name: init
18+
image: oci.stackable.tech/sdp/krb5:{{ test_scenario['values']['krb5'] }}-stackable0.0.0-dev
19+
args:
20+
- sh
21+
- -euo
22+
- pipefail
23+
- -c
24+
- |
25+
test -e /var/kerberos/krb5kdc/principal || kdb5_util create -s -P asdf
26+
kadmin.local get_principal -terse root/admin || kadmin.local add_principal -pw asdf root/admin
27+
# stackable-secret-operator principal must match the keytab specified in the SecretClass
28+
kadmin.local get_principal -terse stackable-secret-operator || kadmin.local add_principal -e aes256-cts-hmac-sha384-192:normal -pw asdf stackable-secret-operator
29+
env:
30+
- name: KRB5_CONFIG
31+
value: /stackable/config/krb5.conf
32+
volumeMounts:
33+
- mountPath: /stackable/config
34+
name: config
35+
- mountPath: /var/kerberos/krb5kdc
36+
name: data
37+
containers:
38+
- name: kdc
39+
image: oci.stackable.tech/sdp/krb5:{{ test_scenario['values']['krb5'] }}-stackable0.0.0-dev
40+
args:
41+
- krb5kdc
42+
- -n
43+
env:
44+
- name: KRB5_CONFIG
45+
value: /stackable/config/krb5.conf
46+
volumeMounts:
47+
- mountPath: /stackable/config
48+
name: config
49+
- mountPath: /var/kerberos/krb5kdc
50+
name: data
51+
# Root permissions required on Openshift to access internal ports
52+
{% if test_scenario['values']['openshift'] == "true" %}
53+
securityContext:
54+
runAsUser: 0
55+
{% endif %}
56+
- name: kadmind
57+
image: oci.stackable.tech/sdp/krb5:{{ test_scenario['values']['krb5'] }}-stackable0.0.0-dev
58+
args:
59+
- kadmind
60+
- -nofork
61+
env:
62+
- name: KRB5_CONFIG
63+
value: /stackable/config/krb5.conf
64+
volumeMounts:
65+
- mountPath: /stackable/config
66+
name: config
67+
- mountPath: /var/kerberos/krb5kdc
68+
name: data
69+
# Root permissions required on Openshift to access internal ports
70+
{% if test_scenario['values']['openshift'] == "true" %}
71+
securityContext:
72+
runAsUser: 0
73+
{% endif %}
74+
- name: client
75+
image: oci.stackable.tech/sdp/krb5:{{ test_scenario['values']['krb5'] }}-stackable0.0.0-dev
76+
tty: true
77+
stdin: true
78+
env:
79+
- name: KRB5_CONFIG
80+
value: /stackable/config/krb5.conf
81+
volumeMounts:
82+
- mountPath: /stackable/config
83+
name: config
84+
volumes:
85+
- name: config
86+
configMap:
87+
name: krb5-kdc
88+
volumeClaimTemplates:
89+
- metadata:
90+
name: data
91+
spec:
92+
accessModes:
93+
- ReadWriteOnce
94+
resources:
95+
requests:
96+
storage: 1Gi
97+
---
98+
apiVersion: v1
99+
kind: Service
100+
metadata:
101+
name: krb5-kdc
102+
spec:
103+
selector:
104+
app: krb5-kdc
105+
ports:
106+
- name: kadmin
107+
port: 749
108+
- name: kdc
109+
port: 88
110+
- name: kdc-udp
111+
port: 88
112+
protocol: UDP
113+
---
114+
apiVersion: v1
115+
kind: ConfigMap
116+
metadata:
117+
name: krb5-kdc
118+
data:
119+
krb5.conf: |
120+
[logging]
121+
default = STDERR
122+
kdc = STDERR
123+
admin_server = STDERR
124+
[libdefaults]
125+
dns_lookup_realm = false
126+
ticket_lifetime = 24h
127+
renew_lifetime = 7d
128+
forwardable = true
129+
rdns = false
130+
default_realm = {{ test_scenario['values']['kerberos-realm'] }}
131+
spake_preauth_groups = edwards25519
132+
[realms]
133+
{{ test_scenario['values']['kerberos-realm'] }} = {
134+
acl_file = /stackable/config/kadm5.acl
135+
disable_encrypted_timestamp = false
136+
}
137+
[domain_realm]
138+
.cluster.local = {{ test_scenario['values']['kerberos-realm'] }}
139+
cluster.local = {{ test_scenario['values']['kerberos-realm'] }}
140+
kadm5.acl: |
141+
root/admin *e
142+
stackable-secret-operator *e
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestStep
4+
commands:
5+
# We need to replace $NAMESPACE (by KUTTL)
6+
- script: |
7+
kubectl apply -n "$NAMESPACE" -f - <<EOF
8+
---
9+
apiVersion: secrets.stackable.tech/v1alpha1
10+
kind: SecretClass
11+
metadata:
12+
name: kerberos-$NAMESPACE
13+
spec:
14+
backend:
15+
kerberosKeytab:
16+
realmName: {{ test_scenario['values']['kerberos-realm'] }}
17+
kdc: krb5-kdc.$NAMESPACE.svc.cluster.local
18+
admin:
19+
mit:
20+
kadminServer: krb5-kdc.$NAMESPACE.svc.cluster.local
21+
adminKeytabSecret:
22+
namespace: $NAMESPACE
23+
name: secret-operator-keytab
24+
adminPrincipal: stackable-secret-operator
25+
EOF
26+
---
27+
apiVersion: v1
28+
kind: Secret
29+
metadata:
30+
name: secret-operator-keytab
31+
data:
32+
# To create keytab. When prompted enter password asdf
33+
# cat | ktutil << 'EOF'
34+
# list
35+
# add_entry -password -p stackable-secret-operator@CLUSTER.LOCAL -k 1 -e aes256-cts-hmac-sha384-192
36+
# wkt /tmp/keytab
37+
# EOF
38+
{% if test_scenario['values']['kerberos-realm'] == 'CLUSTER.LOCAL' %}
39+
keytab: BQIAAABdAAEADUNMVVNURVIuTE9DQUwAGXN0YWNrYWJsZS1zZWNyZXQtb3BlcmF0b3IAAAABZAYWIgEAFAAgm8MCZ8B//XF1tH92GciD6/usWUNAmBTZnZQxLua2TkgAAAAB
40+
{% elif test_scenario['values']['kerberos-realm'] == 'PROD.MYCORP' %}
41+
keytab: BQIAAABbAAEAC1BST0QuTVlDT1JQABlzdGFja2FibGUtc2VjcmV0LW9wZXJhdG9yAAAAAWQZa0EBABQAIC/EnFNejq/K5lX6tX+B3/tkI13TCzkPB7d2ggCIEzE8AAAAAQ==
42+
{% endif %}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Generated with certs/generate.sh in this test folder.
2+
---
3+
apiVersion: v1
4+
kind: Secret
5+
metadata:
6+
name: minio-tls-ca
7+
labels:
8+
secrets.stackable.tech/class: minio-tls-ca
9+
annotations:
10+
cert.common-name: "minio"
11+
cert.generated-at: "2026-02-22T09:20:06Z"
12+
cert.expires-at: "2126-01-29T09:20:06Z"
13+
data:
14+
ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQyVENDQXNHZ0F3SUJBZ0lVZmRHN2dQR1p5RjFVNm9jUW5QcHpNZklPcHZjd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2V6RUxNQWtHQTFVRUJoTUNSRVV4R3pBWkJnTlZCQWdNRWxOamFHeGxjM2RwWnkxSWIyeHpkR1ZwYmpFTwpNQXdHQTFVRUJ3d0ZWMlZrWld3eEtEQW1CZ05WQkFvTUgxTjBZV05yWVdKc1pTQlRhV2R1YVc1bklFRjFkR2h2CmNtbDBlU0JKYm1NeEZUQVRCZ05WQkFNTURITjBZV05yWVdKc1pTNWtaVEFnRncweU5qQXlNakl3T1RJd01EWmEKR0E4eU1USTJNREV5T1RBNU1qQXdObG93ZXpFTE1Ba0dBMVVFQmhNQ1JFVXhHekFaQmdOVkJBZ01FbE5qYUd4bApjM2RwWnkxSWIyeHpkR1ZwYmpFT01Bd0dBMVVFQnd3RlYyVmtaV3d4S0RBbUJnTlZCQW9NSDFOMFlXTnJZV0pzClpTQlRhV2R1YVc1bklFRjFkR2h2Y21sMGVTQkpibU14RlRBVEJnTlZCQU1NREhOMFlXTnJZV0pzWlM1a1pUQ0MKQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKVFVnR2svZkJTRi9FdEZQNCtYZERzbgpwV1c4UUVJOFZZYkZoK1k2NHliYWZnNHhPdWJibEV1dGRqTTBMeTBjYXozbGJWNXlNejFnT2duNXpQQk9hRDgwClF0MGdDSlIvanlzZ1YwNFN0RnlBSnBGbjhud3JTeFNHY2FaWDN2dDJVc1Y1WFF6TTA1MXlwRTRyNVQwSVNnbVEKV3YrWGtiM0VPNXZxVXZXVG9GdHhNOXgrQVhvWG9aeUw3dmIvYzQwRnRwdFVGTHF6MHhzY3NWbjJVY2d0Y0s0YgozcTFuRjJZYm9mRTRGeVpvRUZMbDhBbkkyc2tBQXFnSjNRNWd0bjlncnRSNlFqellNb3J2VGsvYStncDIrTXlKCnBwaDhUUWVFNEJHOEp2ZHR6MWkxZTBveVFmWnR5TEJVbWk1QUNJS1pYVUQxRE9YcHBobDVlMjlOZ083cG5ZVUMKQXdFQUFhTlRNRkV3SFFZRFZSME9CQllFRkErZjZuZXozWWFodEJvRER3Y1ZKSU5mRDVPZU1COEdBMVVkSXdRWQpNQmFBRkErZjZuZXozWWFodEJvRER3Y1ZKSU5mRDVPZU1BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RRWUpLb1pJCmh2Y05BUUVMQlFBRGdnRUJBQVNxQmc3SnJ5L3FOc0I5cHRpeE5xWWtMTUJOTVRUZXlhWE93K1N6U3hrRmd0T0IKbVVpS2tka2NZNStGc0V5blR1ay9NOG1MNTBFaG90dlRFVWJpR2RDR0lhQXpUN3dMb2dyRWp2dWh1S0JRbDJNZQpmU0d6OW12VkVhSURsNHNvZUlic3NZbm1CcnA5TmNPWmgvemlZZTVRNHRGTEVlK2dDZDhMekVjdHBMeExuaHpzCjNIbG5zUCtoeUhsdDVOclEyOEVheHduMysxNlNjMzJ0a1h4cXZYc0NaOVFNNGw5SDQwN1pud0pTV0RaUHRXNm8KaHVvamExM1d6OFVwVlBHZ0YyaEhaN0dtRUxUOTZaZ1RwMzBUNnJ3NktmY1l3cWpZVHU3NWdEYzNUSE85S0hRSwpGZzJid3l0WmNZOTJ4NllmNnNxcHJKSHl3ME1sZWRwNHRLNy9ZRzQ9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
15+
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR5RENDQXJDZ0F3SUJBZ0lVTXE4NnZ5NVNzWitYZVBMbU9XcFpiSFMyMmZNd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2V6RUxNQWtHQTFVRUJoTUNSRVV4R3pBWkJnTlZCQWdNRWxOamFHeGxjM2RwWnkxSWIyeHpkR1ZwYmpFTwpNQXdHQTFVRUJ3d0ZWMlZrWld3eEtEQW1CZ05WQkFvTUgxTjBZV05yWVdKc1pTQlRhV2R1YVc1bklFRjFkR2h2CmNtbDBlU0JKYm1NeEZUQVRCZ05WQkFNTURITjBZV05yWVdKc1pTNWtaVEFnRncweU5qQXlNakl3T1RJd01EWmEKR0E4eU1USTJNREV5T1RBNU1qQXdObG93WGpFTE1Ba0dBMVVFQmhNQ1JFVXhHekFaQmdOVkJBZ01FbE5qYUd4bApjM2RwWnkxSWIyeHpkR1ZwYmpFT01Bd0dBMVVFQnd3RlYyVmtaV3d4RWpBUUJnTlZCQW9NQ1ZOMFlXTnJZV0pzClpURU9NQXdHQTFVRUF3d0ZiV2x1YVc4d2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUIKQVFDdzI3L0EreTBpSjh5S3dnZXZ6VXlLSXdYaElDTGZaTkltcTd0MkhiN3Ewd0tBcmJhb0s2V3oyS3NpWUE3OApHWmhUU1MwYWg2cHhlR3Bqd2xKN3dFM0s3MElLV25XZXdCMlFwcWVBYS9LSTUyUlRWc0t1VTc3d3FyWFI4aVVLCko0N2pZZXVQYkIyVGV1dlcza2lxbU9Hbjd2Q3R2SEdOUFFhSmlieVA0UE9KTk5taEZGZGNoOUZGMTBVWHhNNXkKK3BoOHdwWHZxaGs0QlhsRlRtcDZFMmxLUUd5MjJ0ejUxTkhOOWNxc0ZlOFNsaENPSTZMRTB3dXlhWU9razRvSQpObGRtWGYwdG1PUStQNXpjWTJnOUVRSGQ5bFRnL0J0Kyt1MytlaC84ZHVXd2k3SGhSNjJKblVySG1WTUFTbXQvCjJHSHlBR1phYkc2STVpM1ZrejdCc3NPdkFnTUJBQUdqWHpCZE1Cc0dBMVVkRVFRVU1CS0NCVzFwYm1sdmdnbHMKYjJOaGJHaHZjM1F3SFFZRFZSME9CQllFRkh1STl5eGRQb1c3MFg0RzE0U1ZnVm5FODZyak1COEdBMVVkSXdRWQpNQmFBRkErZjZuZXozWWFodEJvRER3Y1ZKSU5mRDVPZU1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQWsva29wClY2UllqNHVXM2dhTGdMeWNFOGZyR1ZIMzhGdi9DMHkxNTBzNnNLN1ZzLy9uV2RabG9FQVdFZlhhK1dOck0xMkMKYzM0NWMzSzNsTFJ5UlR2aUpUK2lLUzhPeU4waU54eWJJU0R1N2lSZ25hZ285YnQrYTh6NHQ1c0lJa0FQMTE0bQpFYnFORHkxWFd5RVNzOFUvS1FCZStaTDZ3VGlWK0xGNEczS013YU12ajI2NURXU0plRlBMTGs2RTUxUE12SUgzCjVxMWFXYmtxMlNPZ0cxN0tXSGkzTnlCMnBDRmRsaUVrVmx3bmwxLzNqZFEvbXpPS2huV0IydHBkQWVNNHZKczgKZENQcWxUemNMZkNOc3orZnp2MTdBbUlFRHFFdExJeDAwNGpGbEhVd0ZlZkR0ejhZTFU5VzFaQzJFWGpyc3ZUTgoxbG02WXgveUs3ZkMzTFZFCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
16+
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRQ3cyNy9BK3kwaUo4eUsKd2dldnpVeUtJd1hoSUNMZlpOSW1xN3QySGI3cTB3S0FyYmFvSzZXejJLc2lZQTc4R1poVFNTMGFoNnB4ZUdwagp3bEo3d0UzSzcwSUtXbldld0IyUXBxZUFhL0tJNTJSVFZzS3VVNzd3cXJYUjhpVUtKNDdqWWV1UGJCMlRldXZXCjNraXFtT0duN3ZDdHZIR05QUWFKaWJ5UDRQT0pOTm1oRkZkY2g5RkYxMFVYeE01eStwaDh3cFh2cWhrNEJYbEYKVG1wNkUybEtRR3kyMnR6NTFOSE45Y3FzRmU4U2xoQ09JNkxFMHd1eWFZT2trNG9JTmxkbVhmMHRtT1ErUDV6YwpZMmc5RVFIZDlsVGcvQnQrK3UzK2VoLzhkdVd3aTdIaFI2MkpuVXJIbVZNQVNtdC8yR0h5QUdaYWJHNkk1aTNWCmt6N0Jzc092QWdNQkFBRUNnZ0VBVlVtNzJNQW9QVXJ0R0ZOR3FyQjZBem10aWFuYU4xbmpBRlFiNUhPbTBJNXUKckFoWnlCSzRaNWtLdWxxUmoyQjJkVithR1N1b2RlMElmVkJHUDdoMnEzRWpLMlFCU2N2QzFqR1FJRjJ1U2ZndwppUUlUZzBjT2t2ZjRFNlZPMkcxSU9uNUx2MC8zbVZvVFpueXVsVnFCbzk4V0FPcVo1ZTh5ZWx4S2F5WWp1NXZMCk5PemZZTVVVZm54VEhrbXhJM2czalU3RDVhdXVWKzBUaXNleEZLMVNMcTdWZDBpU0orbmxoblR4VWNQV0MvSWEKd2cwbUZkUFVTMUwwU25RUnZ6d2JSd1l1eGxwbytXcjAwTm5FRnRyRDVzYmxTWWN1R3ZEY0E4MmR2azRRTUFhSApVMjRPdjFSeXhBd1czUHhpZVQ1d1JIc2xrMFlBbkNTRGxXajNtSFA5b1FLQmdRRHJzT05jWFZBN1hvbDZrQVNKCm9SVGJhdHdUNnlXV3V2VERXclFCQjd4ZnJNRHBRL0NiNkVzdDVLNkRQVmJ4ak1VZ05OVURML0pISTRDSnRJeHMKT0JrcWNLUzFleTlqQTAwTnR4T0ZIWmN4ekg4bG41OEdSYkRPLytOOHRZQU95QjIyOHFKdFVYYlZXc3RGVGxyRAorOHBZRUJjZGM2c2d5b0NoZEVoTGpld21ZUUtCZ1FEQUdSSnJtb0kvQjMvTjczcUQ2eUZrUTU3Uitub1ZzdmpnClZHdlFKaWF3YXJDa3ZEL0drUXVPK0RjZCtISmJUOGR5cTVqUHFmelNVYS81a3VmdTlxYkVvUjFHQmlJbDlKNXIKNFNINy9rMlJZSWRDUFJJZ242dlRNa1VuZ3g0QjlJdXVNejhONmh5MnByV3daOHhBeml6MTc4Um5qWWdmTkEvYwpCM0VlSVNNRUR3S0JnUUNjdk5yR2J1dlBQNVJQcEh6UUJnWjMwSDJnNVd6dTYwK2dwcTQwVFMreHRKSHB6cHV4Ckl1NzBDek1lNWVqdTQvMm42RnFNTHhPQXlaUk9mM291OGJPU3JLeHNZQXBvWHlhYjYxY1kzRS9TOXpyTEMzYlcKMWZ1NS9TUU1xQ3NNS1hyUlVsUkFQTCs1TFJNbStPK1ZpOW5KYkpIaXJTeHR0eDJKd1duZWpQZ3hvUUtCZ0JnegowSGRRS3pMSHZobHpINnQ1TjJiTGdqb1FaY3RRRmowbFJjUWUybWNGdWlXM05nM05mbmhQMjVuaUVINWlxYzFQCncxdituY1RkMTk4STNFSG1QNUtzZmVTeHB5SERGU2FnWWNpKy9JVGhkWWtwNnB2RG9rRmtwd1BZYURKMDNoaGYKaW9VMVJ0TFlaREhLa2hoa0laUUcxbWI1bFBuaGRGSVRlZlFDMXNlUEFvR0JBS3B0SXlvU0JaZVJWeS8wK2d3UgpVTjRFY0M4a3ZJNG1ZWWc5NEtsR3RBSWZVall3Z1o3SUY3bE1XUnM5N1FWajcvOVU1Q1pXclJENkx1TFNkVmN1Ckg1eTR5TFpBeFQrVE5lRTdjME83SFhpRC9yQ1BINHNsZ2JnZ1hLNDNrcGg4SEJkOURHZzAxNFNWZklzZkZHcXQKK0pudUNpUW1aMDlscEFiR1Y0MktIdElpCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: minio-users
6+
type: Opaque
7+
stringData:
8+
username1: |
9+
username=spark
10+
password=sparkspark
11+
disabled=false
12+
policies=readwrite,consoleAdmin,diagnostics
13+
setPolicies=false
14+
---
15+
apiVersion: secrets.stackable.tech/v1alpha1
16+
kind: SecretClass
17+
metadata:
18+
name: minio-tls-ca
19+
spec:
20+
backend:
21+
k8sSearch:
22+
searchNamespace:
23+
pod: {}
24+
---
25+
apiVersion: secrets.stackable.tech/v1alpha1
26+
kind: SecretClass
27+
metadata:
28+
name: minio-credentials-class
29+
spec:
30+
backend:
31+
k8sSearch:
32+
searchNamespace:
33+
pod: {}
34+
---
35+
apiVersion: v1
36+
kind: Secret
37+
metadata:
38+
name: minio-credentials
39+
labels:
40+
secrets.stackable.tech/class: minio-credentials-class
41+
stringData:
42+
accessKey: spark
43+
secretKey: sparkspark
44+
---
45+
apiVersion: s3.stackable.tech/v1alpha1
46+
kind: S3Connection
47+
metadata:
48+
name: minio
49+
spec:
50+
host: minio
51+
port: 9000
52+
accessStyle: Path
53+
credentials:
54+
secretClass: minio-credentials-class
55+
{% if test_scenario['values']['s3-use-tls'] == 'true' %}
56+
tls:
57+
verification:
58+
server:
59+
caCert:
60+
secretClass: minio-tls-ca
61+
{% endif %}
62+
---
63+
apiVersion: s3.stackable.tech/v1alpha1
64+
kind: S3Bucket
65+
metadata:
66+
name: ingest-bucket
67+
spec:
68+
bucketName: ingest-bucket
69+
connection:
70+
reference: minio

0 commit comments

Comments
 (0)