Add custom Jump Host image

This change introduces a custom Jump Host image to include jq and the
DMTF Redfish tool. This will enable SIP to provide sub-cluster virtual
machine reboot capabilities.

Signed-off-by: Drew Walters <andrew.walters@att.com>
Change-Id: Ic38a13707a28ef7a7ea868d35b58df9b619c7b15
This commit is contained in:
Drew Walters 2021-02-12 16:40:47 +00:00
parent 6fa7c3f141
commit 9fcfae7107
5 changed files with 48 additions and 24 deletions

View File

@ -1,15 +1,17 @@
# Docker Image Options
DOCKER_REGISTRY ?= quay.io
DOCKER_FORCE_CLEAN ?= true
DOCKER_IMAGE_NAME ?= sip
DOCKER_IMAGE_PREFIX ?= airshipit
DOCKER_IMAGE_TAG ?= latest
DOCKER_TARGET_STAGE ?= release
PUBLISH ?= false
DOCKER_REGISTRY ?= quay.io
DOCKER_FORCE_CLEAN ?= true
DOCKER_IMAGE_PREFIX ?= airshipit
DOCKER_IMAGE_TAG ?= latest
DOCKER_TARGET_STAGE ?= release
PUBLISH ?= false
# Image URL to use all building/pushing image targets
#IMG ?= controller:latest
IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)
JUMP_HOST_IMAGE_NAME ?= jump-host
SIP_IMAGE_NAME ?= sip
# Image URLs to build/publish images
JUMP_HOST_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/$(JUMP_HOST_IMAGE_NAME):$(DOCKER_IMAGE_TAG)
SIP_IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/$(SIP_IMAGE_NAME):$(DOCKER_IMAGE_TAG)
# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
CRD_OPTIONS ?= "crd:trivialVersions=true"
@ -59,7 +61,7 @@ uninstall: manifests
# Deploy controller in the configured Kubernetes cluster in ~/.kube/config
deploy: manifests
cd config/manager && kustomize edit set image controller=${IMG}
cd config/manager && kustomize edit set image controller=${SIP_IMG}
kustomize build config/default | kubectl apply -f -
# Generate manifests e.g. CRD, RBAC etc.
@ -78,14 +80,23 @@ vet:
generate: controller-gen
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
# Build the docker image
# If DOCKER_PROXY_FLAGS values are empty, we are fine with that
docker-build:
docker build ${DOCKER_PROXY_FLAGS} . -t ${IMG}
images: docker-build-controller docker-build-jump-host
# Push the docker image
docker-push:
docker push ${IMG}
# Build the SIP Docker image
# NOTE: DOCKER_PROXY_FLAGS can be empty.
docker-build-controller:
docker build ${DOCKER_PROXY_FLAGS} . -t ${SIP_IMG}
# Build the Jump Host Docker image
# NOTE: DOCKER_PROXY_FLAGS can be empty.
docker-build-jump-host:
docker build ${DOCKER_PROXY_FLAGS} -f images/jump-host/Dockerfile . -t ${JUMP_HOST_IMG}
docker-push-controller:
docker push ${SIP_IMG}
docker-push-jump-host:
docker push ${JUMP_HOST_IMG}
# Generate API reference documentation
api-docs: gen-crd-api-reference-docs
@ -139,4 +150,4 @@ $(TOOLBINDIR):
.PHONY: check-git-diff
check-git-diff:
@./tools/git_diff_check
@./tools/git_diff_check

View File

@ -111,7 +111,7 @@ USE_PROXY=true
### Deploy SIP
```
# make docker-build
# make docker-build-controller
# kubectl get nodes
# make deploy
```

View File

@ -0,0 +1,9 @@
ARG BASE_IMAGE=gcr.io/google-appengine/python
FROM ${BASE_IMAGE}
RUN apt-get update
RUN apt-get install -y --no-install-recommends jq
RUN pip3 install requests python-dateutil redfishtool
CMD ["/bin/bash"]

View File

@ -63,7 +63,11 @@
make:
chdir: "{{ zuul.project.src_dir }}"
target: check-git-diff
- name: Build Docker image
- name: Build SIP Docker image
make:
chdir: "{{ zuul.project.src_dir }}"
target: docker-build
target: docker-build-controller
- name: Build Jump Host Docker image
make:
chdir: "{{ zuul.project.src_dir }}"
target: docker-build-jump-host

View File

@ -1,7 +1,7 @@
#!/bin/bash
set -xe
sudo snap install kustomize && sudo snap install go --classic
make docker-build
make images
kubectl wait --for=condition=Ready pods --all -A --timeout=180s
make deploy
#Wait for sip controller manager Pod
@ -15,4 +15,4 @@ until [[ $(kubectl -n sipcluster-system get pod -l control-plane=controller-mana
sleep 2
done
kubectl wait -n sipcluster-system pod -l control-plane=controller-manager --for=condition=ready --timeout=240s
kubectl get po -A
kubectl get po -A