Skip to content

Add new skills for Kubernetes management, package updates, and EC2 operations#2

Closed
ytsssun wants to merge 9 commits intocbgbt:developfrom
ytsssun:add-multiple-skills
Closed

Add new skills for Kubernetes management, package updates, and EC2 operations#2
ytsssun wants to merge 9 commits intocbgbt:developfrom
ytsssun:add-multiple-skills

Conversation

@ytsssun
Copy link
Copy Markdown
Collaborator

@ytsssun ytsssun commented Dec 17, 2025

This PR adds 8 new skills and updates the README index with improved organization.

New Skills

Skill Description
analyze-kubernetes-release Analyze Kubernetes release KEPs and CHANGELOG for SIG Node/Network changes affecting Bottlerocket with go/no-go recommendation
add-kubernetes-prerelease Package beta/rc Kubernetes sources from EKS-D pre-release artifacts with build verification
promote-kubernetes-ga Promote pre-release Kubernetes packages to GA by updating source URLs and hashes to official EKS-D release artifacts
add-kubernetes-variant Add a new Kubernetes variant to the bottlerocket repository
update-package Update a kit package to the latest upstream version with checksum verification and build testing
launch-bottlerocket-ec2 Launch Bottlerocket EC2 instances in standalone, ECS, or EKS modes
k8s-node-executor Execute commands on Bottlerocket K8s nodes via a privileged pod with host namespace access
ssm-executor Execute commands on any Bottlerocket EC2 instance via SSM (works with ECS, K8s, standalone)

README Updates

  • Reorganized skills into categories: Kubernetes Version Management, Research & Documentation, Package
    Maintenance, Build & Test, Feature Development, Settings Development
  • Added all new skills to the index

@ytsssun ytsssun force-pushed the add-multiple-skills branch from 7f83f57 to ed83b99 Compare December 17, 2025 23:36
Copy link
Copy Markdown
Owner

@cbgbt cbgbt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! I think these inherently add a lot of value. I have a few comments that I would like your thoughts on.

@@ -0,0 +1,182 @@
---
name: add-kubernetes-variant
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this need to create a settings plugin? Or do we just use the same one for new k8s variants?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might - depending on if there are any breaking change in kubelet config or if there are new settings we want to opt-in upon the launch of the variant.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to think the settings plugin change is more case by case and less "workflow-ish" if that makes sense?

@@ -0,0 +1,167 @@
---
name: analyze-kubernetes-release
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm curious about the output of this, and wonder how it makes these go/no-go decisions. I might suggest finding a way to get this to lean on fact-find or research-document so that our outputs are based on citable facts. I worry about the risk of hallucination.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. This is where I wonder if we should just use the research-document skill or create a new skill.

If we want to keep this, I think we can add extra phase to explicitly do fact check. Thoughts?

On first use, collect infrastructure details and save to `launch-config.toml`:

```bash
cat > skills/launch-bottlerocket-ec2/launch-config.toml << 'EOF'
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be cool to get this to use CDK one day.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#6 I created an issue for this - but let me know if you think otherwise.

Comment on lines +90 to +91
#### EKS Mode

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fine for now, but we probably want some forest-wide sense of cluster management. In other words, there should be a brdev tool for cluster management and an easy way to see which clusters exist and their status (abstracted away in brdev) Then rather than needing to get the CAs, the tooling can manage it.

Can you cut an issue for this?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#7

Cut a issue here.

```bash
cd ../.. # Back to core-kit root

# Build both packages
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's make this a skill reference to keep things consistent.

Comment on lines +59 to +75
**Access host rootfs via sheltie (full host access):**
```bash
CMD_ID=$(aws ssm send-command \
--instance-ids INSTANCE_ID \
--document-name "AWS-RunShellScript" \
--parameters '{"commands":["apiclient exec admin sheltie -- containerd --version"]}' \
--region REGION \
--query 'Command.CommandId' \
--output text) && \
sleep 4 && \
aws ssm get-command-invocation \
--command-id $CMD_ID \
--instance-id INSTANCE_ID \
--region REGION \
--query 'StandardOutputContent' \
--output text
```
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been doing some reading about skills, and one suggestion that I've been seeing that I think makes sense is that we can instead package commands like this as scripts that get shipped alongside the skill. Then in the SKILL.md we simply suggest that the agent call that script with the right arguments.

So I think here we'd have brief descriptions like:

**Simple command, control container context**
./scripts/control-container-command.sh <INSTANCE_ID> <command/script>

I haven't been doing a great job at that in the existing skills, but this would further reduce token utilization. It's basically an easy way to package additional tools that don't end up in the context window unless the skill is loaded.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated - I 100% agree with this. Having scripts are manifest would make the model behavior more predictable.

Comment on lines +81 to +85
| Context | Access | How to Reach |
|---------|--------|-------------|
| Control container | SSM agent, apiclient | Direct SSM command |
| Admin container | AL2023 userspace, /.bottlerocket/rootfs | `apiclient exec admin` |
| Host namespace | Full rootfs, all binaries | `apiclient exec admin sheltie --` |
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this implies we need something under $FOREST/docs to talk about these contexts. It's not clear to me if all agents working in the forest should just know it, or if we should make it dynamically discoverable. BUT this is very useful information that should be hoisted and shared.

…aking changes step

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
Analyze Kubernetes release KEPs and CHANGELOG for SIG Node/Network
changes affecting Bottlerocket with go/no-go recommendation.

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
Promote pre-release Kubernetes packages to GA by updating source
URLs and hashes to official EKS-D release artifacts.

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
Add a new Kubernetes variant to the bottlerocket repository.

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
Update a kit package to the latest upstream version with checksum
verification and build testing.

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
Launch Bottlerocket EC2 instances in standalone, ECS, or EKS modes.

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
Execute commands on Bottlerocket K8s nodes via a privileged pod
with host namespace access.

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
Execute commands on any Bottlerocket EC2 instance via SSM Session
Manager. Works with all variants (ECS, K8s, standalone) without
requiring Kubernetes access.

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
Add Kubernetes Version Management, Package Maintenance, and Build & Test
skills to the index with improved organization by category.

Signed-off-by: Yutong Sun <yutongsu@amazon.com>
@ytsssun ytsssun force-pushed the add-multiple-skills branch from 138d876 to dbe5344 Compare January 14, 2026 22:52
@ytsssun
Copy link
Copy Markdown
Collaborator Author

ytsssun commented Feb 25, 2026

@ytsssun ytsssun closed this Feb 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants