Skip to content

Instantly share code, notes, and snippets.

@mikamboo
Last active April 30, 2020 13:10
Show Gist options
  • Save mikamboo/24a58cbb235e85094ca7afe13e2ba8c3 to your computer and use it in GitHub Desktop.
Save mikamboo/24a58cbb235e85094ca7afe13e2ba8c3 to your computer and use it in GitHub Desktop.
Kubernet Pod initialisation container using python3 aws-cli
apiVersion: v1
kind: ConfigMap
metadata:
name: aws-config
namespace: default
data:
region: eu-west-1
apiVersion: v1
kind: Secret
metadata:
name: aws-secret
type: Opaque
data:
AWS_ACCESS_KEY_ID: XXXXXXXX # base64 encoded
AWS_SECRET_ACCESS_KEY: XXXXXXXXXXXXXXXX # base64 encoded
# company/python3-aws docker image
FROM python:3.7-alpine
RUN pip3 --no-cache install awscli awscli-plugin-endpoint
ENTRYPOINT ["aws"]
# docker build -t company/awscli .
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
volumes:
- name: shared-data
emptyDir: {}
initContainers:
- name: example-init-container
image: mikamboo/aws
command: ['/bin/sh']
args:
- '-c'
- 'aws s3 ls > /pod-data/data.txt'
env:
- name: AWS_DEFAULT_REGION
valueFrom:
configMapKeyRef:
name: aws-config
key: region
envFrom:
- secretRef:
name: aws-secret
volumeMounts:
- name: shared-data
mountPath: /pod-data
containers:
- name: example-pod-container
image: k8s.gcr.io/busybox
command: ['cat', '/pod-data/data.txt']
volumeMounts:
- name: shared-data
mountPath: /pod-data
restartPolicy: Never

Alpine : AWS CLI

https://hub.docker.com/repository/docker/mikamboo/aws

Dockerfile

FROM python:3.7-alpine

RUN pip3 --no-cache install awscli awscli-plugin-endpoint

ENTRYPOINT ["aws"]

Build

docker build -t mikamboo/aws .

Use

docker run --rm mikamboo/aws aws --version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment