그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그 그
2 minute read
Getting Started with etcd-druid, LocalStack, and Kind
This guide provides step-by-step instructions on how to set up etcd-druid with LocalStack and Kind on your local machine. LocalStack emulates AWS services locally, which allows the etcd cluster to interact with AWS S3 without the need for an actual AWS connection. This setup is ideal for local development and testing.
Prerequisites
- Docker (installed and running)
- AWS CLI (version
>=1.29.0
or>=2.13.0
)
Environment Setup
Step 1: Provision the Kind Cluster
Execute the command below to provision a kind
cluster. This command also forwards port 4566
from the kind cluster to your local machine, enabling LocalStack access:
make kind-up
Step 2: Deploy LocalStack
Deploy LocalStack onto the Kubernetes cluster using the command below:
make deploy-localstack
Step 3: Set up an S3 Bucket
- Set up the AWS CLI to interact with LocalStack by setting the necessary environment variables. This configuration redirects S3 commands to the LocalStack endpoint and provides the required credentials for authentication:
export AWS_ENDPOINT_URL_S3="http://localhost:4566"
export AWS_ACCESS_KEY_ID=ACCESSKEYAWSUSER
export AWS_SECRET_ACCESS_KEY=sEcreTKey
export AWS_DEFAULT_REGION=us-east-2
- Create an S3 bucket for etcd-druid backup purposes:
aws s3api create-bucket --bucket etcd-bucket --region us-east-2 --create-bucket-configuration LocationConstraint=us-east-2 --acl private
Step 4: Deploy etcd-druid
Deploy etcd-druid onto the Kind cluster using the command below:
make deploy
Step 5: Configure etcd with LocalStack Store
Apply the required Kubernetes manifests to create an etcd custom resource (CR) and a secret for AWS credentials, facilitating LocalStack access:
export KUBECONFIG=hack/e2e-test/infrastructure/kind/kubeconfig
kubectl apply -f config/samples/druid_v1alpha1_etcd_localstack.yaml -f config/samples/etcd-secret-localstack.yaml
Step 6: Reconcile the etcd
Initiate etcd reconciliation by annotating the etcd resource with the gardener.cloud/operation=reconcile
annotation:
kubectl annotate etcd etcd-test gardener.cloud/operation=reconcile
Congratulations! You have successfully configured etcd-druid
, LocalStack
, and kind
on your local machine. Inspect the etcd-druid logs and LocalStack to ensure the setup operates as anticipated.
To validate the buckets, execute the following command:
aws s3 ls etcd-bucket/etcd-test/v2/
Cleanup
To dismantle the setup, execute the following command:
make kind-down
unset AWS_ENDPOINT_URL_S3 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION KUBECONFIG