Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 979336e901 |
@@ -1,42 +0,0 @@
|
|||||||
---
|
|
||||||
# e2e-ci-runner-rbac.yaml
|
|
||||||
#
|
|
||||||
# Grants the GitHub Actions runner's service account (Arc Runners) the minimum
|
|
||||||
# permissions needed to deploy/teardown an E2E Headlamp instance in the
|
|
||||||
# privilegedescalation-dev namespace.
|
|
||||||
#
|
|
||||||
# RBAC is managed via Flux from privilegedescalation/infra — do not apply manually.
|
|
||||||
# This manifest is a reference copy in the plugin repo.
|
|
||||||
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: Role
|
|
||||||
metadata:
|
|
||||||
name: e2e-ci-runner
|
|
||||||
namespace: privilegedescalation-dev
|
|
||||||
rules:
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources: ["configmaps", "serviceaccounts", "events"]
|
|
||||||
verbs: ["get", "list", "create", "delete"]
|
|
||||||
- apiGroups: ["apps"]
|
|
||||||
resources: ["deployments"]
|
|
||||||
verbs: ["get", "create", "delete"]
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources: ["services"]
|
|
||||||
verbs: ["get", "create", "delete"]
|
|
||||||
- apiGroups: [""]
|
|
||||||
resources: ["pods"]
|
|
||||||
verbs: ["get", "list"]
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: RoleBinding
|
|
||||||
metadata:
|
|
||||||
name: e2e-ci-runner
|
|
||||||
namespace: privilegedescalation-dev
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: runners-privilegedescalation-gha-rs-no-permission
|
|
||||||
namespace: arc-runners
|
|
||||||
roleRef:
|
|
||||||
kind: Role
|
|
||||||
name: e2e-ci-runner
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
+13
-21
@@ -19,18 +19,16 @@ test.describe('Intel GPU plugin smoke tests', () => {
|
|||||||
|
|
||||||
// Should navigate to the overview route
|
// Should navigate to the overview route
|
||||||
await expect(page).toHaveURL(/\/intel-gpu$/);
|
await expect(page).toHaveURL(/\/intel-gpu$/);
|
||||||
await expect(
|
await expect(page.getByRole('heading', { name: /Intel GPU — Overview/i })).toBeVisible();
|
||||||
page.locator('main').getByRole('heading', { name: 'Intel GPU — Overview' })
|
|
||||||
).toBeVisible();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('overview page renders GPU device list or empty state', async ({ page }) => {
|
test('overview page renders GPU device list or empty state', async ({ page }) => {
|
||||||
await page.goto('/c/main/intel-gpu');
|
await page.goto('/c/main/intel-gpu');
|
||||||
|
|
||||||
// Overview heading should be present
|
// Overview heading should be present
|
||||||
await expect(
|
await expect(page.getByRole('heading', { name: /Intel GPU — Overview/i })).toBeVisible({
|
||||||
page.locator('main').getByRole('heading', { name: 'Intel GPU — Overview' })
|
timeout: 15_000,
|
||||||
).toBeVisible({ timeout: 15_000 });
|
});
|
||||||
|
|
||||||
// Either a populated table/list or an empty-state indicator must be visible
|
// Either a populated table/list or an empty-state indicator must be visible
|
||||||
const hasTable = await page.locator('table').first().isVisible().catch(() => false);
|
const hasTable = await page.locator('table').first().isVisible().catch(() => false);
|
||||||
@@ -45,9 +43,9 @@ test.describe('Intel GPU plugin smoke tests', () => {
|
|||||||
test('device plugins page renders or shows empty state', async ({ page }) => {
|
test('device plugins page renders or shows empty state', async ({ page }) => {
|
||||||
await page.goto('/c/main/intel-gpu/device-plugins');
|
await page.goto('/c/main/intel-gpu/device-plugins');
|
||||||
|
|
||||||
await expect(
|
await expect(page.getByRole('heading', { name: /Intel GPU — Device Plugins/i })).toBeVisible({
|
||||||
page.locator('main').getByRole('heading', { name: 'Intel GPU — Device Plugins' })
|
timeout: 15_000,
|
||||||
).toBeVisible({ timeout: 15_000 });
|
});
|
||||||
|
|
||||||
const hasTable = await page.locator('table').first().isVisible().catch(() => false);
|
const hasTable = await page.locator('table').first().isVisible().catch(() => false);
|
||||||
const hasEmptyState = await page
|
const hasEmptyState = await page
|
||||||
@@ -63,24 +61,18 @@ test.describe('Intel GPU plugin smoke tests', () => {
|
|||||||
// not after clicking the parent entry from the overview. Test route
|
// not after clicking the parent entry from the overview. Test route
|
||||||
// accessibility via direct navigation — each route must render its heading.
|
// accessibility via direct navigation — each route must render its heading.
|
||||||
await page.goto('/c/main/intel-gpu');
|
await page.goto('/c/main/intel-gpu');
|
||||||
await expect(
|
await expect(page.getByRole('heading', { name: /Intel GPU — Overview/i })).toBeVisible({
|
||||||
page.locator('main').getByRole('heading', { name: 'Intel GPU — Overview' })
|
timeout: 15_000,
|
||||||
).toBeVisible({ timeout: 15_000 });
|
});
|
||||||
|
|
||||||
await page.goto('/c/main/intel-gpu/nodes');
|
await page.goto('/c/main/intel-gpu/nodes');
|
||||||
await expect(
|
await expect(page.getByRole('heading', { name: /Intel GPU — Nodes/i })).toBeVisible({ timeout: 15_000 });
|
||||||
page.locator('main').getByRole('heading', { name: 'Intel GPU — Nodes' })
|
|
||||||
).toBeVisible({ timeout: 15_000 });
|
|
||||||
|
|
||||||
await page.goto('/c/main/intel-gpu/pods');
|
await page.goto('/c/main/intel-gpu/pods');
|
||||||
await expect(
|
await expect(page.getByRole('heading', { name: /Intel GPU — Pods/i })).toBeVisible({ timeout: 15_000 });
|
||||||
page.locator('main').getByRole('heading', { name: 'Intel GPU — Pods' })
|
|
||||||
).toBeVisible({ timeout: 15_000 });
|
|
||||||
|
|
||||||
await page.goto('/c/main/intel-gpu/metrics');
|
await page.goto('/c/main/intel-gpu/metrics');
|
||||||
await expect(
|
await expect(page.getByRole('heading', { name: /Intel GPU — Metrics/i })).toBeVisible({ timeout: 15_000 });
|
||||||
page.locator('main').getByRole('heading', { name: 'Intel GPU — Metrics' })
|
|
||||||
).toBeVisible({ timeout: 15_000 });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('plugin settings page shows intel-gpu plugin entry', async ({ page }) => {
|
test('plugin settings page shows intel-gpu plugin entry', async ({ page }) => {
|
||||||
|
|||||||
Generated
+3
-3
@@ -11600,9 +11600,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/lodash": {
|
"node_modules/lodash": {
|
||||||
"version": "4.18.1",
|
"version": "4.17.23",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
|
||||||
"integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
|
"integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-2
@@ -44,7 +44,6 @@
|
|||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"tar": "^7.5.11",
|
"tar": "^7.5.11",
|
||||||
"undici": "^7.24.3",
|
"undici": "^7.24.3"
|
||||||
"lodash": ">=4.18.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user