Cleanup of docker images

This commit is contained in:
Manuel Alejandro de Brito Fontes 2019-09-03 15:33:11 -04:00
parent d7dc7be276
commit dc20551288
No known key found for this signature in database
GPG key ID: 786136016A8BA02A
20 changed files with 48 additions and 45 deletions

View file

@ -1,2 +0,0 @@
The 404-server (defaultbackend) has moved to the
[kubernetes/ingress-gce](https://github.com/kubernetes/ingress-gce) repository.

View file

@ -1,5 +1,7 @@
approvers:
- aledbf
- ElvinEfendi
reviewers:
- bprashanth
- ElvinEfendi
- aledbf

14
images/README.md Normal file
View file

@ -0,0 +1,14 @@
# Docker images
Directory | Purpose
------------ | -------------
custom-error-pages | Example of Custom error pages for the NGINX Ingress controller
e2e | Image to run e2e tests
e2e-prow | Image to launch Prow jobs
fastcgi-helloserver | FastCGI application for e2e tests
grpc-fortune-teller | grpc server application for the nginx-ingress grpc example
httpbin | A simple HTTP Request & Response Service
mkdocs | Image to build the static documentation
nginx | OpenResty base image using [debian-base](https://quay.io/kubernetes-ingress-controller/debian-base-amd64)
:bangbang: Only the nginx image is meant to be published. The others are used as examples for some feature of the ingress controller or to run e2e tests.

View file

@ -25,11 +25,11 @@ endif
ARCH ?= $(shell go env GOARCH)
GOARCH = ${ARCH}
BASEIMAGE?=alpine:3.9
BASEIMAGE?=alpine:3.10
ALL_ARCH = amd64 arm arm64 ppc64le
ALL_ARCH = amd64 arm arm64
QEMUVERSION=v3.0.0
QEMUVERSION=v4.1.0-1
IMGNAME = custom-error-pages
IMAGE = $(REGISTRY)/$(IMGNAME)
@ -40,11 +40,7 @@ ifeq ($(ARCH),arm)
GOARCH=arm
endif
ifeq ($(ARCH),arm64)
QEMUARCH=aarch64
endif
ifeq ($(ARCH),ppc64le)
QEMUARCH=ppc64le
GOARCH=ppc64le
QEMUARCH=aarch64
endif
TEMP_DIR := $(shell mktemp -d)

View file

@ -0,0 +1,74 @@
# Copyright 2016 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This file creates a build environment for building and running kubernetes
# unit and integration tests
FROM gcr.io/k8s-testimages/bootstrap
# hint to kubetest that it is in CI
ENV KUBETEST_IN_DOCKER="true"
# Go standard envs
ENV GOPATH /go
ENV PATH /usr/local/go/bin:$PATH
RUN mkdir -p /go/bin
ENV PATH $GOPATH/bin:$PATH
# setup k8s repo symlink
RUN mkdir -p /go/src/k8s.io/kubernetes \
&& ln -s /go/src/k8s.io/kubernetes /workspace/kubernetes
# preinstall:
# - graphviz package for graphing profiles
# - bc for shell to junit
# - rpm for building RPMs with Bazel
RUN apt-get update \
&& apt-get install -y \
bc \
rpm \
&& rm -rf /var/lib/apt/lists/*
ARG K8S_RELEASE
ARG ETCD_VERSION
ARG KIND_VERSION
RUN curl -sSL https://storage.googleapis.com/kubernetes-release/release/${K8S_RELEASE}/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl \
&& chmod +x /usr/local/bin/kubectl
RUN curl -sSL https://storage.googleapis.com/kubernetes-release/release/${K8S_RELEASE}/bin/linux/amd64/kube-apiserver -o /usr/local/bin/kube-apiserver \
&& chmod +x /usr/local/bin/kube-apiserver
RUN curl -sSL https://storage.googleapis.com/etcd/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VERSION}-linux-amd64.tar.gz \
&& mkdir -p /tmp/etcd-download \
&& tar xzvf /tmp/etcd-${ETCD_VERSION}-linux-amd64.tar.gz -C /tmp/etcd-download --strip-components=1 \
&& cp /tmp/etcd-download/etcd /usr/local/bin \
&& rm -rf /tmp/etcd-download
RUN curl -sSL https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-linux-amd64 -o /usr/local/bin/kind \
&& chmod +x /usr/local/bin/kind
# install go
ENV GO_VERSION 1.13
ENV GO_TARBALL "go${GO_VERSION}.linux-amd64.tar.gz"
RUN wget -q "https://storage.googleapis.com/golang/${GO_TARBALL}" \
&& tar xzf "${GO_TARBALL}" -C /usr/local \
&& rm "${GO_TARBALL}"
RUN go get github.com/onsi/ginkgo/ginkgo \
&& go get golang.org/x/lint/golint \
&& rm -rf /go/src/github.com
ENV KUBEBUILDER_ASSETS /usr/local/bin

20
images/e2e-prow/Makefile Normal file
View file

@ -0,0 +1,20 @@
TAG ?=v$(shell date +%m%d%Y)-$(shell git rev-parse --short HEAD)
REGISTRY ?= quay.io/kubernetes-ingress-controller
DOCKER ?= docker
IMAGE = $(REGISTRY)/e2e-prow
all: docker-build docker-push
docker-build:
$(DOCKER) build \
--pull \
--build-arg K8S_RELEASE=v1.15.3 \
--build-arg ETCD_VERSION=v3.3.15 \
--build-arg KIND_VERSION=v0.5.1 \
-t $(IMAGE):$(TAG) .
docker-push:
$(DOCKER) push $(IMAGE):$(TAG)
$(DOCKER) tag $(IMAGE):$(TAG) $(IMAGE):latest
$(DOCKER) push $(IMAGE):latest

View file

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM quay.io/kubernetes-ingress-controller/nginx-amd64:0.90
FROM quay.io/kubernetes-ingress-controller/nginx-amd64:0.91
RUN clean-install \
g++ \
@ -24,9 +24,9 @@ RUN clean-install \
python \
pkg-config
ENV GOLANG_VERSION 1.12.6
ENV GOLANG_VERSION 1.13
ENV GO_ARCH linux-amd64
ENV GOLANG_SHA dbcf71a3c1ea53b8d54ef1b48c85a39a6c9a935d01fc8291ff2b92028e59913c
ENV GOLANG_SHA 68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856
RUN set -eux; \
url="https://golang.org/dl/go${GOLANG_VERSION}.${GO_ARCH}.tar.gz"; \
@ -44,8 +44,8 @@ RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
WORKDIR $GOPATH
ENV RESTY_CLI_VERSION 0.23
ENV RESTY_CLI_SHA 8715b9a6e33140fd468779cd561c0c622f7444a902dc578b1137941ff3fc1ed8
ENV RESTY_CLI_VERSION 0.25rc2
ENV RESTY_CLI_SHA a38d850441384fa037a5922ca012dcce8708d0e4abe34ad2fe4164a01b28bdfb
RUN set -eux; \
url="https://github.com/openresty/resty-cli/archive/v${RESTY_CLI_VERSION}.tar.gz"; \

View file

@ -23,8 +23,8 @@ all: docker-build docker-push
docker-build:
$(DOCKER) build \
--pull \
--build-arg K8S_RELEASE=v1.15.0 \
--build-arg ETCD_VERSION=v3.3.12 \
--build-arg K8S_RELEASE=v1.15.3 \
--build-arg ETCD_VERSION=v3.3.15 \
-t $(IMAGE):$(TAG) .
docker-push:

View file

@ -21,11 +21,11 @@ REPO_INFO=$(shell git config --get remote.origin.url)
ARCH ?= $(shell go env GOARCH)
GOARCH = ${ARCH}
BASEIMAGE?=alpine:3.9
BASEIMAGE?=alpine:3.10
ALL_ARCH = amd64 arm arm64 ppc64le
ALL_ARCH = amd64 arm arm64
QEMUVERSION=v3.0.0
QEMUVERSION=v4.1.0-1
IMGNAME = fastcgi-helloserver
IMAGE = $(REGISTRY)/$(IMGNAME)
@ -36,11 +36,7 @@ ifeq ($(ARCH),arm)
GOARCH=arm
endif
ifeq ($(ARCH),arm64)
QEMUARCH=aarch64
endif
ifeq ($(ARCH),ppc64le)
QEMUARCH=ppc64le
GOARCH=ppc64le
QEMUARCH=aarch64
endif
TEMP_DIR := $(shell mktemp -d)

View file

@ -24,7 +24,7 @@ BASEIMAGE?=quay.io/kubernetes-ingress-controller/debian-base-$(ARCH):0.1
ALL_ARCH = amd64 arm arm64
QEMUVERSION=v4.0.0
QEMUVERSION=v4.1.0-1
IMGNAME = httpbin
IMAGE = $(REGISTRY)/$(IMGNAME)
@ -36,9 +36,6 @@ endif
ifeq ($(ARCH),arm64)
QEMUARCH=aarch64
endif
ifeq ($(ARCH),ppc64le)
QEMUARCH=ppc64le
endif
TEMP_DIR := $(shell mktemp -d)

40
images/mkdocs/Dockerfile Normal file
View file

@ -0,0 +1,40 @@
# Copyright 2018 The Kubernetes Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM alpine:3.10
RUN apk update && apk add --no-cache \
bash \
git \
git-fast-import \
openssh \
python3 \
python3-dev \
curl \
&& python3 -m ensurepip \
&& rm -r /usr/lib/python*/ensurepip \
&& pip3 install --upgrade pip setuptools \
&& rm -r /root/.cache \
&& rm -rf /var/cache/apk/*
RUN curl -sSL https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/requirements-docs.txt -o requirements.txt \
&& pip install -U -r requirements.txt
WORKDIR /docs
EXPOSE 3000
COPY entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]

28
images/mkdocs/entrypoint.sh Executable file
View file

@ -0,0 +1,28 @@
#!/bin/bash
# Copyright 2018 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -o errexit
set -o pipefail
CMD=$1
if [ "$CMD" == "build" ];
then
mkdocs build
exit 0;
fi
mkdocs serve --dev-addr=0.0.0.0:3000 --livereload

View file

@ -26,7 +26,7 @@ ifeq ($(GOHOSTOS),darwin)
SED_I=sed -i ''
endif
QEMUVERSION=v4.0.0-2
QEMUVERSION=v4.1.0-1
IMGNAME = nginx
IMAGE = $(REGISTRY)/$(IMGNAME)

View file

@ -1,3 +0,0 @@
# Deprecated
Please switch to [debian-base](https://github.com/kubernetes/kubernetes/tree/master/build/debian-base)