@@ -13,145 +13,37 @@ JUNIT_REPORT_PATH=${JUNIT_REPORT_PATH:-"ctst-junit.xml"}
13
13
# Zenko Version
14
14
VERSION=$( cat ../../../VERSION | grep -Po ' VERSION="\K[^"]*' )
15
15
16
- # Zenko Environment
17
- ZENKO_ACCOUNT_NAME=" zenko-ctst"
18
- ADMIN_ACCESS_KEY_ID=$( kubectl get secret end2end-management-vault-admin-creds.v1 -o jsonpath=' {.data.accessKey}' | base64 -d)
19
- ADMIN_SECRET_ACCESS_KEY=$( kubectl get secret end2end-management-vault-admin-creds.v1 -o jsonpath=' {.data.secretKey}' | base64 -d)
20
- ADMIN_PRA_ACCESS_KEY_ID=$( kubectl get secret end2end-pra-management-vault-admin-creds.v1 -o jsonpath=' {.data.accessKey}' | base64 -d)
21
- ADMIN_PRA_SECRET_ACCESS_KEY=$( kubectl get secret end2end-pra-management-vault-admin-creds.v1 -o jsonpath=' {.data.secretKey}' | base64 -d)
22
- STORAGE_MANAGER_USER_NAME=" ctst_storage_manager"
23
- STORAGE_ACCOUNT_OWNER_USER_NAME=" ctst_storage_account_owner"
24
- DATA_CONSUMER_USER_NAME=" ctst_data_consumer"
25
- DATA_ACCESSOR_USER_NAME=" ctst_data_accessor"
26
- VAULT_AUTH_HOST=" ${ZENKO_NAME} -connector-vault-auth-api.default.svc.cluster.local"
27
- ZENKO_PORT=" 80"
28
- KEYCLOAK_TEST_USER=${OIDC_USERNAME}
29
- KEYCLOAK_TEST_PASSWORD=${OIDC_PASSWORD}
30
- KEYCLOAK_TEST_HOST=${OIDC_HOST}
31
- KEYCLOAK_TEST_PORT=" 80"
32
- KEYCLOAK_TEST_REALM_NAME=${OIDC_REALM}
33
- KEYCLOAK_TEST_CLIENT_ID=${OIDC_CLIENT_ID}
34
- KEYCLOAK_TEST_GRANT_TYPE=" password"
16
+ # Minimal environment setup - CTST will handle all Kubernetes discovery
35
17
36
- # get Zenko service users credentials
37
- BACKBEAT_LCBP_1_CREDS=$( kubectl get secret -l app.kubernetes.io/name=backbeat-lcbp-user-creds,app.kubernetes.io/instance=end2end -o jsonpath=' {.items[0].data.backbeat-lifecycle-bp-1\.json}' | base64 -d)
38
- BACKBEAT_LCC_1_CREDS=$( kubectl get secret -l app.kubernetes.io/name=backbeat-lcc-user-creds,app.kubernetes.io/instance=end2end -o jsonpath=' {.items[0].data.backbeat-lifecycle-conductor-1\.json}' | base64 -d)
39
- BACKBEAT_LCOP_1_CREDS=$( kubectl get secret -l app.kubernetes.io/name=backbeat-lcop-user-creds,app.kubernetes.io/instance=end2end -o jsonpath=' {.items[0].data.backbeat-lifecycle-op-1\.json}' | base64 -d)
40
- BACKBEAT_QP_1_CREDS=$( kubectl get secret -l app.kubernetes.io/name=backbeat-qp-user-creds,app.kubernetes.io/instance=end2end -o jsonpath=' {.items[0].data.backbeat-qp-1\.json}' | base64 -d)
41
- SORBET_FWD_2_ACCESSKEY=$( kubectl get secret -l app.kubernetes.io/name=sorbet-fwd-creds,app.kubernetes.io/instance=end2end -o jsonpath=' {.items[0].data.accessKey}' | base64 -d)
42
- SORBET_FWD_2_SECRETKEY=$( kubectl get secret -l app.kubernetes.io/name=sorbet-fwd-creds,app.kubernetes.io/instance=end2end -o jsonpath=' {.items[0].data.secretKey}' | base64 -d)
43
- SERVICE_USERS_CREDENTIALS=$( echo ' {"backbeat-lifecycle-bp-1":' ${BACKBEAT_LCBP_1_CREDS} ' ,"backbeat-lifecycle-conductor-1":' ${BACKBEAT_LCC_1_CREDS} ' ,"backbeat-lifecycle-op-1":' ${BACKBEAT_LCOP_1_CREDS} ' ,"backbeat-qp-1":' ${BACKBEAT_QP_1_CREDS} ' ,"sorbet-fwd-2":{"accessKey":"' ${SORBET_FWD_2_ACCESSKEY} ' ","secretKey":"' ${SORBET_FWD_2_SECRETKEY} ' "}}' | jq -R)
44
-
45
- # Get KAFKA topics for sorbet
46
- KAFKA_DEAD_LETTER_TOPIC=$( kubectl get secret -l app.kubernetes.io/name=cold-sorbet-config-e2e-azure-archive,app.kubernetes.io/instance=end2end \
47
- -o jsonpath=' {.items[0].data.config\.json}' | base64 -di | jq ' ."kafka-dead-letter-topic"' | cut -d " \" " -f 2)
48
-
49
- KAFKA_OBJECT_TASK_TOPIC=$( kubectl get secret -l app.kubernetes.io/name=cold-sorbet-config-e2e-azure-archive,app.kubernetes.io/instance=end2end \
50
- -o jsonpath=' {.items[0].data.config\.json}' | base64 -di | jq ' ."kafka-object-task-topic"' | cut -d " \" " -f 2)
51
-
52
- KAFKA_GC_REQUEST_TOPIC=$( kubectl get secret -l app.kubernetes.io/name=cold-sorbet-config-e2e-azure-archive,app.kubernetes.io/instance=end2end \
53
- -o jsonpath=' {.items[0].data.config\.json}' | base64 -di | jq ' ."kafka-gc-request-topic"' | cut -d " \" " -f 2)
54
-
55
- DR_ADMIN_ACCESS_KEY_ID=$( kubectl get secret end2end-pra-management-vault-admin-creds.v1 -o jsonpath=' {.data.accessKey}' | base64 -d)
56
- DR_ADMIN_SECRET_ACCESS_KEY=$( kubectl get secret end2end-pra-management-vault-admin-creds.v1 -o jsonpath=' {.data.secretKey}' | base64 -d)
57
-
58
- # Extracting kafka host from bacbeat's config
59
- KAFKA_HOST_PORT=$( kubectl get secret -l app.kubernetes.io/name=backbeat-config,app.kubernetes.io/instance=end2end \
60
- -o jsonpath=' {.items[0].data.config\.json}' | base64 -di | jq .kafka.hosts)
61
- KAFKA_HOST_PORT=${KAFKA_HOST_PORT: 1:- 1}
62
-
63
- TIME_PROGRESSION_FACTOR=$( kubectl get zenko ${ZENKO_NAME} -o jsonpath=" {.metadata.annotations.zenko\.io/time-progression-factor}" )
64
- INSTANCE_ID=$( kubectl get zenko ${ZENKO_NAME} -o jsonpath=' {.status.instanceID}' )
65
-
66
- # Azure archive tests
67
- AZURE_ARCHIVE_ACCESS_TIER=" Hot"
68
- AZURE_ARCHIVE_MANIFEST_ACCESS_TIER=" Hot"
69
-
70
- BACKBEAT_API_HOST=$( kubectl get secret -l app.kubernetes.io/name=connector-cloudserver-config,app.kubernetes.io/instance=end2end -o jsonpath=' {.items[0].data.config\.json}' | base64 -di | jq .backbeat.host)
71
- BACKBEAT_API_HOST=${BACKBEAT_API_HOST: 1:- 1}
72
- BACKBEAT_API_PORT=$( kubectl get secret -l app.kubernetes.io/name=connector-cloudserver-config,app.kubernetes.io/instance=end2end -o jsonpath=' {.items[0].data.config\.json}' | base64 -di | jq .backbeat.port)
73
-
74
- KAFKA_CLEANER_INTERVAL=$( kubectl get zenko ${ZENKO_NAME} -o jsonpath=' {.spec.kafkaCleaner.interval}' )
75
- SORBETD_RESTORE_TIMEOUT=$( kubectl get zenko ${ZENKO_NAME} -o jsonpath=' {.spec.sorbet.server.azure.restoreTimeout}' )
76
-
77
- # Utilization service
78
- UTILIZATION_SERVICE_HOST=$( kubectl get zenko ${ZENKO_NAME} -o jsonpath=' {.spec.scuba.api.ingress.hostname}' )
79
- UTILIZATION_SERVICE_PORT=" 80"
80
-
81
- # Setting CTST world params
18
+ # Minimal CTST world params - CTST handles all Kubernetes discovery
82
19
WORLD_PARAMETERS=" $( jq -c << EOF
83
20
{
21
+ "Namespace":"default",
84
22
"subdomain":"${SUBDOMAIN} ",
85
23
"DRSubdomain":"${DR_SUBDOMAIN} ",
86
- "ssl":false,
87
- "port":"${ZENKO_PORT} ",
88
- "AccountName":"${ZENKO_ACCOUNT_NAME} ",
89
- "AdminAccessKey":"${ADMIN_ACCESS_KEY_ID} ",
90
- "AdminSecretKey":"${ADMIN_SECRET_ACCESS_KEY} ",
91
- "VaultAuthHost":"${VAULT_AUTH_HOST} ",
92
- "NotificationDestination":"${NOTIF_DEST_NAME} ",
93
- "NotificationDestinationTopic":"${NOTIF_DEST_TOPIC} ",
94
- "NotificationDestinationAlt":"${NOTIF_ALT_DEST_NAME} ",
95
- "NotificationDestinationTopicAlt":"${NOTIF_ALT_DEST_TOPIC} ",
96
- "KafkaExternalIps": "${KAFKA_EXTERNAL_IP:- } ",
97
- "PrometheusService":"${PROMETHEUS_NAME} -operated.default.svc.cluster.local",
98
- "KafkaHosts":"${KAFKA_HOST_PORT} ",
99
- "KeycloakUsername":"${KEYCLOAK_TEST_USER} ",
100
- "KeycloakPassword":"${KEYCLOAK_TEST_PASSWORD} ",
101
- "KeycloakHost":"${KEYCLOAK_TEST_HOST} ",
102
- "KeycloakPort":"${KEYCLOAK_TEST_PORT} ",
103
- "keycloakRealm":"${KEYCLOAK_TEST_REALM_NAME} ",
104
- "keycloakClientId":"${KEYCLOAK_TEST_CLIENT_ID} ",
105
- "keycloakGrantType":"${KEYCLOAK_TEST_GRANT_TYPE} ",
106
- "StorageManagerUsername":"${STORAGE_MANAGER_USER_NAME} ",
107
- "StorageAccountOwnerUsername":"${STORAGE_ACCOUNT_OWNER_USER_NAME} ",
108
- "DataConsumerUsername":"${DATA_CONSUMER_USER_NAME} ",
109
- "DataAccessorUsername":"${DATA_ACCESSOR_USER_NAME} ",
110
- "ServiceUsersCredentials":${SERVICE_USERS_CREDENTIALS} ,
111
- "AzureAccountName":"${AZURE_ACCOUNT_NAME} ",
112
- "AzureAccountKey":"${AZURE_SECRET_KEY} ",
113
- "AzureArchiveContainer":"${AZURE_ARCHIVE_BUCKET_NAME} ",
114
- "AzureArchiveContainer2":"${AZURE_ARCHIVE_BUCKET_NAME_2} ",
115
- "AzureArchiveAccessTier":"${AZURE_ARCHIVE_ACCESS_TIER} ",
116
- "AzureArchiveManifestTier":"${AZURE_ARCHIVE_MANIFEST_ACCESS_TIER} ",
117
- "AzureArchiveQueue":"${AZURE_ARCHIVE_QUEUE_NAME} ",
118
- "TimeProgressionFactor":"${TIME_PROGRESSION_FACTOR} ",
119
- "KafkaObjectTaskTopic":"${KAFKA_OBJECT_TASK_TOPIC} ",
120
- "KafkaGCRequestTopic":"${KAFKA_GC_REQUEST_TOPIC} ",
121
- "KafkaDeadLetterQueueTopic":"${KAFKA_DEAD_LETTER_TOPIC} ",
122
- "InstanceID":"${INSTANCE_ID} ",
123
- "BackbeatApiHost":"${BACKBEAT_API_HOST} ",
124
- "BackbeatApiPort":"${BACKBEAT_API_PORT} ",
125
- "KafkaCleanerInterval":"${KAFKA_CLEANER_INTERVAL} ",
126
- "SorbetdRestoreTimeout":"${SORBETD_RESTORE_TIMEOUT} ",
127
- "TimeProgressionFactor":"${TIME_PROGRESSION_FACTOR} ",
128
- "DRAdminAccessKey":"${DR_ADMIN_ACCESS_KEY_ID} ",
129
- "DRAdminSecretKey":"${DR_ADMIN_SECRET_ACCESS_KEY} ",
130
- "UtilizationServiceHost":"${UTILIZATION_SERVICE_HOST} ",
131
- "UtilizationServicePort":"${UTILIZATION_SERVICE_PORT} "
24
+ "KeycloakUsername":"${OIDC_USERNAME:- testuser} ",
25
+ "KeycloakPassword":"${OIDC_PASSWORD:- testpass} ",
26
+ "KeycloakHost":"${OIDC_HOST:- keycloak.zenko.local} ",
27
+ "KeycloakRealm":"${OIDC_REALM:- zenko} ",
28
+ "KeycloakClientId":"${OIDC_CLIENT_ID:- zenko-ui} ",
29
+ "AzureAccountName":"${AZURE_ACCOUNT_NAME:- devstoreaccount1} ",
30
+ "AzureAccountKey":"${AZURE_SECRET_KEY:- Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/ K1SZFPTOtr/ KBHBeksoGMGw==} ",
31
+ "AzureArchiveContainer":"${AZURE_ARCHIVE_BUCKET_NAME:- archive-container} ",
32
+ "AzureArchiveContainer2":"${AZURE_ARCHIVE_BUCKET_NAME_2:- archive-container-2} ",
33
+ "AzureArchiveQueue":"${AZURE_ARCHIVE_QUEUE_NAME:- archive-queue} "
132
34
}
133
35
EOF
134
36
) "
135
37
136
- # Set up environment variables for testing
137
- kubectl set env deployment end2end-connector-cloudserver SCUBA_HEALTHCHECK_FREQUENCY=100
138
- kubectl rollout status deployment end2end-connector-cloudserver
139
-
140
38
E2E_IMAGE=$E2E_CTST_IMAGE_NAME :$E2E_IMAGE_TAG
141
39
POD_NAME=" ${ZENKO_NAME} -ctst-tests"
142
40
CTST_VERSION=$( sed ' s/.*"cli-testing": ".*#\(.*\)".*/\1/;t;d' ../../../tests/ctst/package.json)
143
41
144
- # Configure keycloak
145
- docker run \
146
- --rm \
147
- --network=host \
148
- " ${E2E_IMAGE} " /bin/bash \
149
- -c " SUBDOMAIN=${SUBDOMAIN} CONTROL_PLANE_INGRESS_ENDPOINT=${OIDC_ENDPOINT} ACCOUNT=${ZENKO_ACCOUNT_NAME} KEYCLOAK_REALM=${KEYCLOAK_TEST_REALM_NAME} STORAGE_MANAGER=${STORAGE_MANAGER_USER_NAME} STORAGE_ACCOUNT_OWNER=${STORAGE_ACCOUNT_OWNER_USER_NAME} DATA_CONSUMER=${DATA_CONSUMER_USER_NAME} DATA_ACCESSOR=${DATA_ACCESSOR_USER_NAME} /ctst/bin/seedKeycloak.sh" ; [[ $? -eq 1 ]] && exit 1 || echo ' Keycloak Configured!'
150
-
151
- # Grant access to Kube API (insecure, only for testing)
152
- kubectl create clusterrolebinding serviceaccounts-cluster-admin \
42
+ # Grant CTST cluster-admin permissions (test environment only)
43
+ kubectl create clusterrolebinding ctst-cluster-admin \
153
44
--clusterrole=cluster-admin \
154
- --group=system:serviceaccounts
45
+ --serviceaccount=default:default \
46
+ --dry-run=client -o yaml | kubectl apply -f -
155
47
156
48
# Running end2end ctst tests
157
49
# Using overrides as we need to attach a local folder to the pod
0 commit comments