00e76c1572
This PS brings in a container for setting up a Kubeadm based AIO environement for development and Gating purposes. Change-Id: Ice96b03b519a380d4679d701e4bbb97024bb2fb5
70 lines
2.5 KiB
Docker
70 lines
2.5 KiB
Docker
FROM ubuntu:16.04
|
|
MAINTAINER pete.birley@att.com
|
|
|
|
ARG HELM_VERSION=v2.3.0
|
|
|
|
ENV container="docker" \
|
|
DEBIAN_FRONTEND="noninteractive"
|
|
|
|
RUN set -x \
|
|
&& cd /tmp \
|
|
&& apt-get update \
|
|
&& apt-get install -y \
|
|
apt-transport-https \
|
|
ca-certificates \
|
|
curl \
|
|
# Add Kubernetes repo
|
|
&& curl -sSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
|
|
&& echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list \
|
|
&& apt-get update \
|
|
&& apt-get install -y \
|
|
docker.io \
|
|
iptables \
|
|
kubectl \
|
|
kubelet \
|
|
kubernetes-cni \
|
|
# Install Kubeadm without running postinstall script as it expects systemd to be running.
|
|
&& apt-get download kubeadm \
|
|
&& dpkg --unpack kubeadm*.deb \
|
|
&& mv /var/lib/dpkg/info/kubeadm.postinst /opt/kubeadm.postinst \
|
|
&& dpkg --configure kubeadm \
|
|
&& apt-get install -yf kubeadm \
|
|
&& mkdir -p /etc/kubernetes/manifests \
|
|
# Move kubelet binary as we will run containerised
|
|
&& mv /usr/bin/kubelet /usr/bin/kubelet-real \
|
|
# Install helm binary
|
|
&& curl -sSL https://storage.googleapis.com/kubernetes-helm/helm-${HELM_VERSION}-linux-amd64.tar.gz | tar -zxv --strip-components=1 \
|
|
&& mv /tmp/helm /usr/bin/helm \
|
|
# Install openstack-helm dev utils
|
|
&& apt-get install -y \
|
|
make \
|
|
git \
|
|
vim \
|
|
# Install nfs utils for development PVC provisioner
|
|
nfs-common \
|
|
# Tweak Systemd units and targets for running in a container
|
|
&& find /lib/systemd/system/sysinit.target.wants/ ! -name 'systemd-tmpfiles-setup.service' -type l -exec rm -fv {} + \
|
|
&& rm -fv \
|
|
/lib/systemd/system/multi-user.target.wants/* \
|
|
/etc/systemd/system/*.wants/* \
|
|
/lib/systemd/system/local-fs.target.wants/* \
|
|
/lib/systemd/system/sockets.target.wants/*udev* \
|
|
/lib/systemd/system/sockets.target.wants/*initctl* \
|
|
/lib/systemd/system/basic.target.wants/* \
|
|
# Clean up apt cache
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
# Clean up tmp dir
|
|
&& cd / \
|
|
&& rm -rf /tmp/*
|
|
|
|
# Load assets into place, setup startup target & units
|
|
COPY ./assets/ /
|
|
RUN set -x \
|
|
&& ln -s /usr/lib/systemd/system/container-up.target /etc/systemd/system/default.target \
|
|
&& mkdir -p /etc/systemd/system/container-up.target.wants \
|
|
&& ln -s /usr/lib/systemd/system/kubeadm-aio.service /etc/systemd/system/container-up.target.wants/kubeadm-aio.service
|
|
|
|
VOLUME /sys/fs/cgroup
|
|
|
|
CMD /kubeadm-aio
|