Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .github/workflows/docker-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,13 @@ jobs:
- alpine
- fedora
terraform:
- v1.0
- v1.1
- v1.2
- v1.6
- v1.7
- v1.8
- v1.9

env:
TERRAFORM_LATEST: "v1.2"
TERRAFORM_LATEST: "v1.9"

steps:
- name: Checkout
Expand Down
96 changes: 44 additions & 52 deletions Containerfile-alpine
Original file line number Diff line number Diff line change
@@ -1,114 +1,106 @@
ARG TERRAFORM_VERSION=v1.2
ARG TERRAFORM_VERSION=v1.9
FROM quay.io/cloudnativetoolkit/terraform:${TERRAFORM_VERSION}-v4.0.0-alpine

ARG TARGETPLATFORM
ARG BASE_OS=alpine
ARG OPENSHIFT_CLI_VERSION=4.10
ARG KUBESEAL_VERSION=0.18.1
ARG ARGOCD_VERSION=2.4.6
ARG KUSTOMIZE_VERSION=4.5.5
ARG TKN_VERSION=0.23.1
ARG OPENSHIFT_CLI_VERSION=4.17
ARG KUBESEAL_VERSION=0.28.0
ARG ARGOCD_VERSION=2.14.4
ARG KUSTOMIZE_VERSION=5.6.0
ARG TKN_VERSION=1.17.1

ENV TF_CLI_ARGS_apply="-parallelism=6"
ENV TF_LOG_PROVIDER_gitops=DEBUG
ENV TF_LOG_PROVIDER_clis=DEBUG

RUN sudo apk add --no-cache \
USER root
RUN apk add --no-cache --force-broken-world \
ca-certificates \
perl \
openvpn \
apache2-utils \
&& sudo rm -rf /var/cache/apk/*
&& rm -rf /var/cache/apk/*

WORKDIR $GOPATH/bin

COPY src/bin/* /usr/local/bin/

COPY --chown=devops:root src/home/ ${HOME}/

WORKDIR ${HOME}

RUN cat ./image-message >> ./.bashrc-ni

RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/clients/ocp/stable-${OPENSHIFT_CLI_VERSION}/openshift-client-linux.tar.gz --output oc-client.tar.gz && \
mkdir tmp && \
RUN mkdir tmp && \
cd tmp && \
tar xzf ../oc-client.tar.gz && \
sudo mv ./oc /usr/local/bin && \
curl -L https://mirror.openshift.com/pub/openshift-v4/$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/clients/ocp/stable-${OPENSHIFT_CLI_VERSION}/openshift-client-linux.tar.gz --output oc-client.tar.gz && \
tar xzf oc-client.tar.gz && \
mv ./oc /usr/local/bin && \
cd .. && \
rm -rf tmp && \
rm oc-client.tar.gz
rm -rf tmp

RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/kubectl" && \
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/kubectl" && \
chmod +x ./kubectl && \
sudo mv ./kubectl /usr/local/bin && \
mv ./kubectl /usr/local/bin && \
kubectl version --client

RUN curl -sL -o ./yq3 $(curl -sL https://api.github.com/repos/mikefarah/yq/releases/tags/3.4.1 | jq -r --arg NAME "yq_linux_$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)" '.assets[] | select(.name == $NAME) | .browser_download_url') && \
RUN curl -sL -o ./yq3 $(curl -sL https://api.github.com/repos/mikefarah/yq/releases/tags/3.4.1 | jq -r --arg NAME "yq_linux_$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)" '.assets[] | select(.name == $NAME) | .browser_download_url') && \
chmod +x ./yq3 && \
sudo mv ./yq3 /usr/bin/yq3 && \
mv ./yq3 /usr/bin/yq3 && \
yq3 --version

RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash && helm version

## kubeseal
RUN curl -sLo kubeseal.tar.gz https://github.com/bitnami-labs/sealed-secrets/releases/download/v${KUBESEAL_VERSION}/kubeseal-${KUBESEAL_VERSION}-linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
mkdir tmp && \
RUN mkdir tmp && \
cd tmp && \
tar xzf ../kubeseal.tar.gz && \
curl -sLo kubeseal.tar.gz https://github.com/bitnami-labs/sealed-secrets/releases/download/v${KUBESEAL_VERSION}/kubeseal-${KUBESEAL_VERSION}-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf kubeseal.tar.gz && \
chmod +x kubeseal && \
sudo mv kubeseal /usr/local/bin && \
mv kubeseal /usr/local/bin && \
cd .. && \
rm -rf tmp && \
rm kubeseal.tar.gz && \
kubeseal --version

## argocd
RUN curl -sLo argocd https://github.com/argoproj/argo-cd/releases/download/v${ARGOCD_VERSION}/argocd-linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi) && \
RUN curl -sLo argocd https://github.com/argoproj/argo-cd/releases/download/v${ARGOCD_VERSION}/argocd-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi) && \
chmod +x argocd && \
sudo mv argocd /usr/local/bin && \
mv argocd /usr/local/bin && \
argocd version --client

## kustomize
RUN curl -sLo kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
mkdir tmp && \
RUN mkdir tmp && \
cd tmp && \
tar xzf ../kustomize.tar.gz && \
sudo mv kustomize /usr/local/bin && \
curl -sLo kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf kustomize.tar.gz && \
mv kustomize /usr/local/bin && \
cd .. && \
rm -rf tmp && \
rm kustomize.tar.gz && \
kustomize version

## tkn
RUN if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then exit 0; fi; \
curl -sLo tkn.tar.gz https://mirror.openshift.com/pub/openshift-v4/amd64/clients/pipeline/${TKN_VERSION}/tkn-linux-amd64-${TKN_VERSION}.tar.gz && \
mkdir tmp && \
RUN mkdir tmp && \
cd tmp && \
tar xzf ../tkn.tar.gz && \
sudo mv tkn /usr/local/bin && \
curl -sLo tkn.tar.gz https://mirror.openshift.com/pub/openshift-v4/clients/pipelines/${TKN_VERSION}/tkn-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf tkn.tar.gz && \
mv tkn /usr/local/bin && \
cd .. && \
rm -rf tmp && \
rm tkn.tar.gz && \
tkn version

ARG IGC_VERSION=1.42.3

## igc
RUN curl -sL -o ./igc https://github.com/cloud-native-toolkit/ibm-garage-cloud-cli/releases/download/v${IGC_VERSION}/igc-${BASE_OS}-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
RUN echo "Base OS: ${BASE_OS}" && curl -sL -o ./igc https://github.com/cloud-native-toolkit/ibm-garage-cloud-cli/releases/download/v${IGC_VERSION}/igc-${BASE_OS}-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
chmod +x igc && \
sudo mv igc /usr/local/bin && \
sudo igc plugins --path /usr/local/bin && \
mv igc /usr/local/bin && \
igc plugins --path /usr/local/bin && \
igc --version

ARG GITU_VERSION=1.14.7

## gitu
RUN curl -sL -o ./gitu https://github.com/cloud-native-toolkit/git-client/releases/download/v${GITU_VERSION}/gitu-${BASE_OS}-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
RUN curl -sL -o ./gitu https://github.com/cloud-native-toolkit/git-client/releases/download/v${GITU_VERSION}/gitu-${BASE_OS}-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
chmod +x gitu && \
sudo mv gitu /usr/local/bin && \
mv gitu /usr/local/bin && \
gitu --version

USER devops

COPY src/bin/* /usr/local/bin/

COPY --chown=devops:root src/home/ ${HOME}/

VOLUME /workspaces

ENTRYPOINT ["/bin/bash"]
ENTRYPOINT ["/bin/bash", "-c", "./image-message && /bin/bash"]
103 changes: 45 additions & 58 deletions Containerfile-fedora
Original file line number Diff line number Diff line change
@@ -1,119 +1,106 @@
ARG TERRAFORM_VERSION=v1.2
ARG TERRAFORM_VERSION=v1.9
FROM quay.io/cloudnativetoolkit/terraform:${TERRAFORM_VERSION}-v4.0.0-fedora

ARG TARGETPLATFORM
ARG BASE_OS=linux
ARG OPENSHIFT_CLI_VERSION=4.10
ARG KUBESEAL_VERSION=0.18.1
ARG ARGOCD_VERSION=2.4.6
ARG KUSTOMIZE_VERSION=4.5.5
ARG TKN_VERSION=0.23.1
ARG OPENSHIFT_CLI_VERSION=4.17
ARG KUBESEAL_VERSION=0.28.0
ARG ARGOCD_VERSION=2.14.4
ARG KUSTOMIZE_VERSION=5.6.0
ARG TKN_VERSION=1.17.1

ENV TF_CLI_ARGS_apply="-parallelism=6"
ENV TF_LOG_PROVIDER_gitops=DEBUG
ENV TF_LOG_PROVIDER_clis=DEBUG

RUN sudo dnf install -y \
USER root
RUN dnf install -y \
ca-certificates \
perl \
openvpn \
httpd-tools \
&& sudo dnf clean all
&& dnf clean all

WORKDIR $GOPATH/bin

COPY src/bin/* /usr/local/bin/

COPY --chown=devops:root src/home/ ${HOME}/

WORKDIR ${HOME}

RUN cat ./image-message >> ./.bashrc-ni

RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/clients/ocp/stable-${OPENSHIFT_CLI_VERSION}/openshift-client-linux.tar.gz --output oc-client.tar.gz && \
mkdir tmp && \
RUN mkdir tmp && \
cd tmp && \
tar xzf ../oc-client.tar.gz && \
sudo mv ./oc /usr/local/bin && \
curl -L https://mirror.openshift.com/pub/openshift-v4/$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/clients/ocp/stable-${OPENSHIFT_CLI_VERSION}/openshift-client-linux.tar.gz --output oc-client.tar.gz && \
tar xzf oc-client.tar.gz && \
mv ./oc /usr/local/bin && \
cd .. && \
rm -rf tmp && \
rm oc-client.tar.gz
rm -rf tmp

RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/kubectl" && \
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/kubectl" && \
chmod +x ./kubectl && \
sudo mv ./kubectl /usr/local/bin && \
mv ./kubectl /usr/local/bin && \
kubectl version --client

RUN curl -sL -o ./yq3 $(curl -sL https://api.github.com/repos/mikefarah/yq/releases/tags/3.4.1 | jq -r --arg NAME "yq_linux_$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)" '.assets[] | select(.name == $NAME) | .browser_download_url') && \
RUN curl -sL -o ./yq3 $(curl -sL https://api.github.com/repos/mikefarah/yq/releases/tags/3.4.1 | jq -r --arg NAME "yq_linux_$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)" '.assets[] | select(.name == $NAME) | .browser_download_url') && \
chmod +x ./yq3 && \
sudo mv ./yq3 /usr/bin/yq3 && \
mv ./yq3 /usr/bin/yq3 && \
yq3 --version

RUN curl -sL -o ./helm.tar.gz https://get.helm.sh/helm-v3.8.2-linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf ./helm.tar.gz linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/helm && \
sudo mv ./linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/helm /usr/bin/helm && \
rmdir ./linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi) && \
rm ./helm.tar.gz && \
helm version
RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash && helm version

## kubeseal
RUN curl -sLo kubeseal.tar.gz https://github.com/bitnami-labs/sealed-secrets/releases/download/v${KUBESEAL_VERSION}/kubeseal-${KUBESEAL_VERSION}-linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
mkdir tmp && \
RUN mkdir tmp && \
cd tmp && \
tar xzf ../kubeseal.tar.gz && \
curl -sLo kubeseal.tar.gz https://github.com/bitnami-labs/sealed-secrets/releases/download/v${KUBESEAL_VERSION}/kubeseal-${KUBESEAL_VERSION}-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf kubeseal.tar.gz && \
chmod +x kubeseal && \
sudo mv kubeseal /usr/local/bin && \
mv kubeseal /usr/local/bin && \
cd .. && \
rm -rf tmp && \
rm kubeseal.tar.gz && \
kubeseal --version

## argocd
RUN curl -sLo argocd https://github.com/argoproj/argo-cd/releases/download/v${ARGOCD_VERSION}/argocd-linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi) && \
RUN curl -sLo argocd https://github.com/argoproj/argo-cd/releases/download/v${ARGOCD_VERSION}/argocd-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi) && \
chmod +x argocd && \
sudo mv argocd /usr/local/bin && \
mv argocd /usr/local/bin && \
argocd version --client

## kustomize
RUN curl -sLo kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
mkdir tmp && \
RUN mkdir tmp && \
cd tmp && \
tar xzf ../kustomize.tar.gz && \
sudo mv kustomize /usr/local/bin && \
curl -sLo kustomize.tar.gz https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf kustomize.tar.gz && \
mv kustomize /usr/local/bin && \
cd .. && \
rm -rf tmp && \
rm kustomize.tar.gz && \
kustomize version

## tkn
RUN if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then exit 0; fi; \
curl -sLo tkn.tar.gz https://mirror.openshift.com/pub/openshift-v4/amd64/clients/pipeline/${TKN_VERSION}/tkn-linux-amd64-${TKN_VERSION}.tar.gz && \
mkdir tmp && \
RUN mkdir tmp && \
cd tmp && \
tar xzf ../tkn.tar.gz && \
sudo mv tkn /usr/local/bin && \
curl -sLo tkn.tar.gz https://mirror.openshift.com/pub/openshift-v4/clients/pipelines/${TKN_VERSION}/tkn-linux-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi).tar.gz && \
tar xzf tkn.tar.gz && \
mv tkn /usr/local/bin && \
cd .. && \
rm -rf tmp && \
rm tkn.tar.gz && \
tkn version

ARG IGC_VERSION=1.42.3

## igc
RUN curl -sL -o ./igc https://github.com/cloud-native-toolkit/ibm-garage-cloud-cli/releases/download/v${IGC_VERSION}/igc-${BASE_OS}-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
RUN echo "Base OS: ${BASE_OS}" && curl -sL -o ./igc https://github.com/cloud-native-toolkit/ibm-garage-cloud-cli/releases/download/v${IGC_VERSION}/igc-${BASE_OS}-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
chmod +x igc && \
sudo mv igc /usr/local/bin && \
sudo igc plugins --path /usr/local/bin && \
mv igc /usr/local/bin && \
igc plugins --path /usr/local/bin && \
igc --version

ARG GITU_VERSION=1.14.7

## gitu
RUN curl -sL -o ./gitu https://github.com/cloud-native-toolkit/git-client/releases/download/v${GITU_VERSION}/gitu-${BASE_OS}-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
RUN curl -sL -o ./gitu https://github.com/cloud-native-toolkit/git-client/releases/download/v${GITU_VERSION}/gitu-${BASE_OS}-$(if [[ "$TARGETPLATFORM" =~ "linux/arm64" ]]; then echo "arm64"; else echo "x64"; fi) && \
chmod +x gitu && \
sudo mv gitu /usr/local/bin && \
mv gitu /usr/local/bin && \
gitu --version

USER devops

COPY src/bin/* /usr/local/bin/

COPY --chown=devops:root src/home/ ${HOME}/

VOLUME /workspaces

ENTRYPOINT ["/bin/bash"]
ENTRYPOINT ["/bin/bash", "-c", "./image-message && /bin/bash"]
14 changes: 6 additions & 8 deletions src/home/image-message
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
#!/usr/bin/env bash
#!/bin/bash


echo -e " ________ __ ___ \033[1;34m______\033[0m ________ __"
echo -e " / _/ __ )/ |/ / \033[1;34m/ ____/___ __________ _____ ____\033[0m / ____/ /___ __ ______/ /"
echo -e " / // __ / /|_/ / \033[1;34m/ / __/ __ \`/ ___/ __ \`/ __ \`/ _ \\ \033[0m / / / / __ \\/ / / / __ / "
echo -e " _/ // /_/ / / / / \033[1;34m/ /_/ / /_/ / / / /_/ / /_/ / __/\033[0m / /___/ / /_/ / /_/ / /_/ / "
echo -e "/___/_____/_/ /_/ \033[1;34m\\____/\\__,_/_/ \\__,_/\\__, /\\___/\033[0m \\____/_/\\____/\\__,_/\\__,_/ "
echo -e " \033[1;34m/____/\033[0m "
echo -e ' ________ __ _ __ __ _ ______ ____ _ __ '
echo -e ' / ____/ /___ __ ______/ / / | / /___ _/ /_(_) _____ /_ __/___ ____ / / /__(_) /_'
echo -e ' / / / / __ \/ / / / __ / / |/ / __ `/ __/ / | / / _ \ / / / __ \/ __ \/ / //_/ / __/'
echo -e '/ /___/ / /_/ / /_/ / /_/ / / /| / /_/ / /_/ /| |/ / __/ / / / /_/ / /_/ / / ,< / / /_ '
echo -e '\____/_/\____/\__,_/\__,_/ /_/ |_/\__,_/\__/_/ |___/\___/ /_/ \____/\____/_/_/|_/_/\__/ '

echo -e "\033[1;34mRun 'image-help' to get a list of available tools, scripts, and ENV properties\033[0m"
Loading