deploy-aws
Skill4 starsChanged 27 days agoBSD-3-ClauseView on GitHub
Bring Ramen up on AWS (EKS, DynamoDB, S3, Secrets Manager, ECR, ALB, WAF) with Terraform or CloudFormation + Helm, then create the first zone, group and deploy. UNTESTED path — use when asked to deploy Ramen on AWS, and expect to fix IAM details.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- ambroselittle/agent-skillstheir own version, first seen Oct 30, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- ambroselittle/agent-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository7 other files it gives its agents.
- docs/llms.txtllms.txt
- backup-restoreSkill
- deploy-gcpSkill
- iterateSkill
- rotate-keysSkill
- scale-zoneSkill
- testSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Wait: kubectl -n ramen-system rollout status deploy/console.
- Very specific: line 38
Do not widen IAM policies to * to make something pass.
- Distinctive: line 39
Never print secrets or keys beyond the one hand-over.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Deploy Ramen on AWS (untested path)
The AWS artifacts were built against docs/CONTRACTS.md §8 and unit-tested with moto; they have never been
applied to a real account. This skill therefore runs everything in plan/dry-run mode first, requires a human OK
before apply, and refuses to call the job done without the validator. Narrative: docs/wiki/deploy-aws.md.
Inputs
- AWS credentials with admin on the target account (
aws sts get-caller-identityworks),REGION(defaultus-east-1), first zoneAWS_AZ(defaultus-east-1a). - Choice:
terraform(default) orcloudformation. - Tools:
aws,terraform >= 1.6oraws cloudformation,helm 4,kubectl,docker+ buildx,uv,openssl,python3,cfn-lint(for the template path).
Steps
- Preflight:
aws sts get-caller-identity;aws service-quotas get-service-quota --service-code eks --quota-code L-1194D53C(clusters per region) is ≥ 1 free; region has ≥ 2 AZs. - Plan only:
cd deploy/terraform/aws && cp -n terraform.tfvars.example terraform.tfvars(region, node size) →terraform init && terraform validate && terraform plan -out=ramen.plan; orcfn-lint deploy/cloudformation/ramen.yaml && aws cloudformation validate-template --template-body file://deploy/cloudformation/ramen.yaml. Summarise the plan (resource count, IAM roles, estimated cost: EKS control plane ~$0.10/h + node group + ALB + NAT if any) and ask the human to confirm before step 3. - Apply:
terraform apply ramen.plan(~20 min) oraws cloudformation deploy --stack-name ramen --template-file deploy/cloudformation/ramen.yaml --capabilities CAPABILITY_NAMED_IAM --parameter-overrides Region=$REGION. Record outputscluster_name,ecr_console,ecr_worker,console_role_arn, ACM cert ARN, bucket name. - Images:
aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin <account>.dkr.ecr.$REGION.amazonaws.com;docker buildx build --platform linux/amd64 -f node-rs/Dockerfile --build-arg VERSION=$(cat VERSION) -t <ecr_worker>:$(cat VERSION) --push .;docker buildx build --platform linux/amd64 --build-arg RAMEN_VERSION=$(cat VERSION) -t <ecr_console>:$(cat VERSION) --push console. - Console:
aws eks update-kubeconfig --name ramen --region $REGION; generateADMIN_PW,FERNET,ADMIN_KEYas in deploy-gcp;helm upgrade --install ramen deploy/helm/ramen -n ramen-system --create-namespace --set provider=aws,region=$REGION,image.console=<ecr_console>:<v>,image.worker=<ecr_worker>:<v>,console.roleArn=<console_role_arn>,console.certificateArn=<acm_arn> --set console.secrets.RAMEN_ADMIN_PASSWORD=$ADMIN_PW,console.secrets.RAMEN_FERNET_KEY=$FERNET,console.secrets.RAMEN_ADMIN_KEY=$ADMIN_KEY. If the chart rejects a value, readdeploy/helm/ramen/values.yaml— the AWS keys are documented there — and do not guess. - Wait:
kubectl -n ramen-system rollout status deploy/console;kubectl -n ramen-system get ingress consoleuntil ADDRESS is set (ALB controller, 3–5 min);curl -k https://<alb-dns>/readyz→{"ok":true,...}. If the Ingress never gets an address, checkkubectl -n kube-system logs deploy/aws-load-balancer-controller— the most likely first-contact failure is the controller's IAM policy. - First zone/group/env/key/deploy through the API exactly as in
deploy-gcpstep 6, withprovider:"aws",region:"$AWS_AZ". Expect the first deploy to surface IRSA/S3 permission errors in the job log; fix the role policy in Terraform (path/ramen/), re-apply, redeploy. - Record every deviation you had to make in
docs/wiki/deploy-aws.mdunder "Gotchas" (as a PR), so the next run is shorter.
Validate
(read-only sub-agent; CONSOLE=https://<alb-dns>, rmk_ key, viewer rmn_ key)
- V1
curl -sk $CONSOLE/readyz→ 200,"store":"dynamodb". - V2
curl -sk -H "X-Ramen-Api-Key: $RMN" $CONSOLE/api/v1/groups/<g>/zones/<z>/workers→ 200, ≥1 live stable worker. - V3 (gRPC through the ALB,
lb.pem= the cert imported into ACM)REQ=$(printf '%s' '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"demo_calculator_tool","arguments":{"var1":2,"var2":3,"func":"add"}}}' | base64); grpcurl -cacert lb.pem -import-path proto -proto ramen/v1/mcp.proto -H "authorization: Bearer $RMK" -H 'ramen-group: <g>' -H 'ramen-zone: <z>' -d "{\"body\":\"$REQ\"}" <alb-dns>:443 ramen.v1.Mcp/Call→ status OK; base64-decodedbodycontains"text":"5",isError:false. - V4 Same without the header → 401.
- V5
aws logs describe-log-groups --log-group-name-prefix /aws/containerinsights/ramenlists a group;curl -sk -H "X-Ramen-Api-Key: $RMN" "$CONSOLE/api/v1/logs?group=<g>&zone=<z>&tail=5"→ 200 with ≥1 line. - V6
aws wafv2 list-web-acls --scope REGIONALshows no ACL for the group unless IP rules were set; if they were,curlfrom a disallowed IP → 403.
Boundaries
- No
applywithout the human's confirmation from step 2; no teardown unless asked (thenhelm uninstall ramen -n ramen-system,terraform destroy/delete-stack, and check for leftover ALBs, target groups, WAF ACLs, log groups). - Do not widen IAM policies to
*to make something pass; report the exact missing action instead. - Never print secrets or keys beyond the one hand-over. Stop after three failed validator rounds.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

