From 669c33ecbd78278c79bd7754eba8b66e50d15c56 Mon Sep 17 00:00:00 2001 From: Charith Ellawala Date: Thu, 8 Jun 2023 18:01:45 +0100 Subject: [PATCH] chore(test): Remove manual setup from overlay E2E test (#1633) * chore(test): Remove manual setup from overlay E2E test Avoid having to manually generate the database script to bootstrap the overlay test. This is a bit of a hack. It starts a second Cerbos instance connected to the same Postgres instance and runs the bootstrapping tests to load the policies into the database. Then, by reusing the same `*testing.T`, it prevents the resources from being torn down and runs the second set of tests on the same database. Fixes #1612 Signed-off-by: Charith Ellawala * Delete the SQL script Signed-off-by: Charith Ellawala --------- Signed-off-by: Charith Ellawala --- e2e/overlay/data.sql | 237 ------------------------------------ e2e/overlay/helmfile.yaml | 58 ++++++++- e2e/overlay/overlay_test.go | 52 ++++---- internal/test/e2e/ctx.go | 10 +- 4 files changed, 95 insertions(+), 262 deletions(-) delete mode 100644 e2e/overlay/data.sql diff --git a/e2e/overlay/data.sql b/e2e/overlay/data.sql deleted file mode 100644 index 2656a1244..000000000 --- a/e2e/overlay/data.sql +++ /dev/null @@ -1,237 +0,0 @@ -SET search_path TO cerbos; - -INSERT INTO cerbos.attr_schema_defs VALUES ('principal.json', '{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "department": { - "type": "string", - "enum": [ - "marketing", - "engineering" - ] - }, - "geography": { - "type": "string" - }, - "team": { - "type": "string" - }, - "managed_geographies": { - "type": "string" - }, - "orgId": { - "type": "string" - }, - "jobRoles": { - "type": "array", - "items": { - "type": "string" - } - }, - "tags": { - "type": "object", - "properties": { - "brands": { - "type": "array", - "items": { - "type": "string" - } - }, - "classes": { - "type": "array", - "items": { - "type": "string" - } - }, - "regions": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "required": [ - "department", - "geography", - "team" - ] -}'); -INSERT INTO cerbos.attr_schema_defs VALUES ('resources/leave_request.json', '{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "department": { - "type": "string", - "enum": [ - "marketing", - "engineering" - ] - }, - "geography": { - "type": "string" - }, - "team": { - "type": "string" - }, - "id": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "status": { - "type": "string" - }, - "dev_record": { - "type": "boolean" - } - }, - "required": [ - "department", - "geography", - "team", - "id" - ] -}'); -INSERT INTO cerbos.attr_schema_defs VALUES ('resources/purchase_order.json', '{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "ownerOrgId": { - "type": "string" - }, - "tags": { - "type": "object", - "properties": { - "brand": { - "type": "string" - }, - "class": { - "type": "string" - }, - "region": { - "type": "string" - } - } - } - } -}'); -INSERT INTO cerbos.attr_schema_defs VALUES ('resources/salary_record.json', '{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "department": { - "type": "string" - }, - "geography": { - "type": "string" - }, - "id": { - "type": "string" - }, - "team": { - "type": "string" - }, - "owner": { - "type": "string" - }, - "dev_record": { - "type": "boolean" - } - } -}'); - - --- --- Data for Name: policy; Type: TABLE DATA; Schema: cerbos; Owner: postgres --- - -INSERT INTO cerbos.policy VALUES (-2306554882466211462, 'DERIVED_ROLES', 'alpha', '', '', '', false, '\x0a116170692e636572626f732e6465762f76313aa7010a05616c706861120e0a0561646d696e120561646d696e12110a0674657374657212036465761202716112430a1d656d706c6f7965655f746861745f6f776e735f7468655f7265636f72641208656d706c6f7965651a180a162214522e617474722e6f776e6572203d3d20502e696412360a0672656164657212012a1a290a272225726571756573742e7072696e636970616c2e617474722e726561646572203d3d2074727565'); -INSERT INTO cerbos.policy VALUES (-6464313624815126832, 'DERIVED_ROLES', 'beta', '', '', '', false, '\x0a116170692e636572626f732e6465762f763142550a0e73616d655f67656f6772617068791243726571756573742e7265736f757263652e617474722e67656f677261706879203d3d20726571756573742e7072696e636970616c2e617474722e67656f6772617068793aa7010a046265746112180a0c616e795f656d706c6f7965651208656d706c6f7965651284010a0e6469726563745f6d616e6167657212076d616e616765721a690a670a650a122210562e73616d655f67656f6772617068790a4f224d726571756573742e7265736f757263652e617474722e67656f677261706879203d3d20726571756573742e7072696e636970616c2e617474722e6d616e616765645f67656f6772617068696573'); -INSERT INTO cerbos.policy VALUES (1057909666449662682, 'RESOURCE', 'leave_request', '20210210', '', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c222942530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a202222292afb050a0d6c656176655f72657175657374120832303231303231301a05616c7068611a046265746122160a012a1a0561646d696e2801320877696c646361726422290a06637265617465121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264280122350a04766965771a012a22280a262224726571756573742e7265736f757263652e617474722e7075626c6963203d3d2074727565280122100a04766965771206726561646572280122390a06766965773a2a121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264120e6469726563745f6d616e616765722801222a0a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d7669657722530a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c2801225f0a0664656c657465120e6469726563745f6d616e6167657222430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122760a0564656665721a08656d706c6f79656522610a5f0a5d0a30222e22636572626f732d6a77742d74657374732220696e20726571756573742e6175785f646174612e6a77742e6175640a29222722412220696e20726571756573742e6175785f646174612e6a77742e637573746f6d41727261792801226a0a0672656d696e64120e6469726563745f6d616e61676572224e0a4c224a74696d657374616d7028726571756573742e7265736f757263652e617474722e6d6f6469666965644174292e74696d6553696e63652829203d3d206475726174696f6e28223234682229280132460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e'); -INSERT INTO cerbos.policy VALUES (-1185401166816183648, 'RESOURCE', 'leave_request', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f76312a85010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122160a012a1a0561646d696e2801320877696c646361726432460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e'); -INSERT INTO cerbos.policy VALUES (-9043367277519689019, 'RESOURCE', 'leave_request', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f76312aca010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122290a06637265617465121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f72642801222a0a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d766965772a0461636d6532460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e'); -INSERT INTO cerbos.policy VALUES (-311105230672970778, 'RESOURCE', 'leave_request', 'default', 'acme.hr', '', false, '\x0a116170692e636572626f732e6465762f763142530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a2022222942280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292a97030a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122390a06766965773a2a121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264120e6469726563745f6d616e616765722801225f0a0664656c657465120e6469726563745f6d616e6167657222430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122530a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c280122760a0564656665721a08656d706c6f79656522610a5f0a5d0a30222e22636572626f732d6a77742d74657374732220696e20726571756573742e6175785f646174612e6a77742e6175640a29222722412220696e20726571756573742e6175785f646174612e6a77742e637573746f6d417272617928012a0761636d652e6872'); -INSERT INTO cerbos.policy VALUES (5905681985601247641, 'RESOURCE', 'equipment_request', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292ad7040a1165717569706d656e745f72657175657374120764656661756c741a04626574612284030a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d766965773ad7020ad4027b0a2020226964223a20502e69642c0a2020226b657973223a20522e617474722e69642c0a202022666f726d61747465645f2573222e666f726d6174285b22737472696e67225d293a202269643a2573222e666f726d6174285b502e69645d292c0a202022736f6d655f626f6f6c223a20747275652c0a202022736f6d655f6c697374223a205b22666f6f222c2022626172225d2c0a202022736f6d657468696e675f6e6573746564223a207b0a20202020226e65737465645f737472223a2022666f6f222c0a20202020226e65737465645f626f6f6c223a2066616c73652c0a20202020226e65737465645f6c697374223a205b226e6573745f666f6f222c20312e30315d2c0a20202020226e65737465645f666f726d61747465645f2573222e666f726d6174285b22737472696e67225d293a202269643a2573222e666f726d6174285b502e69645d292c0a20207d2c0a7d22ab010a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c28013a560a5422617070726f76616c5f7374617475733a25733a2573222e666f726d6174285b726571756573742e7072696e636970616c2e69642c20726571756573742e7265736f757263652e617474722e7374617475735d29'); -INSERT INTO cerbos.policy VALUES (5620629845961375315, 'RESOURCE', 'equipment_request', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292ac4010a1165717569706d656e745f72657175657374120764656661756c741a04626574612299010a06637265617465120c616e795f656d706c6f79656522490a470a450a282226522e617474722e6465706172746d656e74203d3d20502e617474722e6465706172746d656e740a192217502e617474722e7465616d203d3d202264657369676e2228013a340a32226372656174655f616c6c6f7765643a2573222e666f726d6174285b726571756573742e7072696e636970616c2e69645d292a0461636d65'); -INSERT INTO cerbos.policy VALUES (-4838865023803224052, 'PRINCIPAL', 'terry_tibbs', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f763132510a0b74657272795f7469626273120764656661756c741a390a1165717569706d656e745f7265717565737412240a0663726561746518012a180a165b22666f6f222c205b22626172222c20747275655d5d'); -INSERT INTO cerbos.policy VALUES (-4874326380253481038, 'RESOURCE', 'leave_request', 'default', 'acme.hr.uk', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c222942530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a202222292aeb010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a0462657461227e0a0664656c657465120e6469726563745f6d616e61676572121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f726422430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122380a056465666572120e6469726563745f6d616e61676572121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f726428012a0a61636d652e68722e756b'); -INSERT INTO cerbos.policy VALUES (2074222258152499021, 'PRINCIPAL', 'donald_duck', '20210210', '', '', false, '\x0a116170692e636572626f732e6465762f763142390a0d69735f6465765f7265636f72641228726571756573742e7265736f757263652e617474722e6465765f7265636f7264203d3d207472756532630a0b646f6e616c645f6475636b120832303231303231301a320a012a122d0a012a121b0a1922177661726961626c65732e69735f6465765f7265636f7264180122096465765f61646d696e1a160a0d73616c6172795f7265636f726412050a012a1802'); -INSERT INTO cerbos.policy VALUES (5503507389040961499, 'PRINCIPAL', 'donald_duck', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f763142390a0d69735f6465765f7265636f72641228726571756573742e7265736f757263652e617474722e6465765f7265636f7264203d3d2074727565329f010a0b646f6e616c645f6475636b120764656661756c741a690a0d6c656176655f72657175657374122d0a012a121b0a1922177661726961626c65732e69735f6465765f7265636f7264180122096465765f61646d696e12290a012a12220a20221e522e617474722e6f776e6572203d3d20226d69636b65795f6d6f7573652218021a160a0d73616c6172795f7265636f726412050a012a1802220461636d65'); -INSERT INTO cerbos.policy VALUES (6971921485566701836, 'PRINCIPAL', 'donald_duck', 'default', 'acme.hr', '', false, '\x0a116170692e636572626f732e6465762f7631323c0a0b646f6e616c645f6475636b120764656661756c741a1b0a0d73616c6172795f7265636f7264120a0a06766965773a2a1801220761636d652e6872'); - - --- --- Data for Name: policy_ancestor; Type: TABLE DATA; Schema: cerbos; Owner: postgres --- - -INSERT INTO cerbos.policy_ancestor VALUES (-9043367277519689019, -1185401166816183648); -INSERT INTO cerbos.policy_ancestor VALUES (-311105230672970778, -9043367277519689019); -INSERT INTO cerbos.policy_ancestor VALUES (-311105230672970778, -1185401166816183648); -INSERT INTO cerbos.policy_ancestor VALUES (-4874326380253481038, -311105230672970778); -INSERT INTO cerbos.policy_ancestor VALUES (-4874326380253481038, -9043367277519689019); -INSERT INTO cerbos.policy_ancestor VALUES (-4874326380253481038, -1185401166816183648); -INSERT INTO cerbos.policy_ancestor VALUES (5503507389040961499, 3397670588487548621); -INSERT INTO cerbos.policy_ancestor VALUES (6971921485566701836, 5503507389040961499); -INSERT INTO cerbos.policy_ancestor VALUES (6971921485566701836, 3397670588487548621); -INSERT INTO cerbos.policy_ancestor VALUES (5620629845961375315, 5905681985601247641); - - --- --- Data for Name: policy_dependency; Type: TABLE DATA; Schema: cerbos; Owner: postgres --- - -INSERT INTO cerbos.policy_dependency VALUES (1057909666449662682, -2306554882466211462); -INSERT INTO cerbos.policy_dependency VALUES (1057909666449662682, -6464313624815126832); -INSERT INTO cerbos.policy_dependency VALUES (-1185401166816183648, -2306554882466211462); -INSERT INTO cerbos.policy_dependency VALUES (-1185401166816183648, -6464313624815126832); -INSERT INTO cerbos.policy_dependency VALUES (-9043367277519689019, -2306554882466211462); -INSERT INTO cerbos.policy_dependency VALUES (-9043367277519689019, -6464313624815126832); -INSERT INTO cerbos.policy_dependency VALUES (-311105230672970778, -2306554882466211462); -INSERT INTO cerbos.policy_dependency VALUES (-311105230672970778, -6464313624815126832); -INSERT INTO cerbos.policy_dependency VALUES (-4874326380253481038, -2306554882466211462); -INSERT INTO cerbos.policy_dependency VALUES (-4874326380253481038, -6464313624815126832); -INSERT INTO cerbos.policy_dependency VALUES (5905681985601247641, -6464313624815126832); -INSERT INTO cerbos.policy_dependency VALUES (5620629845961375315, -6464313624815126832); - - --- --- Data for Name: policy_revision; Type: TABLE DATA; Schema: cerbos; Owner: postgres --- - -INSERT INTO cerbos.policy_revision VALUES (1, 'INSERT', -2306554882466211462, 'DERIVED_ROLES', 'alpha', '', '', '', false, '\x0a116170692e636572626f732e6465762f76313aa7010a05616c706861120e0a0561646d696e120561646d696e12110a0674657374657212036465761202716112430a1d656d706c6f7965655f746861745f6f776e735f7468655f7265636f72641208656d706c6f7965651a180a162214522e617474722e6f776e6572203d3d20502e696412360a0672656164657212012a1a290a272225726571756573742e7072696e636970616c2e617474722e726561646572203d3d2074727565', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (2, 'INSERT', -6464313624815126832, 'DERIVED_ROLES', 'beta', '', '', '', false, '\x0a116170692e636572626f732e6465762f763142550a0e73616d655f67656f6772617068791243726571756573742e7265736f757263652e617474722e67656f677261706879203d3d20726571756573742e7072696e636970616c2e617474722e67656f6772617068793aa7010a046265746112180a0c616e795f656d706c6f7965651208656d706c6f7965651284010a0e6469726563745f6d616e6167657212076d616e616765721a690a670a650a122210562e73616d655f67656f6772617068790a4f224d726571756573742e7265736f757263652e617474722e67656f677261706879203d3d20726571756573742e7072696e636970616c2e617474722e6d616e616765645f67656f6772617068696573', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (3, 'INSERT', 1057909666449662682, 'RESOURCE', 'leave_request', '20210210', '', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c222942530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a202222292afb050a0d6c656176655f72657175657374120832303231303231301a05616c7068611a046265746122160a012a1a0561646d696e2801320877696c646361726422290a06637265617465121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264280122350a04766965771a012a22280a262224726571756573742e7265736f757263652e617474722e7075626c6963203d3d2074727565280122100a04766965771206726561646572280122390a06766965773a2a121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264120e6469726563745f6d616e616765722801222a0a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d7669657722530a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c2801225f0a0664656c657465120e6469726563745f6d616e6167657222430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122760a0564656665721a08656d706c6f79656522610a5f0a5d0a30222e22636572626f732d6a77742d74657374732220696e20726571756573742e6175785f646174612e6a77742e6175640a29222722412220696e20726571756573742e6175785f646174612e6a77742e637573746f6d41727261792801226a0a0672656d696e64120e6469726563745f6d616e61676572224e0a4c224a74696d657374616d7028726571756573742e7265736f757263652e617474722e6d6f6469666965644174292e74696d6553696e63652829203d3d206475726174696f6e28223234682229280132460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (4, 'INSERT', -1185401166816183648, 'RESOURCE', 'leave_request', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f76312a85010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122160a012a1a0561646d696e2801320877696c646361726432460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (5, 'INSERT', -9043367277519689019, 'RESOURCE', 'leave_request', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f76312aca010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122290a06637265617465121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f72642801222a0a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d766965772a0461636d6532460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (6, 'INSERT', -311105230672970778, 'RESOURCE', 'leave_request', 'default', 'acme.hr', '', false, '\x0a116170692e636572626f732e6465762f763142530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a2022222942280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292a97030a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122390a06766965773a2a121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264120e6469726563745f6d616e616765722801225f0a0664656c657465120e6469726563745f6d616e6167657222430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122530a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c280122760a0564656665721a08656d706c6f79656522610a5f0a5d0a30222e22636572626f732d6a77742d74657374732220696e20726571756573742e6175785f646174612e6a77742e6175640a29222722412220696e20726571756573742e6175785f646174612e6a77742e637573746f6d417272617928012a0761636d652e6872', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (7, 'INSERT', -4874326380253481038, 'RESOURCE', 'leave_request', 'default', 'acme.hr.uk', '', false, '\x0a116170692e636572626f732e6465762f763142530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a2022222942280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292aeb010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a0462657461227e0a0664656c657465120e6469726563745f6d616e61676572121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f726422430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122380a056465666572120e6469726563745f6d616e61676572121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f726428012a0a61636d652e68722e756b', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (8, 'INSERT', 2074222258152499021, 'PRINCIPAL', 'donald_duck', '20210210', '', '', false, '\x0a116170692e636572626f732e6465762f763142390a0d69735f6465765f7265636f72641228726571756573742e7265736f757263652e617474722e6465765f7265636f7264203d3d207472756532630a0b646f6e616c645f6475636b120832303231303231301a320a012a122d0a012a121b0a1922177661726961626c65732e69735f6465765f7265636f7264180122096465765f61646d696e1a160a0d73616c6172795f7265636f726412050a012a1802', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (9, 'INSERT', 5503507389040961499, 'PRINCIPAL', 'donald_duck', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f763142390a0d69735f6465765f7265636f72641228726571756573742e7265736f757263652e617474722e6465765f7265636f7264203d3d2074727565329f010a0b646f6e616c645f6475636b120764656661756c741a690a0d6c656176655f72657175657374122d0a012a121b0a1922177661726961626c65732e69735f6465765f7265636f7264180122096465765f61646d696e12290a012a12220a20221e522e617474722e6f776e6572203d3d20226d69636b65795f6d6f7573652218021a160a0d73616c6172795f7265636f726412050a012a1802220461636d65', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (10, 'INSERT', 6971921485566701836, 'PRINCIPAL', 'donald_duck', 'default', 'acme.hr', '', false, '\x0a116170692e636572626f732e6465762f7631323c0a0b646f6e616c645f6475636b120764656661756c741a1b0a0d73616c6172795f7265636f7264120a0a06766965773a2a1801220761636d652e6872', '2023-06-01 08:53:25.139583+00'); -INSERT INTO cerbos.policy_revision VALUES (11, 'INSERT', 5905681985601247641, 'RESOURCE', 'equipment_request', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292ad7040a1165717569706d656e745f72657175657374120764656661756c741a04626574612284030a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d766965773ad7020ad4027b0a2020226964223a20502e69642c0a2020226b657973223a20522e617474722e69642c0a202022666f726d61747465645f2573222e666f726d6174285b22737472696e67225d293a202269643a2573222e666f726d6174285b502e69645d292c0a202022736f6d655f626f6f6c223a20747275652c0a202022736f6d655f6c697374223a205b22666f6f222c2022626172225d2c0a202022736f6d657468696e675f6e6573746564223a207b0a20202020226e65737465645f737472223a2022666f6f222c0a20202020226e65737465645f626f6f6c223a2066616c73652c0a20202020226e65737465645f6c697374223a205b226e6573745f666f6f222c20312e30315d2c0a20202020226e65737465645f666f726d61747465645f2573222e666f726d6174285b22737472696e67225d293a202269643a2573222e666f726d6174285b502e69645d292c0a20207d2c0a7d22ab010a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c28013a560a5422617070726f76616c5f7374617475733a25733a2573222e666f726d6174285b726571756573742e7072696e636970616c2e69642c20726571756573742e7265736f757263652e617474722e7374617475735d29', '2023-06-01 08:53:25.214503+00'); -INSERT INTO cerbos.policy_revision VALUES (12, 'INSERT', 5620629845961375315, 'RESOURCE', 'equipment_request', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292ac4010a1165717569706d656e745f72657175657374120764656661756c741a04626574612299010a06637265617465120c616e795f656d706c6f79656522490a470a450a282226522e617474722e6465706172746d656e74203d3d20502e617474722e6465706172746d656e740a192217502e617474722e7465616d203d3d202264657369676e2228013a340a32226372656174655f616c6c6f7765643a2573222e666f726d6174285b726571756573742e7072696e636970616c2e69645d292a0461636d65', '2023-06-01 08:53:25.214503+00'); -INSERT INTO cerbos.policy_revision VALUES (13, 'INSERT', -4838865023803224052, 'PRINCIPAL', 'terry_tibbs', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f763132510a0b74657272795f7469626273120764656661756c741a390a1165717569706d656e745f7265717565737412240a0663726561746518012a180a165b22666f6f222c205b22626172222c20747275655d5d', '2023-06-01 08:53:25.214503+00'); -INSERT INTO cerbos.policy_revision VALUES (14, 'UPDATE', -2306554882466211462, 'DERIVED_ROLES', 'alpha', '', '', '', false, '\x0a116170692e636572626f732e6465762f76313aa7010a05616c706861120e0a0561646d696e120561646d696e12110a0674657374657212036465761202716112430a1d656d706c6f7965655f746861745f6f776e735f7468655f7265636f72641208656d706c6f7965651a180a162214522e617474722e6f776e6572203d3d20502e696412360a0672656164657212012a1a290a272225726571756573742e7072696e636970616c2e617474722e726561646572203d3d2074727565', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (15, 'UPDATE', -6464313624815126832, 'DERIVED_ROLES', 'beta', '', '', '', false, '\x0a116170692e636572626f732e6465762f763142550a0e73616d655f67656f6772617068791243726571756573742e7265736f757263652e617474722e67656f677261706879203d3d20726571756573742e7072696e636970616c2e617474722e67656f6772617068793aa7010a046265746112180a0c616e795f656d706c6f7965651208656d706c6f7965651284010a0e6469726563745f6d616e6167657212076d616e616765721a690a670a650a122210562e73616d655f67656f6772617068790a4f224d726571756573742e7265736f757263652e617474722e67656f677261706879203d3d20726571756573742e7072696e636970616c2e617474722e6d616e616765645f67656f6772617068696573', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (16, 'UPDATE', 1057909666449662682, 'RESOURCE', 'leave_request', '20210210', '', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c222942530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a202222292afb050a0d6c656176655f72657175657374120832303231303231301a05616c7068611a046265746122160a012a1a0561646d696e2801320877696c646361726422290a06637265617465121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264280122350a04766965771a012a22280a262224726571756573742e7265736f757263652e617474722e7075626c6963203d3d2074727565280122100a04766965771206726561646572280122390a06766965773a2a121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264120e6469726563745f6d616e616765722801222a0a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d7669657722530a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c2801225f0a0664656c657465120e6469726563745f6d616e6167657222430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122760a0564656665721a08656d706c6f79656522610a5f0a5d0a30222e22636572626f732d6a77742d74657374732220696e20726571756573742e6175785f646174612e6a77742e6175640a29222722412220696e20726571756573742e6175785f646174612e6a77742e637573746f6d41727261792801226a0a0672656d696e64120e6469726563745f6d616e61676572224e0a4c224a74696d657374616d7028726571756573742e7265736f757263652e617474722e6d6f6469666965644174292e74696d6553696e63652829203d3d206475726174696f6e28223234682229280132460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (17, 'UPDATE', -1185401166816183648, 'RESOURCE', 'leave_request', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f76312a85010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122160a012a1a0561646d696e2801320877696c646361726432460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (18, 'UPDATE', -9043367277519689019, 'RESOURCE', 'leave_request', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f76312aca010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122290a06637265617465121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f72642801222a0a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d766965772a0461636d6532460a1a0a18636572626f733a2f2f2f7072696e636970616c2e6a736f6e12280a26636572626f733a2f2f2f7265736f75726365732f6c656176655f726571756573742e6a736f6e', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (19, 'UPDATE', -311105230672970778, 'RESOURCE', 'leave_request', 'default', 'acme.hr', '', false, '\x0a116170692e636572626f732e6465762f763142530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a2022222942280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292a97030a0d6c656176655f72657175657374120764656661756c741a05616c7068611a046265746122390a06766965773a2a121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f7264120e6469726563745f6d616e616765722801225f0a0664656c657465120e6469726563745f6d616e6167657222430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122530a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c280122760a0564656665721a08656d706c6f79656522610a5f0a5d0a30222e22636572626f732d6a77742d74657374732220696e20726571756573742e6175785f646174612e6a77742e6175640a29222722412220696e20726571756573742e6175785f646174612e6a77742e637573746f6d417272617928012a0761636d652e6872', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (20, 'UPDATE', -4874326380253481038, 'RESOURCE', 'leave_request', 'default', 'acme.hr.uk', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c222942530a127072696e636970616c5f6c6f636174696f6e123d28502e617474722e69705f616464726573732e696e49504164647252616e6765282231302e32302e302e302f31362229203f2022474222203a202222292aeb010a0d6c656176655f72657175657374120764656661756c741a05616c7068611a0462657461227e0a0664656c657465120e6469726563745f6d616e61676572121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f726422430a41223f726571756573742e7265736f757263652e617474722e67656f677261706879203d3d207661726961626c65732e7072696e636970616c5f6c6f636174696f6e280122380a056465666572120e6469726563745f6d616e61676572121d656d706c6f7965655f746861745f6f776e735f7468655f7265636f726428012a0a61636d652e68722e756b', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (21, 'UPDATE', 2074222258152499021, 'PRINCIPAL', 'donald_duck', '20210210', '', '', false, '\x0a116170692e636572626f732e6465762f763142390a0d69735f6465765f7265636f72641228726571756573742e7265736f757263652e617474722e6465765f7265636f7264203d3d207472756532630a0b646f6e616c645f6475636b120832303231303231301a320a012a122d0a012a121b0a1922177661726961626c65732e69735f6465765f7265636f7264180122096465765f61646d696e1a160a0d73616c6172795f7265636f726412050a012a1802', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (22, 'UPDATE', 5503507389040961499, 'PRINCIPAL', 'donald_duck', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f763142390a0d69735f6465765f7265636f72641228726571756573742e7265736f757263652e617474722e6465765f7265636f7264203d3d2074727565329f010a0b646f6e616c645f6475636b120764656661756c741a690a0d6c656176655f72657175657374122d0a012a121b0a1922177661726961626c65732e69735f6465765f7265636f7264180122096465765f61646d696e12290a012a12220a20221e522e617474722e6f776e6572203d3d20226d69636b65795f6d6f7573652218021a160a0d73616c6172795f7265636f726412050a012a1802220461636d65', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (23, 'UPDATE', 6971921485566701836, 'PRINCIPAL', 'donald_duck', 'default', 'acme.hr', '', false, '\x0a116170692e636572626f732e6465762f7631323c0a0b646f6e616c645f6475636b120764656661756c741a1b0a0d73616c6172795f7265636f7264120a0a06766965773a2a1801220761636d652e6872', '2023-06-01 08:53:25.590152+00'); -INSERT INTO cerbos.policy_revision VALUES (24, 'UPDATE', 5905681985601247641, 'RESOURCE', 'equipment_request', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292ad7040a1165717569706d656e745f72657175657374120764656661756c741a04626574612284030a0b766965773a7075626c6963120c616e795f656d706c6f7965652801320b7075626c69632d766965773ad7020ad4027b0a2020226964223a20502e69642c0a2020226b657973223a20522e617474722e69642c0a202022666f726d61747465645f2573222e666f726d6174285b22737472696e67225d293a202269643a2573222e666f726d6174285b502e69645d292c0a202022736f6d655f626f6f6c223a20747275652c0a202022736f6d655f6c697374223a205b22666f6f222c2022626172225d2c0a202022736f6d657468696e675f6e6573746564223a207b0a20202020226e65737465645f737472223a2022666f6f222c0a20202020226e65737465645f626f6f6c223a2066616c73652c0a20202020226e65737465645f6c697374223a205b226e6573745f666f6f222c20312e30315d2c0a20202020226e65737465645f666f726d61747465645f2573222e666f726d6174285b22737472696e67225d293a202269643a2573222e666f726d6174285b502e69645d292c0a20207d2c0a7d22ab010a07617070726f7665120e6469726563745f6d616e6167657222360a342232726571756573742e7265736f757263652e617474722e737461747573203d3d20562e70656e64696e675f617070726f76616c28013a560a5422617070726f76616c5f7374617475733a25733a2573222e666f726d6174285b726571756573742e7072696e636970616c2e69642c20726571756573742e7265736f757263652e617474722e7374617475735d29', '2023-06-01 08:53:25.660238+00'); -INSERT INTO cerbos.policy_revision VALUES (25, 'UPDATE', 5620629845961375315, 'RESOURCE', 'equipment_request', 'default', 'acme', '', false, '\x0a116170692e636572626f732e6465762f763142280a1070656e64696e675f617070726f76616c1214282250454e44494e475f415050524f56414c22292ac4010a1165717569706d656e745f72657175657374120764656661756c741a04626574612299010a06637265617465120c616e795f656d706c6f79656522490a470a450a282226522e617474722e6465706172746d656e74203d3d20502e617474722e6465706172746d656e740a192217502e617474722e7465616d203d3d202264657369676e2228013a340a32226372656174655f616c6c6f7765643a2573222e666f726d6174285b726571756573742e7072696e636970616c2e69645d292a0461636d65', '2023-06-01 08:53:25.660238+00'); -INSERT INTO cerbos.policy_revision VALUES (26, 'UPDATE', -4838865023803224052, 'PRINCIPAL', 'terry_tibbs', 'default', '', '', false, '\x0a116170692e636572626f732e6465762f763132510a0b74657272795f7469626273120764656661756c741a390a1165717569706d656e745f7265717565737412240a0663726561746518012a180a165b22666f6f222c205b22626172222c20747275655d5d', '2023-06-01 08:53:25.660238+00'); - - --- --- Name: policy_revision_revision_id_seq; Type: SEQUENCE SET; Schema: cerbos; Owner: postgres --- - -SELECT pg_catalog.setval('cerbos.policy_revision_revision_id_seq', 26, true); diff --git a/e2e/overlay/helmfile.yaml b/e2e/overlay/helmfile.yaml index d54790af8..21b09a840 100644 --- a/e2e/overlay/helmfile.yaml +++ b/e2e/overlay/helmfile.yaml @@ -34,7 +34,6 @@ releases: - postgres-init - '--namespace={{ requiredEnv "E2E_NS" }}' - '--from-file=00_init_schema.sql={{ requiredEnv "E2E_SRC_ROOT" }}/internal/storage/db/postgres/schema.sql' - - '--from-file=01_init_data.sql={{ requiredEnv "E2E_SRC_ROOT" }}/e2e/overlay/data.sql' - events: ["postuninstall"] showlogs: true command: kubectl @@ -146,3 +145,60 @@ releases: updatePollInterval: 60s telemetry: disabled: true + + - name: cerbos-admin + namespace: '{{ requiredEnv "E2E_NS" }}' + needs: ["postgres"] + createNamespace: true + labels: + e2e-run: '{{ requiredEnv "E2E_RUN_ID" }}' + e2e-ctx: '{{ requiredEnv "E2E_CONTEXT_ID" }}' + chart: '{{ requiredEnv "E2E_SRC_ROOT" }}/deploy/charts/cerbos' + hooks: + - events: ["presync"] + showlogs: true + command: kubectl + args: + - create + - secret + - tls + - 'cerbos-admin-certs-{{ requiredEnv "E2E_CONTEXT_ID" }}' + - '--cert={{ requiredEnv "E2E_SRC_ROOT" }}/internal/test/testdata/server/tls.crt' + - '--key={{ requiredEnv "E2E_SRC_ROOT" }}/internal/test/testdata/server/tls.key' + - '--namespace={{ requiredEnv "E2E_NS" }}' + - events: ["postuninstall"] + showlogs: true + command: kubectl + args: + - delete + - secret + - 'cerbos-admin-certs-{{ requiredEnv "E2E_CONTEXT_ID" }}' + - '--namespace={{ requiredEnv "E2E_NS" }}' + values: + - nameOverride: '{{ requiredEnv "E2E_CONTEXT_ID" }}' + - image: + repository: '{{ env "E2E_CERBOS_IMG_REPO" | default "ghcr.io/cerbos/cerbos" }}' + tag: '{{ env "E2E_CERBOS_IMG_TAG" | default "dev" }}' + - cerbos: + tlsSecretName: 'cerbos-admin-certs-{{ requiredEnv "E2E_CONTEXT_ID" }}' + logLevel: DEBUG + config: + server: + adminAPI: + enabled: true + adminCredentials: + username: cerbos + passwordHash: JDJ5JDEwJC5BYjQyY2RJNG5QR2NWMmJPdnNtQU93c09RYVA0eFFGdHBrbmFEeXh1NnlIVTE1cHJNY05PCgo= + auxData: + jwt: + disableVerification: true + schema: + enforcement: reject + audit: + enabled: false + storage: + driver: "postgres" + postgres: + url: {{ requiredEnv "E2E_DATABASE_URL" }} + telemetry: + disabled: true diff --git a/e2e/overlay/overlay_test.go b/e2e/overlay/overlay_test.go index ace7e8837..deb1b6320 100644 --- a/e2e/overlay/overlay_test.go +++ b/e2e/overlay/overlay_test.go @@ -15,18 +15,41 @@ import ( "github.com/stretchr/testify/require" ) +const fallbackErrThreshold = 1 + func TestOverlay(t *testing.T) { - env := make(map[string]string) + t.Log(">>> Loading policies into Postgres using the cerbos-admin instance") + computedEnv := func(ctx e2e.Ctx) map[string]string { + return map[string]string{ + "E2E_DATABASE_URL": dbURL(ctx), + "E2E_CERBOS_HOST": fmt.Sprintf("cerbos-admin-%s.%s", ctx.ContextID, ctx.Namespace()), + "E2E_FALLBACK_ERR_THRESHOLD": strconv.FormatInt(fallbackErrThreshold, 10), + } + } + e2e.RunSuites(t, e2e.WithContextID("overlay"), e2e.WithSuites(e2e.AdminSuite), e2e.WithComputedEnv(computedEnv)) - computedEnvFn := func(ctx e2e.Ctx) map[string]string { - env["E2E_DATABASE_URL"] = fmt.Sprintf("postgres://postgres:passw0rd@%s.%s.svc.cluster.local:5432/postgres?sslmode=disable&search_path=cerbos", ctx.ContextID, ctx.Namespace()) - env["E2E_FALLBACK_ERR_THRESHOLD"] = "1" - return env + computedEnv = func(ctx e2e.Ctx) map[string]string { + return map[string]string{ + "E2E_DATABASE_URL": dbURL(ctx), + "E2E_FALLBACK_ERR_THRESHOLD": strconv.FormatInt(fallbackErrThreshold, 10), + } } - // a rather hacky way simulate a DB error, by dropping tables - breakDB := func(ctx e2e.Ctx) { - db, err := sqlx.Connect("pgx", env["E2E_DATABASE_URL"]) + t.Log(">>> Testing the overlay base driver") + e2e.RunSuites(t, e2e.WithContextID("overlay"), e2e.WithImmutableStoreSuites(), e2e.WithComputedEnv(computedEnv)) + t.Log(">>> Testing the overlay fallback driver") + e2e.RunSuites(t, e2e.WithContextID("overlay"), e2e.WithImmutableStoreSuites(), e2e.WithComputedEnv(computedEnv), e2e.WithPostSetup(breakDB(t)), e2e.WithOverlayMaxRetries(fallbackErrThreshold)) +} + +func dbURL(ctx e2e.Ctx) string { + return fmt.Sprintf("postgres://postgres:passw0rd@postgres-%s.%s.svc.cluster.local:5432/postgres?sslmode=disable&search_path=cerbos", ctx.ContextID, ctx.Namespace()) +} + +func breakDB(t *testing.T) func(e2e.Ctx) { + t.Helper() + return func(ctx e2e.Ctx) { + // a rather hacky way simulate a DB error, by dropping tables + db, err := sqlx.Connect("pgx", dbURL(ctx)) require.NoError(t, err, "failed to connect to postgres") txn := db.MustBegin() @@ -34,17 +57,4 @@ func TestOverlay(t *testing.T) { err = txn.Commit() require.NoError(t, err, "failed to drop tables from test postgres db") } - - t.Run("base driver success", func(t *testing.T) { - // TODO dedicated contextID? - e2e.RunSuites(t, e2e.WithContextID("postgres"), e2e.WithImmutableStoreSuites(), e2e.WithComputedEnv(computedEnvFn)) - }) - - fallbackErrorThreshold, err := strconv.ParseUint(env["E2E_FALLBACK_ERR_THRESHOLD"], 10, 64) - require.NoError(t, err, "failed to convert fallbackErrorThreshold string to uint64") - - t.Run("base driver error and fallback driver success", func(t *testing.T) { - // TODO dedicated contextID? - e2e.RunSuites(t, e2e.WithContextID("postgres"), e2e.WithImmutableStoreSuites(), e2e.WithComputedEnv(computedEnvFn), e2e.WithPostSetup(breakDB), e2e.WithOverlayMaxRetries(fallbackErrorThreshold)) - }) } diff --git a/internal/test/e2e/ctx.go b/internal/test/e2e/ctx.go index bd0a19c90..3fb0ae933 100644 --- a/internal/test/e2e/ctx.go +++ b/internal/test/e2e/ctx.go @@ -18,9 +18,10 @@ import ( ) const ( - HTTPPort = 3592 - GRPCPort = 3593 - HealthEndpoint = "/_cerbos/health" + cerbosHostNameEnvVar = "E2E_CERBOS_HOST" + HTTPPort = 3592 + GRPCPort = 3593 + HealthEndpoint = "/_cerbos/health" ) var conf = Config{} @@ -118,6 +119,9 @@ func (c Ctx) Environ() []string { } func (c Ctx) CerbosHost() string { + if hostname, ok := c.ComputedEnv[cerbosHostNameEnvVar]; ok { + return hostname + } return fmt.Sprintf("cerbos-%s.%s", c.ContextID, c.Namespace()) }