Skip to content

Commit 31c3a2b

Browse files
replace world parameters with env variables
Issue: ZENKO-5182
1 parent 61ce181 commit 31c3a2b

File tree

9 files changed

+34
-36
lines changed

9 files changed

+34
-36
lines changed

.github/scripts/end2end/load-config.sh

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ load_common() {
3737
ENV_VARS=()
3838

3939
# From end2end.yaml
40-
ENV_VARS+=("SUBDOMAIN=$(get_env_var SUBDOMAIN)")
4140
ENV_VARS+=("KEYCLOAK_TEST_REALM_NAME=$(get_env_var OIDC_REALM)")
4241
ENV_VARS+=("KEYCLOAK_TEST_CLIENT_ID=$(get_env_var OIDC_CLIENT_ID)")
4342
ENV_VARS+=("KEYCLOAK_TEST_USER=$(get_env_var OIDC_USERNAME)")
@@ -47,8 +46,7 @@ load_common() {
4746
ENV_VARS+=("KEYCLOAK_TEST_GRANT_TYPE=password")
4847
ENV_VARS+=("AZURE_ACCOUNT_NAME=$(get_env_var AZURE_ACCOUNT_NAME)")
4948
ENV_VARS+=("AZURE_SECRET_KEY=$(get_env_var AZURE_SECRET_KEY)")
50-
ENV_VARS+=("CLOUDSERVER_ENDPOINT=http://end2end-connector-s3api.default.svc.cluster.local:80")
51-
ENV_VARS+=("VAULT_ENDPOINT=http://end2end-management-vault-iam-admin-api:80")
49+
ENV_VARS+=("AZURE_BACKEND_ENDPOINT=$(get_env_var AZURE_BACKEND_ENDPOINT)")
5250

5351
# From k8s: Zenko account credentials
5452
ENV_VARS+=("ZENKO_ACCESS_KEY=$(kubectl get secret end2end-account-zenko -o jsonpath='{.data.AccessKeyId}' | base64 -d)")
@@ -65,7 +63,11 @@ load_common() {
6563
load_ctst() {
6664
load_common
6765

66+
# From end2end.yaml
67+
ENV_VARS+=("SUBDOMAIN=$(get_env_var SUBDOMAIN)")
68+
6869
# Hardcoded CTST values
70+
ENV_VARS+=("SSL=false")
6971
ENV_VARS+=("ZENKO_ACCOUNT_NAME=zenko-ctst")
7072
ENV_VARS+=("STORAGE_MANAGER_USER_NAME=ctst_storage_manager")
7173
ENV_VARS+=("STORAGE_ACCOUNT_OWNER_USER_NAME=ctst_storage_account_owner")
@@ -79,7 +81,6 @@ load_ctst() {
7981
# From end2end.yaml
8082
ENV_VARS+=("DR_SUBDOMAIN=$(get_env_var DR_SUBDOMAIN)")
8183
ENV_VARS+=("PROMETHEUS_NAME=$(get_env_var PROMETHEUS_NAME)")
82-
ENV_VARS+=("AZURE_BACKEND_ENDPOINT=$(get_env_var AZURE_BACKEND_ENDPOINT)")
8384
ENV_VARS+=("AZURE_BACKEND_QUEUE_ENDPOINT=$(get_env_var AZURE_BACKEND_QUEUE_ENDPOINT)")
8485
ENV_VARS+=("AZURE_ARCHIVE_BUCKET_NAME=$(get_env_var AZURE_ARCHIVE_BUCKET_NAME)")
8586
ENV_VARS+=("AZURE_ARCHIVE_BUCKET_NAME_2=$(get_env_var AZURE_ARCHIVE_BUCKET_NAME_2)")
@@ -163,7 +164,6 @@ load_e2e() {
163164
ENV_VARS+=("GCP_SECRET_KEY=$(get_env_var GCP_SECRET_KEY)")
164165
ENV_VARS+=("GCP_BACKEND_SERVICE_KEY=$(get_env_var GCP_BACKEND_SERVICE_KEY)")
165166
ENV_VARS+=("GCP_BACKEND_SERVICE_EMAIL=$(get_env_var GCP_BACKEND_SERVICE_EMAIL)")
166-
ENV_VARS+=("AZURE_BACKEND_ENDPOINT=$(get_env_var AZURE_BACKEND_ENDPOINT)")
167167
ENV_VARS+=("AWS_ENDPOINT=$(get_env_var AWS_ENDPOINT)")
168168
ENV_VARS+=("AWS_ACCESS_KEY=$(get_env_var AWS_ACCESS_KEY)")
169169
ENV_VARS+=("AWS_SECRET_KEY=$(get_env_var AWS_SECRET_KEY)")
@@ -185,6 +185,8 @@ load_e2e() {
185185

186186
# Derived endpoints
187187
ENV_VARS+=("CLOUDSERVER_HOST=end2end-connector-s3api.default.svc.cluster.local")
188+
ENV_VARS+=("CLOUDSERVER_ENDPOINT=http://end2end-connector-s3api.default.svc.cluster.local:80")
189+
ENV_VARS+=("VAULT_ENDPOINT=http://end2end-management-vault-iam-admin-api:80")
188190
ENV_VARS+=("VAULT_STS_ENDPOINT=http://end2end-connector-vault-sts-api:80")
189191
ENV_VARS+=("BACKBEAT_API_ENDPOINT=http://end2end-management-backbeat-api.default.svc.cluster.local:80")
190192

.github/scripts/end2end/run-e2e-ctst.sh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,6 @@ UTILIZATION_SERVICE_PORT="80"
9090
# Setting CTST world params
9191
WORLD_PARAMETERS="$(jq -c <<EOF
9292
{
93-
"subdomain":"${SUBDOMAIN}",
94-
"DRSubdomain":"${DR_SUBDOMAIN}",
95-
"ssl":false,
96-
"port":"${ZENKO_PORT}",
97-
"AccountName":"${ZENKO_ACCOUNT_NAME}",
9893
"AdminAccessKey":"${ADMIN_ACCESS_KEY_ID}",
9994
"AdminSecretKey":"${ADMIN_SECRET_ACCESS_KEY}",
10095
"VaultAuthHost":"${VAULT_AUTH_HOST}",

tests/ctst/common/common.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,14 @@ async function createBucket(world: Zenko, versioning: string, bucketName: string
125125

126126
Given('a {string} bucket with dot', async function (this: Zenko, versioning: string) {
127127
const preName = this.getSaved<string>('accountName') ||
128-
this.parameters.AccountName || Constants.ACCOUNT_NAME;
128+
process.env.ZENKO_ACCOUNT_NAME || Constants.ACCOUNT_NAME;
129129
await createBucket(this, versioning,
130130
`${preName}.${Constants.BUCKET_NAME_TEST}${Utils.randomString()}`.toLocaleLowerCase());
131131
});
132132

133133
Given('a {string} bucket', async function (this: Zenko, versioning: string) {
134134
const preName = this.getSaved<string>('accountName') ||
135-
this.parameters.AccountName || Constants.ACCOUNT_NAME;
135+
process.env.ZENKO_ACCOUNT_NAME || Constants.ACCOUNT_NAME;
136136
await createBucket(this, versioning,
137137
`${preName}${Constants.BUCKET_NAME_TEST}${Utils.randomString()}`.toLocaleLowerCase());
138138
});

tests/ctst/common/hooks.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ Before({ tags: '@UtilizationAPI', timeout: 1200000 }, async function (scenarioOp
6262

6363
After(async function (this: Zenko, results) {
6464
// Reset any configuration set on the endpoint (ssl, port)
65-
CacheHelper.parameters.ssl = this.parameters.ssl;
66-
CacheHelper.parameters.port = this.parameters.port;
65+
CacheHelper.parameters.ssl = process.env.SSL === 'true';
66+
CacheHelper.parameters.port = process.env.ZENKO_PORT;
6767
if (results.result?.status === 'FAILED') {
6868
this.logger.warn('bucket was not cleaned for test', {
6969
bucket: this.getSaved<string>('bucketName'),

tests/ctst/steps/cloudserverAuth.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ When('the user tries to perform CreateBucket', async function (this: Zenko) {
3636
this.resetCommand();
3737
this.useSavedIdentity();
3838
const preName = this.getSaved<string>('accountName') ||
39-
this.parameters.AccountName || Constants.ACCOUNT_NAME;
39+
process.env.ZENKO_ACCOUNT_NAME || Constants.ACCOUNT_NAME;
4040
const usedBucketName = `${preName}${Constants.BUCKET_NAME_TEST}${Utils.randomString()}`.toLocaleLowerCase();
4141
this.addToSaved('bucketName', usedBucketName);
4242
this.addCommandParameter({ bucket: usedBucketName });

tests/ctst/steps/iam-policies/common.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ When('the user tries to perform vault auth {string}', async function (this: Zenk
3535
switch (action) {
3636
case 'GetAccountInfo':
3737
this.setResult(await VaultAuth.getAccounts([
38-
this.getSaved<string>('accountNameForScenario') || this.parameters.AccountName,
38+
this.getSaved<string>('accountNameForScenario') || process.env.ZENKO_ACCOUNT_NAME,
3939
], null, null, {
4040
// @ts-expect-error accountNames is not generated by CTST yet
4141
accountNames: true,

tests/ctst/steps/replication.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ When('the job to replicate existing objects with status {string} is executed',
2626
const s3utilsVersion = zenkoVersion.spec.versions.s3utils;
2727
const credentials = Identity.getCredentialsForIdentity(
2828
IdentityEnum.ACCOUNT,
29-
this.parameters.AccountName
29+
process.env.ZENKO_ACCOUNT_NAME
3030
);
3131
const podManifest = {
3232
apiVersion: 'v1',

tests/ctst/steps/website/website.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ When('the user creates an S3 Bucket policy granting public read access', async f
5858

5959
Then('the user should be able to load the index.html file from the {string} endpoint',
6060
async function (this: Zenko, endpoint: string) {
61-
const baseUrl = this.parameters.ssl === false ? 'http://' : 'https://';
61+
const baseUrl = process.env.SSL === 'false' ? 'http://' : 'https://';
6262
// The ingress may take some time to be ready (<60s)
6363
const uri = `${baseUrl}${this.getSaved<string>('bucketName')}.${endpoint}`;
6464
let response;

tests/ctst/world/Zenko.ts

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ export enum EntityType {
4444
}
4545

4646
export interface ZenkoWorldParameters extends ClientOptions {
47-
AccountName: string;
47+
// AccountName: string;
4848
AccountAccessKey: string;
4949
AccountSecretKey: string;
5050
DRAdminAccessKey?: string;
5151
DRAdminSecretKey?: string;
52-
DRSubdomain?: string;
52+
// DRSubdomain?: string;
5353
VaultAuthHost: string;
5454
NotificationDestination: string;
5555
NotificationDestinationTopic: string;
@@ -141,11 +141,11 @@ export default class Zenko extends World<ZenkoWorldParameters> {
141141
const serviceUserCredentials =
142142
JSON.parse(this.parameters.ServiceUsersCredentials) as Record<string, ServiceUsersCredentials>;
143143
for (const serviceUserName in serviceUserCredentials) {
144-
if (!Identity.hasIdentity(IdentityEnum.SERVICE_USER, serviceUserName, this.parameters.AccountName)) {
144+
if (!Identity.hasIdentity(IdentityEnum.SERVICE_USER, serviceUserName, process.env.ZENKO_ACCOUNT_NAME)) {
145145
Identity.addIdentity(IdentityEnum.SERVICE_USER, serviceUserName, {
146146
accessKeyId: serviceUserCredentials[serviceUserName].accessKey,
147147
secretAccessKey: serviceUserCredentials[serviceUserName].secretKey,
148-
}, this.parameters.AccountName);
148+
}, process.env.ZENKO_ACCOUNT_NAME);
149149
}
150150
}
151151
}
@@ -158,24 +158,25 @@ export default class Zenko extends World<ZenkoWorldParameters> {
158158
CacheHelper.savedAcrossTests[Zenko.PRA_INSTALL_COUNT_KEY] = 0;
159159

160160

161-
if (this.parameters.AccountName && !Identity.hasIdentity(IdentityEnum.ACCOUNT, this.parameters.AccountName)) {
162-
Identity.addIdentity(IdentityEnum.ACCOUNT, this.parameters.AccountName, {
161+
if (process.env.ZENKO_ACCOUNT_NAME &&
162+
!Identity.hasIdentity(IdentityEnum.ACCOUNT, process.env.ZENKO_ACCOUNT_NAME)) {
163+
Identity.addIdentity(IdentityEnum.ACCOUNT, process.env.ZENKO_ACCOUNT_NAME, {
163164
accessKeyId: this.parameters.AccountAccessKey,
164165
secretAccessKey: this.parameters.AccountSecretKey,
165166
});
166167
}
167168

168-
if (this.parameters.AccountName) {
169-
Identity.useIdentity(IdentityEnum.ACCOUNT, this.parameters.AccountName);
170-
Identity.defaultAccountName = this.parameters.AccountName;
169+
if (process.env.ZENKO_ACCOUNT_NAME) {
170+
Identity.useIdentity(IdentityEnum.ACCOUNT, process.env.ZENKO_ACCOUNT_NAME);
171+
Identity.defaultAccountName = process.env.ZENKO_ACCOUNT_NAME;
171172
}
172173

173174
if (this.parameters.AdminAccessKey && this.parameters.AdminSecretKey &&
174175
!Identity.hasIdentity(IdentityEnum.ADMIN, Zenko.PRIMARY_SITE_NAME)) {
175176
Identity.addIdentity(IdentityEnum.ADMIN, Zenko.PRIMARY_SITE_NAME, {
176177
accessKeyId: this.parameters.AdminAccessKey,
177178
secretAccessKey: this.parameters.AdminSecretKey,
178-
}, undefined, undefined, undefined, this.parameters.Subdomain);
179+
}, undefined, undefined, undefined, process.env.SUBDOMAIN);
179180

180181
Zenko.sites['source'] = {
181182
accountName: Identity.defaultAccountName,
@@ -188,11 +189,11 @@ export default class Zenko extends World<ZenkoWorldParameters> {
188189
Identity.addIdentity(IdentityEnum.ADMIN, Zenko.SECONDARY_SITE_NAME, {
189190
accessKeyId: this.parameters.DRAdminAccessKey!,
190191
secretAccessKey: this.parameters.DRAdminSecretKey!,
191-
}, undefined, undefined, undefined, this.parameters.DRSubdomain);
192+
}, undefined, undefined, undefined, process.env.DR_SUBDOMAIN);
192193
}
193194

194195
Zenko.sites['sink'] = {
195-
accountName: `dr${this.parameters.AccountName}`,
196+
accountName: `dr${process.env.ZENKO_ACCOUNT_NAME}`,
196197
adminIdentityName: Zenko.SECONDARY_SITE_NAME,
197198
};
198199
}
@@ -203,7 +204,7 @@ export default class Zenko extends World<ZenkoWorldParameters> {
203204
}
204205

205206
private needsSecondarySite() {
206-
return this.parameters.DRAdminAccessKey && this.parameters.DRAdminSecretKey && this.parameters.DRSubdomain;
207+
return this.parameters.DRAdminAccessKey && this.parameters.DRAdminSecretKey && process.env.DR_SUBDOMAIN;
207208
}
208209

209210
/**
@@ -411,7 +412,7 @@ export default class Zenko extends World<ZenkoWorldParameters> {
411412
clientId: string,
412413
grantType: string,
413414
): Promise<string> {
414-
const baseUrl = this.parameters.ssl === false ? 'http://' : 'https://';
415+
const baseUrl = process.env.SSL === 'false' ? 'http://' : 'https://';
415416
const data = qs.stringify({
416417
username,
417418
password,
@@ -899,10 +900,10 @@ export default class Zenko extends World<ZenkoWorldParameters> {
899900

900901
const axiosInstance = axios.create();
901902
axiosInstance.interceptors.request.use(interceptor);
902-
const protocol = this.parameters.ssl === false ? 'http://' : 'https://';
903+
const protocol = process.env.SSL === 'false' ? 'http://' : 'https://';
903904
const axiosConfig: AxiosRequestConfig = {
904905
method,
905-
url: `${protocol}s3.${this.parameters.Subdomain
906+
url: `${protocol}s3.${process.env.SUBDOMAIN
906907
|| Constants.DEFAULT_SUBDOMAIN}${path}`,
907908
headers,
908909
data: payload,
@@ -949,15 +950,15 @@ export default class Zenko extends World<ZenkoWorldParameters> {
949950
this.parameters.KeycloakGrantType || 'password',
950951
);
951952
const axiosInstance = axios.create();
952-
const protocol = this.parameters.ssl === false ? 'http://' : 'https://';
953+
const protocol = process.env.SSL === 'false' ? 'http://' : 'https://';
953954
// eslint-disable-next-line no-param-reassign
954955
headers = {
955956
...headers,
956957
'X-Authentication-Token': token,
957958
};
958959
const axiosConfig: AxiosRequestConfig = {
959960
method,
960-
url: `${protocol}management.${this.parameters.Subdomain || Constants.DEFAULT_SUBDOMAIN}/api/v1${path}`,
961+
url: `${protocol}management.${process.env.SUBDOMAIN || Constants.DEFAULT_SUBDOMAIN}/api/v1${path}`,
961962
headers,
962963
data: payload,
963964
};

0 commit comments

Comments
 (0)