Skip to content

docs: new k8 docs + new Operator doc#420

Open
quetzalliwrites wants to merge 2 commits intomainfrom
docs-new-k8-section
Open

docs: new k8 docs + new Operator doc#420
quetzalliwrites wants to merge 2 commits intomainfrom
docs-new-k8-section

Conversation

@quetzalliwrites
Copy link
Collaborator

@quetzalliwrites quetzalliwrites commented Feb 3, 2026

@quetzalliwrites quetzalliwrites requested review from a team and mmaureenliu February 3, 2026 22:55
@quetzalliwrites quetzalliwrites self-assigned this Feb 3, 2026
@quetzalliwrites quetzalliwrites added the documentation Improvements or additions to documentation label Feb 3, 2026

The Operator manifest creates all required `Roles`, `ClusterRoles`, and `bindings`.


Copy link
Collaborator Author

@quetzalliwrites quetzalliwrites Feb 3, 2026

Choose a reason for hiding this comment

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

@HarshCasper wondering about maintaining this table, I think we should automate this. I was thinking to make a sub issue for that task, may I assign it to you for next week?

Copy link
Contributor

Choose a reason for hiding this comment

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

I have a POC in #378 that could be adapted probably

@cloudflare-workers-and-pages
Copy link

Deploying localstack-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6315003
Status: ✅  Deploy successful!
Preview URL: https://6852d11b.localstack-docs.pages.dev
Branch Preview URL: https://docs-new-k8-section.localstack-docs.pages.dev

View logs

@quetzalliwrites
Copy link
Collaborator Author

Screenshot 2026-02-04 at 12 08 58 AM

fyi @simonrw @mmaureenliu keep in mind the current manual markup table we added is not responsive (normal behavior for table markup): https://6852d11b.localstack-docs.pages.dev/aws/enterprise/kubernetes/kubernetes-operator/#permissions

We need to incorporate the same table component we're using in aws API Coverage tables, such as this one:
https://docs.localstack.cloud/aws/services/account/#api-coverage

cc @HarshCasper

@@ -0,0 +1,100 @@
---
title: Concepts
description: Concepts & Architecture
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we add a diagram here similar to the one we have in Notion ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes, we can add the one in Notion. I'll add a commit in a bit.

Copy link
Contributor

@simonrw simonrw left a comment

Choose a reason for hiding this comment

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

In general a great restructuring of the Kubernetes section, thank you! However I have a few comments

description: Install and run LocalStack on Kubernetes using the official Helm chart.
template: doc
sidebar:
order: 3
Copy link
Contributor

Choose a reason for hiding this comment

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

Could we make the helm chart 4 and the operator 3 to emphasise the operator more?

tags: ["Enterprise"]
---

## Overview
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: having the first heading of the Overview section called Overview is a little repetitive. What about skipping this heading?


LocalStack is a local AWS cloud environment that emulates core AWS services for development and testing.

When deployed on Kubernetes, services that typically spawn Docker containers (such as Lambda, ECS, or RDS) instead spawn Kubernetes pods within the same cluster. Behavior is improved by allowing dynamic scaling, isolation, and native Kubernetes orchestration.
Copy link
Contributor

Choose a reason for hiding this comment

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

When deployed on Kubernetes

Technically it still requires for the user to opt in to this situation by setting CONTAINER_RUNTIME=kubernetes. The Operator does this by default, but it's not guaranteed that the user will do this.

Suggested change
When deployed on Kubernetes, services that typically spawn Docker containers (such as Lambda, ECS, or RDS) instead spawn Kubernetes pods within the same cluster. Behavior is improved by allowing dynamic scaling, isolation, and native Kubernetes orchestration.
When LocalStack is deployed on Kubernetes and Kubernetes support is enabled, services that typically spawn Docker containers (such as Lambda, ECS, or RDS) instead spawn Kubernetes pods within the same cluster. Behavior is improved by allowing dynamic scaling, isolation, and native Kubernetes orchestration.

I'm not a huge fan of this suggestion though.


Supported cases:

- Local Development Environments: Provide isolated, consistent environments for individual developers or small teams.
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we are missing a common use case here

Suggested change
- Local Development Environments: Provide isolated, consistent environments for individual developers or small teams.
- Local Development Environments: Provide isolated, consistent environments for individual developers or small teams.
- Hosted Development Environments: Provide scalable and isolated development environments for teams.


## Requirements:

- K8s Cluster (k3d, minikube)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- K8s Cluster (k3d, minikube)
- K8s Cluster (such as k3d, minikube, EKS)

Comment on lines +72 to +85
:::

#### Auth token from a Kubernetes Secret

If your auth token is stored in a Kubernetes Secret, you can reference it using `valueFrom`:

```yaml
extraEnvVars:
- name: LOCALSTACK_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: <name of the secret>
key: <name of the key in the secret containing the API key>
```
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we need to include this section in the callout as it refers to the values.yml file. If a user skips the callout then they skip straight to "you can reference it from... without telling them where to put it.

Suggested change
:::
#### Auth token from a Kubernetes Secret
If your auth token is stored in a Kubernetes Secret, you can reference it using `valueFrom`:
```yaml
extraEnvVars:
- name: LOCALSTACK_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: <name of the secret>
key: <name of the key in the secret containing the API key>
```
#### Auth token from a Kubernetes Secret
If your auth token is stored in a Kubernetes Secret, you can reference it using `valueFrom`:
```yaml
extraEnvVars:
- name: LOCALSTACK_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: <name of the secret>
key: <name of the key in the secret containing the API key>

:::

```

:::note
Keep the existing **parameters table** in this page (or embed it as a collapsible section).
Copy link
Contributor

Choose a reason for hiding this comment

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

Is this line an internal note, or are we keeping it in the docs? If so I don't understand what it means


### Set Pod resource requests and limits

Some environments (notably **EKS on Fargate**) may terminate Pods with low/default resource allocations. Consider setting explicit requests/limits:
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Some environments (notably **EKS on Fargate**) may terminate Pods with low/default resource allocations. Consider setting explicit requests/limits:
Some environments (notably **EKS on Fargate**) may terminate the LocalStack pod if not configured with reasonable requests/limits:

memory: 2Gi
```

### Add env vars and startup scripts
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
### Add env vars and startup scripts
### Add environment variables and startup scripts

```bash
kubectl port-forward -n <namespace> <pod-name> 4566
```

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe can we add a section like this on proxy networking?


Certificate issues when spawning child pods

If you are experiencing an error similar to

localstack.services.lambda_.invocation.assignment.AssignmentException: Could not start new environment: MaxRetryError:MyHTTPSConnectionPool(host='192.168.0.1', port=443): Max retries exceeded with url: /api/v1/namespaces/ns-perf-a39e28bf-c600-498d-9ecc-41419eca1007/pods/lambda-pod-52c280f8dd194dc72bced60e190db6ef/log (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1032)')))

when creating child pods (a Lambda pod in the example above) then your proxy settings may be being applied to cluster internal communication.

If you are using HTTP_PROXY or HTTPS_PROXY environment variables to configure a TLS terminating proxy server (for example in corporate environments), then you may need to add the Kubernetes API server IP address to the NO_PROXY environment variable. With the example above, add NO_PROXY=192.168.0.1 to your pod environment variables.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants