Skip to content

Commit 225df05

Browse files
authored
test: enable auth providers for nightly jobs (redhat-developer#1923)
* enable auth providers for nightly jobs * enable auth providers for nightly jobs * enable auth providers for nightly jobs * enable auth providers for nightly jobs * enable auth providers for nightly jobs * fix error * fix error * fix error * fixes * fix helm delete * fix login timeout * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix timeouts * fix gh test * add config for nightly job * fix lint errors * fix lint errors
1 parent dc832f5 commit 225df05

22 files changed

+2194
-1380
lines changed

.ibm/pipelines/env_variables.sh

+29
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,33 @@ GKE_SERVICE_ACCOUNT_NAME=$(cat /tmp/secrets/GKE_SERVICE_ACCOUNT_NAME)
107107
GKE_CERT_NAME=$(cat /tmp/secrets/GKE_CERT_NAME)
108108
GOOGLE_CLOUD_PROJECT=$(cat /tmp/secrets/GOOGLE_CLOUD_PROJECT)
109109

110+
# authentication providers variables
111+
RHSSO76_ADMIN_USERNAME=$(cat /tmp/secrets/RHSSO76_ADMIN_USERNAME)
112+
RHSSO76_ADMIN_PASSWORD=$(cat /tmp/secrets/RHSSO76_ADMIN_PASSWORD)
113+
RHSSO76_DEFAULT_PASSWORD=$(cat /tmp/secrets/RHSSO76_DEFAULT_PASSWORD)
114+
RHSSO76_URL=$(cat /tmp/secrets/RHSSO76_URL)
115+
RHSSO76_CLIENT_SECRET=$(cat /tmp/secrets/RHSSO76_CLIENT_SECRET)
116+
RHSSO76_CLIENT_ID="myclient"
117+
AUTH_PROVIDERS_REALM_NAME="authProviders"
118+
119+
AZURE_LOGIN_USERNAME=$(cat /tmp/secrets/AZURE_LOGIN_USERNAME)
120+
AZURE_LOGIN_PASSWORD=$(cat /tmp/secrets/AZURE_LOGIN_PASSWORD)
121+
AUTH_PROVIDERS_AZURE_CLIENT_ID=$(cat /tmp/secrets/AUTH_PROVIDERS_AZURE_CLIENT_ID)
122+
AUTH_PROVIDERS_AZURE_CLIENT_SECRET=$(cat /tmp/secrets/AUTH_PROVIDERS_AZURE_CLIENT_SECRET)
123+
AUTH_PROVIDERS_AZURE_TENANT_ID=$(cat /tmp/secrets/AUTH_PROVIDERS_AZURE_TENANT_ID)
124+
125+
AUTH_PROVIDERS_GH_ORG_NAME="rhdhqeauthorg"
126+
AUTH_ORG_APP_ID=$(cat /tmp/secrets/AUTH_ORG_APP_ID)
127+
AUTH_ORG_CLIENT_ID=$(cat /tmp/secrets/AUTH_ORG_CLIENT_ID)
128+
AUTH_ORG_CLIENT_SECRET=$(cat /tmp/secrets/AUTH_ORG_CLIENT_SECRET)
129+
AUTH_ORG1_PRIVATE_KEY=$(cat /tmp/secrets/AUTH_ORG1_PRIVATE_KEY)
130+
AUTH_ORG_PK=$(cat /tmp/secrets/AUTH_ORG_PK)
131+
AUTH_ORG_WEBHOOK_SECRET=$(cat /tmp/secrets/AUTH_ORG_WEBHOOK_SECRET)
132+
GH_USER_PASSWORD=$(cat /tmp/secrets/GH_USER_PASSWORD)
133+
134+
AUTH_PROVIDERS_RELEASE="rhdh-auth-providers"
135+
AUTH_PROVIDERS_NAMESPACE="showcase-auth-providers"
136+
STATIC_API_TOKEN="somecicdtoken"
137+
AUTH_PROVIDERS_CHART="rhdh-chart/backstage"
138+
110139
set +a # Stop automatically exporting variables

.ibm/pipelines/openshift-ci-tests.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,11 @@ run_tests() {
282282
cp -a /tmp/backstage-showcase/e2e-tests/${JUNIT_RESULTS} "${ARTIFACT_DIR}/${project}/${JUNIT_RESULTS}"
283283

284284
if [ -d "/tmp/backstage-showcase/e2e-tests/screenshots" ]; then
285-
cp -a /tmp/backstage-showcase/e2e-tests/screenshots/* "${ARTIFACT_DIR}/${project}/attachments/screenshots/"
285+
cp -a /tmp/backstage-showcase/e2e-tests/screenshots/* "${ARTIFACT_DIR}/${project}/attachments/screenshots/"
286+
fi
287+
288+
if [ -d "/tmp/backstage-showcase/e2e-tests/auth-providers-logs" ]; then
289+
cp -a /tmp/backstage-showcase/e2e-tests/auth-providers-logs/* "${ARTIFACT_DIR}/${project}/"
286290
fi
287291

288292
ansi2html <"/tmp/${LOGFILE}" >"/tmp/${LOGFILE}.html"
@@ -487,6 +491,8 @@ main() {
487491
initiate_rbac_gke_deployment
488492
check_and_test "${RELEASE_NAME_RBAC}" "${NAME_SPACE_RBAC_K8S}"
489493
delete_namespace "${NAME_SPACE_RBAC_K8S}"
494+
elif [[ "$JOB_NAME" == *auth-providers* ]]; then
495+
run_tests "${AUTH_PROVIDERS_RELEASE}" "${AUTH_PROVIDERS_NAMESPACE}"
490496
else
491497
initiate_deployments
492498
check_and_test "${RELEASE_NAME}" "${NAME_SPACE}"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
upstream:
2+
backstage:
3+
appConfig:
4+
auth:
5+
providers:
6+
oidc:
7+
production:
8+
metadataUrl: ${RHBK_METADATA_URL}
9+
clientId: ${RHBK_CLIENT_ID}
10+
clientSecret: ${RHBK_CLIENT_SECRET}
11+
prompt: auto
12+
callbackUrl: ${RHBK_CALLBACK_URL}
13+
catalog:
14+
providers:
15+
keycloakOrg:
16+
default:
17+
baseUrl: ${RHBK_URL}
18+
loginRealm: ${AUTH_PROVIDERS_REALM_NAME}
19+
realm: ${AUTH_PROVIDERS_REALM_NAME}
20+
clientId: ${RHBK_CLIENT_ID}
21+
clientSecret: ${RHBK_CLIENT_SECRET}
22+
schedule:
23+
frequency: { minutes: 1 }
24+
timeout: { minutes: 1 }

.ibm/pipelines/value_files/values_showcase-auth-providers.yaml

+9-2
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ upstream:
6565
githubUrl: https://github.com
6666
orgs: ['${AUTH_PROVIDERS_GH_ORG_NAME}']
6767
schedule:
68-
initialDelay: { seconds: 10 }
68+
initialDelay: { seconds: 0 }
6969
frequency: { minutes: 1 }
7070
timeout: { minutes: 1 }
7171
microsoftGraphOrg:
@@ -105,12 +105,19 @@ upstream:
105105
- name: user:default/qeadmin_rhdhtesting.onmicrosoft.com
106106
- name: user:default/rhsso_admin
107107
- name: user:default/rhdhqeauthadmin
108+
backend:
109+
auth:
110+
externalAccess:
111+
- type: static
112+
options:
113+
token: "somecicdtoken"
114+
subject: e2e-tests-ci
108115
extraEnvVarsSecrets:
109116
- rhdh-secrets
110117
image:
111118
registry: quay.io
112119
repository: rhdh/rhdh-hub-rhel9
113-
tag: '1.3'
120+
tag: 'next'
114121
readinessProbe:
115122
failureThreshold: 3
116123
httpGet:

e2e-tests/playwright.config.ts

+2-5
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,7 @@ export default defineConfig({
6767
},
6868
{
6969
name: "showcase-auth-providers",
70-
use: {
71-
...devices["Desktop Chrome"],
72-
viewport: { width: 1920, height: 1080 },
73-
},
70+
...useCommonDeviceAndViewportConfig,
7471
testMatch: ["**/playwright/e2e/authProviders/*.spec.ts"],
7572
testIgnore: [
7673
"**/playwright/e2e/authProviders/setup-environment.spec.ts",
@@ -79,7 +76,7 @@ export default defineConfig({
7976
],
8077
dependencies: ["showcase-auth-providers-setup-environment"],
8178
teardown: "showcase-auth-providers-clear-environment",
82-
retries: 2,
79+
retries: 1,
8380
},
8481
{
8582
name: "showcase-auth-providers-setup-environment",

e2e-tests/playwright/e2e/authProviders/basic-authentication.spec.ts

+21-8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import { test, Page, expect } from "@playwright/test";
22
import { Common, setupBrowser } from "../../utils/common";
33
import { UIhelper } from "../../utils/ui-helper";
44
import * as constants from "../../utils/authenticationProviders/constants";
5+
import { dumpAllPodsLogs, dumpRHDHUsersAndGroups } from "../../utils/helper";
6+
import { APIHelper } from "../../utils/api-helper";
57
import { LOGGER } from "../../utils/logger";
68
import { HelmActions } from "../../utils/helm";
79

@@ -39,16 +41,16 @@ test.describe("Standard authentication providers: Basic authentication", () => {
3941
constants.QUAY_REPO,
4042
constants.TAG_NAME,
4143
[
42-
"--set upstream.backstage.appConfig.auth.providers=null",
44+
"--set upstream.backstage.appConfig.auth.providers.guest.dangerouslyAllowOutsideDevelopment=false",
4345
"--set upstream.backstage.appConfig.auth.environment=development",
4446
"--set upstream.backstage.appConfig.catalog.providers=null",
47+
"--set upstream.backstage.appConfig.permission.enabled=false",
4548
],
4649
);
4750

4851
// Guest login should work
4952
await common.loginAsGuest();
50-
await uiHelper.openSidebar("Settings");
51-
await uiHelper.verifyHeading("Guest");
53+
await page.goto("/");
5254
await uiHelper.openSidebar("Settings");
5355
await common.signOut();
5456
});
@@ -77,6 +79,7 @@ test.describe("Standard authentication providers: Basic authentication", () => {
7779
"--set upstream.backstage.appConfig.auth.environment=development",
7880
"--set upstream.backstage.appConfig.signInPage=microsoft",
7981
"--set upstream.backstage.appConfig.catalog.providers=null",
82+
"--set upstream.backstage.appConfig.permission.enabled=false",
8083
],
8184
);
8285

@@ -112,6 +115,7 @@ test.describe("Standard authentication providers: Basic authentication", () => {
112115
"--set upstream.backstage.appConfig.signInPage=microsoft",
113116
"--set upstream.backstage.appConfig.dangerouslyAllowSignInWithoutUserInCatalog=true",
114117
"--set upstream.backstage.appConfig.catalog.providers=null",
118+
"--set upstream.backstage.appConfig.permission.enabled=false",
115119
],
116120
);
117121

@@ -124,10 +128,10 @@ test.describe("Standard authentication providers: Basic authentication", () => {
124128
await uiHelper.verifyParagraph(constants.AZURE_LOGIN_USERNAME);
125129

126130
// check no entities are in the catalog
127-
await page.goto("/catalog?filters[kind]=user&filters[user]=all");
128-
await uiHelper.verifyHeading("My Org Catalog");
129-
await uiHelper.searchInputPlaceholder(constants.AZURE_LOGIN_FIRSTNAME);
130-
await uiHelper.verifyRowsInTable(["No records to display"]);
131+
const api = new APIHelper();
132+
api.UseStaticToken(constants.STATIC_API_TOKEN);
133+
const catalogUsers = await api.getAllCatalogUsersFromAPI();
134+
expect(catalogUsers.totalItems).toBe(0);
131135
await uiHelper.openSidebar("Settings");
132136
await common.signOut();
133137
});
@@ -154,6 +158,7 @@ test.describe("Standard authentication providers: Basic authentication", () => {
154158
"--set upstream.backstage.appConfig.signInPage=microsoft",
155159
"--set upstream.backstage.appConfig.dangerouslyAllowSignInWithoutUserInCatalog=true",
156160
"--set upstream.backstage.appConfig.catalog.providers=null",
161+
"--set upstream.backstage.appConfig.permission.enabled=false",
157162
],
158163
);
159164

@@ -162,7 +167,15 @@ test.describe("Standard authentication providers: Basic authentication", () => {
162167
const singInMethods = await page
163168
.locator("div[class^='MuiCardHeader-root']")
164169
.allInnerTexts();
165-
console.log(singInMethods);
166170
expect(singInMethods).not.toContain("Guest");
167171
});
172+
173+
test.afterEach(async () => {
174+
if (test.info().status !== test.info().expectedStatus) {
175+
const prefix = `${test.info().testId}_${test.info().retry}`;
176+
LOGGER.info(`Dumping logs with prefix ${prefix}`);
177+
await dumpAllPodsLogs(prefix, constants.LOGS_FOLDER);
178+
await dumpRHDHUsersAndGroups(prefix, constants.LOGS_FOLDER);
179+
}
180+
});
168181
});

0 commit comments

Comments
 (0)