(c: Composition, parser: WorkflowArgumentParser)
| 295 | |
| 296 | |
| 297 | def workflow_cdc(c: Composition, parser: WorkflowArgumentParser) -> None: |
| 298 | pg_version = get_targeted_pg_version(parser) |
| 299 | |
| 300 | parser.add_argument( |
| 301 | "filter", |
| 302 | nargs="*", |
| 303 | default=["*.td"], |
| 304 | help="limit to only the files matching filter", |
| 305 | ) |
| 306 | args = parser.parse_args() |
| 307 | |
| 308 | matching_files = [] |
| 309 | for filter in args.filter: |
| 310 | matching_files.extend(glob.glob(filter, root_dir=MZ_ROOT / "test" / "pg-cdc")) |
| 311 | |
| 312 | if pg_version is not None: |
| 313 | # Vanilla Postgres images don't have SSL configured, skip SSL tests |
| 314 | matching_files = [f for f in matching_files if not f.startswith("pg-cdc-ssl")] |
| 315 | |
| 316 | sharded_files: list[str] = buildkite.shard_list( |
| 317 | sorted(matching_files), lambda file: file |
| 318 | ) |
| 319 | print(f"Files: {sharded_files}") |
| 320 | |
| 321 | c.up(Service("test-certs", idle=True)) |
| 322 | ssl_ca = c.run("test-certs", "cat", "/secrets/ca.crt", capture=True).stdout |
| 323 | ssl_cert = c.run("test-certs", "cat", "/secrets/certuser.crt", capture=True).stdout |
| 324 | ssl_key = c.run("test-certs", "cat", "/secrets/certuser.key", capture=True).stdout |
| 325 | ssl_wrong_cert = c.run( |
| 326 | "test-certs", "cat", "/secrets/postgres.crt", capture=True |
| 327 | ).stdout |
| 328 | ssl_wrong_key = c.run( |
| 329 | "test-certs", "cat", "/secrets/postgres.key", capture=True |
| 330 | ).stdout |
| 331 | ssl_ca_unrelated = c.run( |
| 332 | "test-certs", "cat", "/secrets/ca-selective.crt", capture=True |
| 333 | ).stdout |
| 334 | |
| 335 | with c.override(create_postgres(pg_version=pg_version)): |
| 336 | c.up("materialized", "test-certs", "postgres") |
| 337 | c.test_parts( |
| 338 | sharded_files, |
| 339 | lambda file: c.run_testdrive_files( |
| 340 | f"--var=ssl-ca={ssl_ca}", |
| 341 | f"--var=ssl-cert={ssl_cert}", |
| 342 | f"--var=ssl-key={ssl_key}", |
| 343 | f"--var=ssl-wrong-cert={ssl_wrong_cert}", |
| 344 | f"--var=ssl-wrong-key={ssl_wrong_key}", |
| 345 | f"--var=ssl-ca-unrelated={ssl_ca_unrelated}", |
| 346 | f"--var=default-replica-size=scale={Materialized.Size.DEFAULT_SIZE},workers={Materialized.Size.DEFAULT_SIZE}", |
| 347 | f"--var=default-storage-size=scale={Materialized.Size.DEFAULT_SIZE},workers=1", |
| 348 | file, |
| 349 | ), |
| 350 | ) |
| 351 | |
| 352 | |
| 353 | def workflow_large_scale(c: Composition, parser: WorkflowArgumentParser) -> None: |
nothing calls this directly
no test coverage detected