feat: flag VPCs whose private subnets depend on one NAT gateway

Open Beginner friendly
#156 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
77/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
aws, rust
Domain
cli, cloud

Research direction

Read docs/recipes/README.md and docs/recipes/add-a-finding.md, then inspect src/app/findings.rs and the VpcInfo model for existing predicates and finding tests. Add the rule and roadmap entry, plus a minor changeset; done means the one-NAT non-default case fires, the quiet case does not, and the Rust formatting, clippy, and test commands pass. This work is blocked by #155.

Written by the indexing model from the issue text.

Description

good first issue size: XS

Why

With one NAT gateway, an AZ outage cuts every private task off from the internet (image pulls, outbound API calls).

Follow docs/recipes/add-a-finding.md.

Steps

  1. Predicate on VpcInfo: not default, exactly one NAT gateway.
  2. Rule vpc_single_nat_gateway (Hygiene, Medium). Next step: mention it is a deliberate cost trade-off for many small accounts, so the operator can acknowledge it.
  3. Tests.

Where to look

  • src/app/findings.rs

Done when

  • Predicate on the model with unit tests (one firing case, one quiet case)
  • Rule added to FINDING_RULES with tests in src/app/findings.rs
  • docs/findings-roadmap.md lists the rule under Current Findings
  • Changeset added (minor)
  • cargo fmt --all, cargo clippy --all-targets -- -D warnings, and cargo test --all pass, with output pasted in the PR

Check against AWS

Optional. Unit tests are enough for this issue.

Blocked by

#155. Start this after that is merged.

Size: XS. Read docs/recipes/README.md before starting.

Dominant language
Rust
Stars
2
Forks
0
Avg merge
4h 8m
Merged PRs (30d)
8

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fells-code/seamless-glance

All issues in fells-code/seamless-glance

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.