DOCS / ARGUS DEPLOY

Infrastructure delivery,
without the mystery.

A public guide to what Argus Deploy installs, how work moves from code to an exact apply, and what remains inside your AWS accounts.

Runtime
Customer AWS
Workers
Ephemeral
Approval
Exact artifact
Vendor path
None at runtime
01 / WHY BOTHER

The hard part is not producing a plan.

The hard part is proving that the infrastructure change somebody reviewed is the change that eventually ran—with the same source code and infrastructure target.

REVIEW DRIFT

A fresh plan is a different decision.

Replanning during apply can produce different actions from the artifact a reviewer approved.

STANDING ACCESS

Idle workers should not hold credentials.

Regional workers exist only for their task and return to zero when the work finishes.

OWNERSHIP

Automation should not move the keys.

State, plans, credentials, logs, and execution remain in accounts the customer owns.

EDGE CASE / INCIDENT RESPONSE

The emergency change exists in state, but not yet in main.

Imagine an on-call engineer applies an urgent infrastructure fix from an incident branch, but the pull request has not been merged. The shared state now records the emergency change while the default branch still describes the old configuration.

A system that replans from the old branch during the next apply can interpret the incident fix as drift and propose removing it. Argus Deploy does not silently make that new decision. A previously saved plan references the earlier state generation; if another Terraform/OpenTofu operation updated that state, the saved plan is stale and apply fails. The team must review a fresh plan that includes the incident work instead of accidentally overwriting it.

02 / INSTALLATION

Installed into the customer boundary.

Argus Deploy is delivered as a versioned infrastructure module plus immutable runner and dashboard images. The platform is installed by a human from a dedicated bootstrap root; it never manages its own installation through its runners.

Customer prerequisites

An infrastructure repository, AWS account(s), target mappings and network coordinates, GitHub identity, customer-created token and license secrets, and permission to publish the provided images into customer ECR.

  1. 01

    Create the bootstrap boundary.

    Begin from isolated local state, create the protected S3/KMS backend, then migrate the same root into that customer-owned backend.

  2. 02

    Publish immutable images.

    Copy the supplied runner and dashboard release images into source ECR in the primary account. Regional execution pulls from customer ECR.

  3. 03

    Apply one module per account.

    The primary account creates the dashboard, plans storage, orchestrator, source repositories, and regional workers. Workload accounts create only their local execution plane.

  4. 04

    Choose dashboard ingress.

    The module can create the ALB by default or attach Argus Deploy to a customer-provided ALB. A supplied ACM certificate selects HTTPS on port 443.

  5. 05

    Commit the trigger workflow.

    A small GitHub-hosted launch job uses OIDC only to start the customer-resident orchestrator. The actual infrastructure work does not run on GitHub-hosted compute. With the default 1 vCPU / 2 GiB worker, current public list prices put raw Fargate task compute at roughly one-seventh of GitHub's standard 2-core Linux runner minute. Included GitHub minutes, different CPU sizes, image startup, and other AWS charges can change the real ratio.

customer-bootstrap.tfillustrative shape
module "argus_deploy" {
  source = "git::https://github.com/.../bootstrap?ref=<release>"

  infrastructure_repository = "acme/infrastructure"
  execution_folders          = ["network", "compute", "dns"]
  env_order                  = ["dev", "staging", "prod"]
  gated_envs                 = ["staging", "prod"]

  regions = {
    us-west-1 = {
      vpc_id     = "vpc-..."
      subnet_ids = ["subnet-a", "subnet-b"]
      root_folder = "stacks"
    }
  }
}
How targets and gates are determined

Customers register each execution target with an environment label, AWS account, region, and repository root. Names such as dev, staging, and prod are customer-defined labels; Argus Deploy does not infer an environment from its AWS account. The gated_envs policy selects which labels require approval, and applies to every registered target carrying that label.

customer-bootstrap.tftarget mapping
env_order  = ["dev", "staging", "prod"]
gated_envs = ["staging", "prod"]

orchestration_targets = [
  {
    environment = "dev"
    account_id  = "111111111111"
    region      = "us-west-1"
    root_folder = "stacks/dev"
  },
  {
    environment = "staging"
    account_id  = "222222222222"
    region      = "us-west-1"
    root_folder = "stacks/staging"
  }
]

In this example, staging is gated because its environment label appears in gated_envs—not because it uses account 222222222222. Each execution folder is resolved beneath the registered target root.

03 / WHAT'S INCLUDED

One place to review. Runners where the work lives.

Argus Deploy installs one central dashboard and orchestrator in your chosen primary AWS account. It dispatches short-lived workers into the customer accounts and Regions you register. Your GitHub repository supplies the code and the event that starts the run.

CODE → COORDINATION → EXECUTION → REVIEW
01 / SOURCE

GitHub repository

A merge identifies the exact commit. A small workflow sends an OIDC-backed launch signal; infrastructure planning stays in customer AWS.

↓ launch signal
02 / PRIMARY AWS ACCOUNTCustomer-owned control plane
DISPATCH

Orchestrator

Chooses targets, orders work, starts regional workers, and tracks each result.

EVIDENCE

Plan storage

Keeps saved plans, approvals, and results in customer-owned AWS storage.

REVIEW

Dashboard

Shows changes and history in one place. A reviewer approves the exact saved plan.

↓ dispatch by account, Region, and execution folder
03 / WORKLOAD ACCOUNT A

Ephemeral runner

Plans or applies the assigned infrastructure change with local customer IAM access.

03 / WORKLOAD ACCOUNT B

Ephemeral runner

The same isolated execution path can run in another account or Region, then scale back to zero.

↑ plan and status evidence returns to the primary account; full logs remain in regional CloudWatch

The dashboard is the review surface; the orchestrator runs the workflow. Approval applies only to the saved plan reviewers saw, and the later worker executes that plan without making a replacement. Normal runs do not require a _fromTheCode-hosted control plane.

04 / EXECUTION LIFECYCLE

From the code to exact apply.

One small GitHub trigger starts the process. Everything that reads credentials, plans infrastructure, or changes AWS runs inside the customer boundary.

01

GitHub supplies the source and event.

A pull request or merge identifies the repository and exact commit. A small trigger starts the customer-resident orchestrator; it does not choose targets or run infrastructure changes.

02

The orchestrator owns the workflow.

Inside your primary AWS account, it chooses targets, applies your sequencing and approval policy, dispatches regional workers, and tracks each result.

03

A regional worker creates the plan.

The worker runs in the target account and Region, uses the exact source commit, and produces a saved plan with resource changes your team can review.

04

Review stays tied to the saved plan.

The proposed changes and the approval remain tied to the plan that will be applied. Plans and review history stay in customer-owned AWS storage.

05

Policy decides whether to pause.

Routine environments may continue automatically. Protected environments wait for a person to approve the saved plan; approval does not authorize a future recalculation.

06

Apply uses the approved plan.

When your configured apply process is ready, a regional worker executes the saved plan your team approved. If it has gone stale, the run fails instead of making a new plan.

07

The evidence stays; the worker does not.

Status, actor, timestamps, SHA, and apply output remain in customer storage and logs. The task exits after completion, returning the regional worker count to zero.

05 / OWNERSHIP BOUNDARY

Your infrastructure never becomes our infrastructure.

GitHub remains the source boundary.

Your repository contains the infrastructure code and the small trigger workflow. GitHub reports status and identifies the event, repository, ref, and SHA. It launches the customer orchestrator through OIDC, but the infrastructure plan and apply do not execute on GitHub-hosted machines.

The primary AWS account owns coordination and evidence.

The dashboard, orchestrator, plans bucket, KMS key, and source ECR repositories live in the customer's chosen primary account. The dashboard is stateless; review history and plan state remain in customer storage.

Workload accounts own execution.

Regional ECS workers, application-state access, CloudWatch logs, security groups, and regional image caches live alongside the infrastructure they operate. Cross-account work uses customer IAM and customer EventBridge, not vendor credentials.

_fromTheCode is absent from the runtime path.

We deliver versioned module code, immutable images, and signed offline licenses. Normal planning, approval, and apply do not depend on a vendor-hosted API or control plane.

No vendor runtime connection

Argus Deploy does not need a _fromTheCode-hosted control plane, telemetry service, or online license-validation call to operate in customer AWS.

06 / APPROVAL GUARANTEE

Approval binds to evidence, not intention.

The saved plan is the unit of approval.

Reviewers see the proposed changes and approve that exact plan. A later apply cannot silently substitute a different set of changes.

Apply does not quietly make another plan.

The worker executes the approved saved plan. If infrastructure state changes make that plan stale, the run fails and asks for a new review.

Cancel and Apply cannot both win.

Before apply begins, cancellation prevents execution. Once apply has started, cancellation does not interrupt that infrastructure change.

Promotion follows customer policy.

Environment and stack ordering can require upstream success and exact-SHA lineage. Every transition and result remains visible in customer storage and CloudWatch.

07 / COST MODEL

Why customer-resident runners can cost less.

Argus Deploy does not charge per workflow or per run. Customers pay the fixed Argus Deploy subscription plus their own short-lived AWS compute and storage costs.

≈7×
lower raw compute price at the current default size

Argus uses a 1 vCPU / 2 GiB Fargate task. Using current public US list prices, its task runtime is roughly one-seventh of GitHub's standard 2-core Linux hosted-runner minute.

Why the compute model is different

GitHub charges hosted-runner jobs by the minute after the plan's included allowance, and each job is rounded up to the next minute. Fargate charges for requested CPU and memory by the second with a one-minute minimum. Argus workers exist only while planning or applying and return to zero afterward.

The platform still has customer AWS costs: the dashboard service, S3, KMS, logs, ECR, networking, and the short-lived tasks themselves. The Argus subscription is flat rather than metered by run, so increased adoption does not create an additional Argus workflow bill.

Why the comparison is not absolute

GitHub may be cheaper when private usage stays inside included minutes, and public-repository Actions can be free. GitHub's standard runner also has more CPU than the current default Argus worker. The stronger case for Argus is the combination of private VPC execution, customer-owned credentials, exact-plan approval, and predictable platform pricing—not a promise that every possible job costs seven times less.

Cost depends on region, task size, job duration, included GitHub minutes, and the AWS services a customer enables. Use the linked pricing pages for a customer-specific estimate.

08 / SECURITY

Least privilege starts with location.

Argus Deploy starts with the assumption that infrastructure credentials should not cross a vendor boundary.

Credentials are issued where they are used.

Regional workers receive temporary customer IAM credentials inside the target AWS account. The GitHub launch job uses narrow OIDC permissions to start the customer orchestrator and never receives application-infrastructure credentials.

Evidence is encrypted where it is produced.

Plans, approvals, review history, and logs stay in customer AWS storage and logging services. The dashboard reads them there rather than copying them into a vendor service.

Compute disappears after the task.

Regional workers start for a coordinate, execute, report, and exit. Platform bootstrap state is isolated and cannot be changed by the same runners that manage application infrastructure.

09 / LICENSING

Offline validation. No runtime phone-home.

The customer stores a signed license token in its own Secrets Manager. Each new central orchestrator verifies it locally before dispatching work. The dashboard never reads the secret.

While the license is active

New orchestration proceeds normally. Fourteen days before expiration, the dashboard begins displaying a warning so renewal does not become a surprise.

During the seven-day grace period

New work remains available while the dashboard shows the expired-but-in-grace state. The token is still checked locally; no request is made to _fromTheCode.

After grace

New central orchestration is refused. An orchestrator or worker already admitted before the cutoff is allowed to finish, so licensing never interrupts Terraform/OpenTofu halfway through an apply.

10 / FAQ

Short answers to important questions.

Does _fromTheCode receive our AWS credentials?

No. Runtime credentials are issued and used inside customer AWS. There is no vendor runtime control plane.

Does approval immediately apply production?

That is configurable. Routine environments may continue automatically after promotion checks. Protected environments wait for approval of the saved plan, then continue through the customer-configured apply process—immediately, manually, or on a schedule.

What happens if infrastructure changes after approval?

The saved plan may be refused by the runtime. Argus Deploy records the failure instead of generating and applying a replacement plan.

Can we use an existing ALB?

Yes. Supply the ALB and security-group coordinates; Argus Deploy creates the target group, attachment, traffic rules, and—when needed—the listener.

Does it support multiple AWS accounts and regions?

Yes. One primary control plane coordinates regional execution planes across registered customer accounts.

Are workflows or runs metered?

No. Argus Deploy does not charge per workflow or execution. Customer AWS usage is billed by AWS.

NEXT STEP

Bring the next environment under your control.

View pricingContact us ↗