|
1 | | -ARG TERRAFORM_VERSION=v1.2 |
| 1 | +ARG TERRAFORM_VERSION=v1.9 |
2 | 2 | FROM quay.io/cloudnativetoolkit/terraform:${TERRAFORM_VERSION}-v4.0.0-fedora |
3 | 3 |
|
4 | 4 | ARG TARGETPLATFORM |
5 | 5 | ARG BASE_OS=linux |
6 | | -ARG OPENSHIFT_CLI_VERSION=4.10 |
7 | | -ARG KUBESEAL_VERSION=0.18.1 |
8 | | -ARG ARGOCD_VERSION=2.4.6 |
9 | | -ARG KUSTOMIZE_VERSION=4.5.5 |
10 | | -ARG TKN_VERSION=0.23.1 |
| 6 | +ARG OPENSHIFT_CLI_VERSION=4.17 |
| 7 | +ARG KUBESEAL_VERSION=0.28.0 |
| 8 | +ARG ARGOCD_VERSION=2.14.4 |
| 9 | +ARG KUSTOMIZE_VERSION=5.6.0 |
| 10 | +ARG TKN_VERSION=1.17.1 |
11 | 11 |
|
12 | 12 | ENV TF_CLI_ARGS_apply="-parallelism=6" |
13 | 13 | ENV TF_LOG_PROVIDER_gitops=DEBUG |
14 | 14 | ENV TF_LOG_PROVIDER_clis=DEBUG |
15 | 15 |
|
16 | | -RUN sudo dnf install -y \ |
| 16 | +USER root |
| 17 | +RUN dnf install -y \ |
17 | 18 | ca-certificates \ |
18 | 19 | perl \ |
19 | 20 | openvpn \ |
20 | 21 | httpd-tools \ |
21 | | - && sudo dnf clean all |
| 22 | + && dnf clean all |
22 | 23 |
|
23 | | -WORKDIR $GOPATH/bin |
24 | | - |
25 | | -COPY src/bin/* /usr/local/bin/ |
26 | | - |
27 | | -COPY --chown=devops:root src/home/ ${HOME}/ |
28 | | - |
29 | | -WORKDIR ${HOME} |
30 | | - |
31 | | -RUN cat ./image-message >> ./.bashrc-ni |
32 | | - |
33 | | -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 && \ |
34 | | - mkdir tmp && \ |
| 24 | +RUN mkdir tmp && \ |
35 | 25 | cd tmp && \ |
36 | | - tar xzf ../oc-client.tar.gz && \ |
37 | | - sudo mv ./oc /usr/local/bin && \ |
| 26 | + 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 && \ |
| 27 | + tar xzf oc-client.tar.gz && \ |
| 28 | + mv ./oc /usr/local/bin && \ |
38 | 29 | cd .. && \ |
39 | | - rm -rf tmp && \ |
40 | | - rm oc-client.tar.gz |
| 30 | + rm -rf tmp |
41 | 31 |
|
42 | | -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" && \ |
| 32 | +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" && \ |
43 | 33 | chmod +x ./kubectl && \ |
44 | | - sudo mv ./kubectl /usr/local/bin && \ |
| 34 | + mv ./kubectl /usr/local/bin && \ |
45 | 35 | kubectl version --client |
46 | 36 |
|
47 | | -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') && \ |
| 37 | +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') && \ |
48 | 38 | chmod +x ./yq3 && \ |
49 | | - sudo mv ./yq3 /usr/bin/yq3 && \ |
| 39 | + mv ./yq3 /usr/bin/yq3 && \ |
50 | 40 | yq3 --version |
51 | 41 |
|
52 | | -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 && \ |
53 | | - tar xzf ./helm.tar.gz linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/helm && \ |
54 | | - sudo mv ./linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi)/helm /usr/bin/helm && \ |
55 | | - rmdir ./linux-$(if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then echo "arm64"; else echo "amd64"; fi) && \ |
56 | | - rm ./helm.tar.gz && \ |
57 | | - helm version |
| 42 | +RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash && helm version |
58 | 43 |
|
59 | 44 | ## kubeseal |
60 | | -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 && \ |
61 | | - mkdir tmp && \ |
| 45 | +RUN mkdir tmp && \ |
62 | 46 | cd tmp && \ |
63 | | - tar xzf ../kubeseal.tar.gz && \ |
| 47 | + 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 && \ |
| 48 | + tar xzf kubeseal.tar.gz && \ |
64 | 49 | chmod +x kubeseal && \ |
65 | | - sudo mv kubeseal /usr/local/bin && \ |
| 50 | + mv kubeseal /usr/local/bin && \ |
66 | 51 | cd .. && \ |
67 | 52 | rm -rf tmp && \ |
68 | | - rm kubeseal.tar.gz && \ |
69 | 53 | kubeseal --version |
70 | 54 |
|
71 | 55 | ## argocd |
72 | | -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) && \ |
| 56 | +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) && \ |
73 | 57 | chmod +x argocd && \ |
74 | | - sudo mv argocd /usr/local/bin && \ |
| 58 | + mv argocd /usr/local/bin && \ |
75 | 59 | argocd version --client |
76 | 60 |
|
77 | 61 | ## kustomize |
78 | | -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 && \ |
79 | | - mkdir tmp && \ |
| 62 | +RUN mkdir tmp && \ |
80 | 63 | cd tmp && \ |
81 | | - tar xzf ../kustomize.tar.gz && \ |
82 | | - sudo mv kustomize /usr/local/bin && \ |
| 64 | + 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 && \ |
| 65 | + tar xzf kustomize.tar.gz && \ |
| 66 | + mv kustomize /usr/local/bin && \ |
83 | 67 | cd .. && \ |
84 | 68 | rm -rf tmp && \ |
85 | | - rm kustomize.tar.gz && \ |
86 | 69 | kustomize version |
87 | 70 |
|
88 | 71 | ## tkn |
89 | | -RUN if [[ "$TARGETPLATFORM" == "linux/arm64" ]]; then exit 0; fi; \ |
90 | | - curl -sLo tkn.tar.gz https://mirror.openshift.com/pub/openshift-v4/amd64/clients/pipeline/${TKN_VERSION}/tkn-linux-amd64-${TKN_VERSION}.tar.gz && \ |
91 | | - mkdir tmp && \ |
| 72 | +RUN mkdir tmp && \ |
92 | 73 | cd tmp && \ |
93 | | - tar xzf ../tkn.tar.gz && \ |
94 | | - sudo mv tkn /usr/local/bin && \ |
| 74 | + 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 && \ |
| 75 | + tar xzf tkn.tar.gz && \ |
| 76 | + mv tkn /usr/local/bin && \ |
95 | 77 | cd .. && \ |
96 | 78 | rm -rf tmp && \ |
97 | | - rm tkn.tar.gz && \ |
98 | 79 | tkn version |
99 | 80 |
|
100 | 81 | ARG IGC_VERSION=1.42.3 |
101 | 82 |
|
102 | 83 | ## igc |
103 | | -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) && \ |
| 84 | +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) && \ |
104 | 85 | chmod +x igc && \ |
105 | | - sudo mv igc /usr/local/bin && \ |
106 | | - sudo igc plugins --path /usr/local/bin && \ |
| 86 | + mv igc /usr/local/bin && \ |
| 87 | + igc plugins --path /usr/local/bin && \ |
107 | 88 | igc --version |
108 | 89 |
|
109 | 90 | ARG GITU_VERSION=1.14.7 |
110 | 91 |
|
111 | 92 | ## gitu |
112 | | -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) && \ |
| 93 | +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) && \ |
113 | 94 | chmod +x gitu && \ |
114 | | - sudo mv gitu /usr/local/bin && \ |
| 95 | + mv gitu /usr/local/bin && \ |
115 | 96 | gitu --version |
116 | 97 |
|
| 98 | +USER devops |
| 99 | + |
| 100 | +COPY src/bin/* /usr/local/bin/ |
| 101 | + |
| 102 | +COPY --chown=devops:root src/home/ ${HOME}/ |
| 103 | + |
117 | 104 | VOLUME /workspaces |
118 | 105 |
|
119 | | -ENTRYPOINT ["/bin/bash"] |
| 106 | +ENTRYPOINT ["/bin/bash", "-c", "./image-message && /bin/bash"] |
0 commit comments