Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
- Создан новый Docker образ k8s для работы с Kind, kubectl, Helm, Istio CLI - Добавлены команды make k8s: create, destroy, stop, start, status, config, nodes, addon, shell - Добавлена поддержка пресетов Kubernetes в molecule/presets/k8s/ - Создан скрипт create_k8s_cluster.py для автоматического создания кластеров и установки аддонов - Добавлена документация docs/kubernetes-kind.md - Команды kubectl выполняются внутри контейнера k8s, не требуют локальной установки
74 lines
2.5 KiB
Docker
74 lines
2.5 KiB
Docker
# Kubernetes Kind Container - Multi-Arch
|
|
# Автор: Сергей Антропов
|
|
# Сайт: https://devops.org.ru
|
|
|
|
ARG TARGETARCH
|
|
|
|
FROM ubuntu:22.04
|
|
|
|
# Обновляем систему
|
|
RUN apt-get update && apt-get upgrade -y && apt-get clean
|
|
|
|
# Устанавливаем базовые пакеты
|
|
RUN apt-get install -y \
|
|
wget \
|
|
curl \
|
|
git \
|
|
vim \
|
|
bash \
|
|
ca-certificates \
|
|
python3 \
|
|
python3-yaml \
|
|
file \
|
|
apt-transport-https \
|
|
gnupg \
|
|
lsb-release \
|
|
&& apt-get clean
|
|
|
|
# Устанавливаем Docker CLI
|
|
RUN DOCKER_VERSION=20.10.24 && \
|
|
if [ "${TARGETARCH}" = "amd64" ]; then \
|
|
wget -O /tmp/docker-cli.tgz "https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz" && \
|
|
tar -xz -C /tmp -f /tmp/docker-cli.tgz && \
|
|
mv /tmp/docker/docker /usr/local/bin/ && \
|
|
rm -rf /tmp/docker-cli.tgz /tmp/docker; \
|
|
else \
|
|
wget -O /tmp/docker-cli.tgz "https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKER_VERSION}.tgz" && \
|
|
tar -xz -C /tmp -f /tmp/docker-cli.tgz && \
|
|
mv /tmp/docker/docker /usr/local/bin/ && \
|
|
rm -rf /tmp/docker-cli.tgz /tmp/docker; \
|
|
fi && \
|
|
chmod +x /usr/local/bin/docker
|
|
|
|
# Устанавливаем kubectl
|
|
RUN if [ "${TARGETARCH}" = "amd64" ]; then \
|
|
wget -O kubectl "https://dl.k8s.io/release/v1.34.1/bin/linux/amd64/kubectl"; \
|
|
else \
|
|
wget -O kubectl "https://dl.k8s.io/release/v1.34.1/bin/linux/arm64/kubectl"; \
|
|
fi && \
|
|
chmod +x kubectl && \
|
|
mv kubectl /usr/local/bin/
|
|
|
|
# Устанавливаем Helm
|
|
RUN wget https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 -O - | bash
|
|
|
|
# Устанавливаем Kind v0.30.0
|
|
RUN if [ "${TARGETARCH}" = "amd64" ]; then \
|
|
wget -O /usr/local/bin/kind "https://github.com/kubernetes-sigs/kind/releases/download/v0.30.0/kind-linux-amd64"; \
|
|
else \
|
|
wget -O /usr/local/bin/kind "https://github.com/kubernetes-sigs/kind/releases/download/v0.30.0/kind-linux-arm64"; \
|
|
fi && \
|
|
chmod +x /usr/local/bin/kind && \
|
|
ls -lh /usr/local/bin/kind && \
|
|
file /usr/local/bin/kind
|
|
|
|
# Устанавливаем Istio CLI
|
|
RUN ARCH=$(echo ${TARGETARCH} | sed 's/amd64/x86_64/; s/arm64/aarch64/') && \
|
|
ISTIO_VERSION=1.22.1 && \
|
|
wget -qO- https://istio.io/downloadIstio | ISTIO_VERSION=${ISTIO_VERSION} TARGET_ARCH=${ARCH} sh - && \
|
|
mv istio-${ISTIO_VERSION}/bin/istioctl /usr/local/bin/ && \
|
|
rm -rf istio-${ISTIO_VERSION}
|
|
|
|
# Команда по умолчанию
|
|
CMD ["sleep", "infinity"]
|