feat: bump Woodpecker agent parallel workflows 1→4 (#194) #195

Merged
forgejo_admin merged 1 commit from 194-bump-max-workflows into main 2026-03-27 03:30:13 +00:00

Summary

  • Bump WOODPECKER_MAX_WORKFLOWS from default 1 to 4
  • Allows 4 CI pipelines to run concurrently on a single agent
  • Archbox has 12 CPU / 128GB at 15% utilization — massive headroom

Changes

  • terraform/main.tf: Added WOODPECKER_MAX_WORKFLOWS = "4" to k8s agent Helm values

Test Plan

  • tofu fmt -check main.tf passes
  • tofu validate passes
  • tofu plan -lock=false in CI shows single Helm release change
  • After apply: trigger 2+ pipelines simultaneously, verify both run concurrently
  • Monitor node resources under concurrent load

Review Checklist

  • No secrets committed
  • No unnecessary file changes (1 file, 1 line)
  • Commit message is descriptive
  • Closes #194
  • Related: #191 — agent label routing (same env block)
  • Related: #184 — incident session where bottleneck was observed
  • project-pal-e-platform
## Summary - Bump `WOODPECKER_MAX_WORKFLOWS` from default 1 to 4 - Allows 4 CI pipelines to run concurrently on a single agent - Archbox has 12 CPU / 128GB at 15% utilization — massive headroom ## Changes - `terraform/main.tf`: Added `WOODPECKER_MAX_WORKFLOWS = "4"` to k8s agent Helm values ## Test Plan - [x] `tofu fmt -check main.tf` passes - [x] `tofu validate` passes - [ ] `tofu plan -lock=false` in CI shows single Helm release change - [ ] After apply: trigger 2+ pipelines simultaneously, verify both run concurrently - [ ] Monitor node resources under concurrent load ## Review Checklist - [x] No secrets committed - [x] No unnecessary file changes (1 file, 1 line) - [x] Commit message is descriptive ## Related Notes - Closes #194 - Related: #191 — agent label routing (same env block) - Related: #184 — incident session where bottleneck was observed - `project-pal-e-platform`
feat: bump Woodpecker agent parallel workflows from 1 to 4
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
33d54740eb
Archbox has 12 CPU / 128GB RAM at 15% utilization. The default
MAX_WORKFLOWS=1 serializes all CI pipelines across all repos. Bumping
to 4 lets burst operations (like 6 simultaneous merges) complete in
~8min instead of ~24min.

Refs: #194

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

PR #195 Review

DOMAIN REVIEW

Tech stack: Terraform (Helm provider) -- k8s Woodpecker CI agent configuration.

Terraform/Helm analysis:

  • The change adds WOODPECKER_MAX_WORKFLOWS = "4" to the agent env block in the existing helm_release "woodpecker" resource. This is a single env var addition to an existing Helm values structure -- clean, minimal.
  • Alignment matches the existing column-42 padding convention used by all other entries in this env block. tofu fmt compliant.
  • The value "4" is a string as expected by Helm env vars. Correct type.
  • No state-breaking changes. This modifies a Helm release values block, so tofu apply will trigger a Helm upgrade with the new env var. Safe, idempotent operation.

Resource concern (informational, not blocking): The agent pod has limits = { memory = "256Mi" }. The agent itself is the gRPC client that spawns pipeline step pods -- it does NOT run the actual builds in-process. The 4 concurrent workflows spawn separate k8s pods, each with their own resource requests. So the agent memory limit is unaffected by this change. The PR body correctly notes archbox has 12 CPU / 128GB at 15% utilization, which is more than sufficient headroom for 4 concurrent pipeline pods.

Placement: The new env var is inserted alphabetically between WOODPECKER_CONNECT_RETRY_COUNT and HARBOR_REGISTRY_INTERNAL. While HARBOR_REGISTRY_INTERNAL breaks the WOODPECKER_ prefix alphabetical ordering, the new line itself is correctly placed among the WOODPECKER_ entries.

BLOCKERS

None.

This is a 1-line configuration change with no test coverage requirement (infrastructure env var tuning, not new functionality with codepaths to test). No user input involved. No secrets. No DRY violations.

NITS

  1. Hardcoded value: The value "4" is reasonable as a direct setting rather than a variable, given this is agent-specific tuning tied to the archbox hardware profile. If multi-agent or multi-node becomes relevant, extracting to a variable would make sense, but for now this is fine.

  2. Test plan gap: The PR body has unchecked items for tofu plan -lock=false in CI, concurrent pipeline verification, and resource monitoring. These are post-merge validation items, not pre-merge blockers for a config change of this scope.

SOP COMPLIANCE

  • Branch named after issue: 194-bump-max-workflows references issue #194
  • PR body follows template: Summary, Changes, Test Plan, Review Checklist, Related sections all present
  • Related references project: project-pal-e-platform included, cross-references #191 and #184
  • No secrets committed: Single env var, no credentials
  • No unnecessary file changes: 1 file, 1 line addition
  • Commit message is descriptive: feat: bump Woodpecker agent parallel workflows 1->4 (#194)

PROCESS OBSERVATIONS

  • Deployment frequency: Positive impact. Removing the single-workflow bottleneck directly improves CI throughput, which is a DORA deployment frequency enabler.
  • Change failure risk: Very low. This is a well-documented Woodpecker env var with a conservative value (4, not unbounded). Rollback is trivial -- remove the line and re-apply.
  • Related context: Good traceability to #184 (incident where bottleneck was observed) and #191 (agent label routing touching the same env block).

VERDICT: APPROVED

## PR #195 Review ### DOMAIN REVIEW **Tech stack**: Terraform (Helm provider) -- k8s Woodpecker CI agent configuration. **Terraform/Helm analysis**: - The change adds `WOODPECKER_MAX_WORKFLOWS = "4"` to the agent env block in the existing `helm_release "woodpecker"` resource. This is a single env var addition to an existing Helm values structure -- clean, minimal. - Alignment matches the existing column-42 padding convention used by all other entries in this env block. `tofu fmt` compliant. - The value `"4"` is a string as expected by Helm env vars. Correct type. - No state-breaking changes. This modifies a Helm release values block, so `tofu apply` will trigger a Helm upgrade with the new env var. Safe, idempotent operation. **Resource concern (informational, not blocking)**: The agent pod has `limits = { memory = "256Mi" }`. The agent itself is the gRPC client that spawns pipeline step pods -- it does NOT run the actual builds in-process. The 4 concurrent workflows spawn separate k8s pods, each with their own resource requests. So the agent memory limit is unaffected by this change. The PR body correctly notes archbox has 12 CPU / 128GB at 15% utilization, which is more than sufficient headroom for 4 concurrent pipeline pods. **Placement**: The new env var is inserted alphabetically between `WOODPECKER_CONNECT_RETRY_COUNT` and `HARBOR_REGISTRY_INTERNAL`. While `HARBOR_REGISTRY_INTERNAL` breaks the WOODPECKER_ prefix alphabetical ordering, the new line itself is correctly placed among the WOODPECKER_ entries. ### BLOCKERS None. This is a 1-line configuration change with no test coverage requirement (infrastructure env var tuning, not new functionality with codepaths to test). No user input involved. No secrets. No DRY violations. ### NITS 1. **Hardcoded value**: The value `"4"` is reasonable as a direct setting rather than a variable, given this is agent-specific tuning tied to the archbox hardware profile. If multi-agent or multi-node becomes relevant, extracting to a variable would make sense, but for now this is fine. 2. **Test plan gap**: The PR body has unchecked items for `tofu plan -lock=false` in CI, concurrent pipeline verification, and resource monitoring. These are post-merge validation items, not pre-merge blockers for a config change of this scope. ### SOP COMPLIANCE - [x] Branch named after issue: `194-bump-max-workflows` references issue #194 - [x] PR body follows template: Summary, Changes, Test Plan, Review Checklist, Related sections all present - [x] Related references project: `project-pal-e-platform` included, cross-references #191 and #184 - [x] No secrets committed: Single env var, no credentials - [x] No unnecessary file changes: 1 file, 1 line addition - [x] Commit message is descriptive: `feat: bump Woodpecker agent parallel workflows 1->4 (#194)` ### PROCESS OBSERVATIONS - **Deployment frequency**: Positive impact. Removing the single-workflow bottleneck directly improves CI throughput, which is a DORA deployment frequency enabler. - **Change failure risk**: Very low. This is a well-documented Woodpecker env var with a conservative value (4, not unbounded). Rollback is trivial -- remove the line and re-apply. - **Related context**: Good traceability to #184 (incident where bottleneck was observed) and #191 (agent label routing touching the same env block). ### VERDICT: APPROVED
forgejo_admin deleted branch 194-bump-max-workflows 2026-03-27 03:30:13 +00:00
Sign in to join this conversation.
No description provided.