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 Image Options
DOCKER_REGISTRY ?= quay.io DOCKER_REGISTRY ?= quay.io
DOCKER_FORCE_CLEAN ?= true DOCKER_FORCE_CLEAN ?= true
DOCKER_IMAGE_NAME ?= sip DOCKER_IMAGE_PREFIX ?= airshipit
DOCKER_IMAGE_PREFIX ?= airshipit DOCKER_IMAGE_TAG ?= latest
DOCKER_IMAGE_TAG ?= latest DOCKER_TARGET_STAGE ?= release
DOCKER_TARGET_STAGE ?= release PUBLISH ?= false
PUBLISH ?= false
# Image URL to use all building/pushing image targets JUMP_HOST_IMAGE_NAME ?= jump-host
#IMG ?= controller:latest SIP_IMAGE_NAME ?= sip
IMG ?= $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)
# 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) # Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
CRD_OPTIONS ?= "crd:trivialVersions=true" CRD_OPTIONS ?= "crd:trivialVersions=true"
@ -59,7 +61,7 @@ uninstall: manifests
# Deploy controller in the configured Kubernetes cluster in ~/.kube/config # Deploy controller in the configured Kubernetes cluster in ~/.kube/config
deploy: manifests 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 - kustomize build config/default | kubectl apply -f -
# Generate manifests e.g. CRD, RBAC etc. # Generate manifests e.g. CRD, RBAC etc.
@ -78,14 +80,23 @@ vet:
generate: controller-gen generate: controller-gen
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..." $(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
# Build the docker image images: docker-build-controller docker-build-jump-host
# If DOCKER_PROXY_FLAGS values are empty, we are fine with that
docker-build:
docker build ${DOCKER_PROXY_FLAGS} . -t ${IMG}
# Push the docker image # Build the SIP Docker image
docker-push: # NOTE: DOCKER_PROXY_FLAGS can be empty.
docker push ${IMG} 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 # Generate API reference documentation
api-docs: gen-crd-api-reference-docs api-docs: gen-crd-api-reference-docs
@ -139,4 +150,4 @@ $(TOOLBINDIR):
.PHONY: check-git-diff .PHONY: check-git-diff
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 ### Deploy SIP
``` ```
# make docker-build # make docker-build-controller
# kubectl get nodes # kubectl get nodes
# make deploy # 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: make:
chdir: "{{ zuul.project.src_dir }}" chdir: "{{ zuul.project.src_dir }}"
target: check-git-diff target: check-git-diff
- name: Build Docker image - name: Build SIP Docker image
make: make:
chdir: "{{ zuul.project.src_dir }}" 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 #!/bin/bash
set -xe set -xe
sudo snap install kustomize && sudo snap install go --classic sudo snap install kustomize && sudo snap install go --classic
make docker-build make images
kubectl wait --for=condition=Ready pods --all -A --timeout=180s kubectl wait --for=condition=Ready pods --all -A --timeout=180s
make deploy make deploy
#Wait for sip controller manager Pod #Wait for sip controller manager Pod
@ -15,4 +15,4 @@ until [[ $(kubectl -n sipcluster-system get pod -l control-plane=controller-mana
sleep 2 sleep 2
done done
kubectl wait -n sipcluster-system pod -l control-plane=controller-manager --for=condition=ready --timeout=240s kubectl wait -n sipcluster-system pod -l control-plane=controller-manager --for=condition=ready --timeout=240s
kubectl get po -A kubectl get po -A