Skip to content

Commit

Permalink
Add github actions to build multi arch images
Browse files Browse the repository at this point in the history
  • Loading branch information
enyachoke committed Mar 9, 2023
1 parent 21983a5 commit 8db48d1
Show file tree
Hide file tree
Showing 17 changed files with 486 additions and 46 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/build-consumerui.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Build consumerui

on:
push:
branches:
- "master"
release:
types: [published, edited]

jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to Container Registry
uses: docker/login-action@v2
if: github.event_name != 'pull_request'
with:
registry: ${{ secrets.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
-
name: Set Version
run: echo "VERSION=$(tail -1 consumerui/versions.txt)" >> $GITHUB_ENV
-
name: Docker metadata
id: consumerui_meta
uses: docker/metadata-action@v4
with:
images: ${{ secrets.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/consumerui
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{env.VERSION}},enable=${{ github.event_name == 'release' && github.event.action == 'published' }}
-
name: Build and push consumerui
uses: docker/build-push-action@v4
with:
context: .
file: consumerui/Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.consumerui_meta.outputs.tags }}
91 changes: 91 additions & 0 deletions .github/workflows/build-deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Build deploy utils

on:
push:
branches:
- "master"
release:
types: [published, edited]

jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to Container Registry
uses: docker/login-action@v2
with:
registry: ${{ secrets.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
-
name: Set Version
run: echo "VERSION=$(tail -1 deploy/versions.txt)" >> $GITHUB_ENV

-
name: Docker webhook metadata
id: webhook_tls_getter
uses: docker/metadata-action@v4
with:
images: ${{ secrets.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/webhook-tls-getter
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{env.VERSION}},enable=${{ github.event_name == 'release' && github.event.action == 'published' }}
-
name: Build and push webhook-tls-getter
uses: docker/build-push-action@v4
with:
context: .
file: deploy/Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.webhook_tls_getter.outputs.tags }}

-
name: Docker delete-kubeplus-resources metadata
id: delete_kubeplus_resources
uses: docker/metadata-action@v4
with:
images: ${{ secrets.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/delete-kubeplus-resources
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{env.VERSION}},enable=${{ github.event_name == 'release' && github.event.action == 'published' }}
-
name: Build and push delete-kubeplus-resources
uses: docker/build-push-action@v4
with:
context: .
file: deploy/Dockerfile.cleanup
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.delete_kubeplus_resources.outputs.tags }}

-
name: Docker kubeconfiggenerator metadata
id: kubeconfiggenerator
uses: docker/metadata-action@v4
with:
images: ${{ secrets.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/kubeconfiggenerator
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{env.VERSION}},enable=${{ github.event_name == 'release' && github.event.action == 'published' }}
-
name: Build and push kubeconfiggenerator
uses: docker/build-push-action@v4
with:
context: .
file: deploy/Dockerfile.kubeconfiggenerator
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.kubeconfiggenerator.outputs.tags }}
50 changes: 50 additions & 0 deletions .github/workflows/build-mutating-webhook-helper.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build mutating-webhook-helper

on:
push:
branches:
- "master"
release:
types: [published, edited]

jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to Container Registry
uses: docker/login-action@v2
with:
registry: ${{ secrets.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
-
name: Set Version
run: echo "VERSION=$(tail -1 mutating-webhook-helper/versions.txt)" >> $GITHUB_ENV
-
name: Docker webhook metadata
id: mutating_webhook_helper
uses: docker/metadata-action@v4
with:
images: ${{ secrets.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/mutating-webhook-helper
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{env.VERSION}},enable=${{ github.event_name == 'release' && github.event.action == 'published' }}
-
name: Build and push mutating-webhook-helper
uses: docker/build-push-action@v4
with:
context: .
file: mutating-webhook-helper/Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.mutating_webhook_helper.outputs.tags }}
51 changes: 51 additions & 0 deletions .github/workflows/build-mutating-webhook.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Build mutating-webhook

on:
push:
branches:
- "master"
release:
types: [published, edited]

jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to Container Registry
uses: docker/login-action@v2
with:
registry: ${{ secrets.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
-
name: Set Version
run: echo "VERSION=$(tail -1 mutating-webhook/versions.txt)" >> $GITHUB_ENV
-
name: Docker webhook metadata
id: pac_mutating_admission_webhook
uses: docker/metadata-action@v4
with:
images: ${{ secrets.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/pac-mutating-admission-webhook
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{env.VERSION}},enable=${{ github.event_name == 'release' && github.event.action == 'published' }}
-
name: Build and push mutating-webhook
uses: docker/build-push-action@v4
with:
context: .
file: mutating-webhook/Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.pac_mutating_admission_webhook.outputs.tags }}
72 changes: 72 additions & 0 deletions .github/workflows/build-platform-operator.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Build platform-operator and helmer

on:
push:
branches:
- "master"
release:
types: [published, edited]

jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to Container Registry
uses: docker/login-action@v2
with:
registry: ${{ secrets.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
-
name: Set Helmer Version
run: echo "HELMER_VERSION=$(tail -1 platform-operator/helm-pod/versions.txt)" >> $GITHUB_ENV
-
name: Set platform-operator Version
run: echo "OPERATOR_VERSION=$(tail -1 platform-operator/versions.txt)" >> $GITHUB_ENV
-
name: Docker platform-operator metadata
id: platform_operator
uses: docker/metadata-action@v4
with:
images: ${{ secrets.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/platform-operator
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{env.OPERATOR_VERSION}},enable=${{ github.event_name == 'release' && github.event.action == 'published' }}
-
name: Docker helm-pod metadata
id: helm_pod
uses: docker/metadata-action@v4
with:
images: ${{ secrets.REGISTRY }}/${{ secrets.REGISTRY_USERNAME }}/helm-pod
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{env.HELMER_VERSION}},enable=${{ github.event_name == 'release' && github.event.action == 'published' }}
-
name: Build and push platform-operator
uses: docker/build-push-action@v4
with:
context: .
file: platform-operator/artifacts/deployment/Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.platform_operator.outputs.tags }}
-
name: Build and push helm pod
uses: docker/build-push-action@v4
with:
context: .
file: platform-operator/helm-pod/Dockerfile
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.helm_pod.outputs.tags }}
10 changes: 5 additions & 5 deletions consumerui/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ RUN curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packa

RUN wget https://github.com/cloud-ark/kubeplus/raw/master/kubeplus-kubectl-plugins.tar.gz && gunzip kubeplus-kubectl-plugins.tar.gz && tar -xvf kubeplus-kubectl-plugins.tar && cp -r /plugins/* bin/

ADD requirements.txt /root/requirements.txt
ADD consumerui.py /root/consumerui.py
ADD grapher.py /root/grapher.py
ADD templates /root/templates
ADD static /root/static
ADD consumerui/requirements.txt /root/requirements.txt
ADD consumerui/consumerui.py /root/consumerui.py
ADD consumerui/grapher.py /root/grapher.py
ADD consumerui/templates /root/templates
ADD consumerui/static /root/static
RUN cd /root; pip install -r requirements.txt
RUN mkdir /root/.kube/

Expand Down
12 changes: 6 additions & 6 deletions deploy/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y openssl jq python3 python3-pip && pip3 install pyyaml
ADD webhook-create-self-signed-ca-cert.sh /
COPY kubectl /root/
COPY kubeplus-non-pod-resources.yaml /root/.
COPY mutatingwebhook.yaml /root/.
RUN apt-get update && apt-get install -y openssl curl jq python3 python3-pip && pip3 install pyyaml
ADD deploy/webhook-create-self-signed-ca-cert.sh /
RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && cd /root/ && curl -LO "https://dl.k8s.io/release/v1.26.0/bin/linux/${arch}/kubectl"
COPY deploy/kubeplus-non-pod-resources.yaml /root/.
COPY deploy/mutatingwebhook.yaml /root/.
#COPY webhook-patch-ca-bundle-new.sh /root/.
COPY kubeconfiggenerator.py /root/.
COPY deploy/kubeconfiggenerator.py /root/.
RUN cp /root/kubectl bin/. && chmod +x /root/kubectl && chmod +x bin/kubectl
ENTRYPOINT ["/webhook-create-self-signed-ca-cert.sh"]
6 changes: 3 additions & 3 deletions deploy/Dockerfile.cleanup
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM ubuntu:20.04
ADD delete-kubeplus-components.sh /root/.
COPY kubectl /root/
RUN apt-get update && apt-get install -y openssl jq python3 python3-pip && pip3 install pyyaml
ADD deploy/delete-kubeplus-components.sh /root/.
RUN apt-get update && apt-get install -y openssl curl jq python3 python3-pip && pip3 install pyyaml
RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && cd /root/ && curl -LO "https://dl.k8s.io/release/v1.26.0/bin/linux/${arch}/kubectl"
RUN cp /root/kubectl bin/. && chmod +x /root/kubectl && chmod +x bin/kubectl
ENTRYPOINT ["/root/delete-kubeplus-components.sh"]
18 changes: 11 additions & 7 deletions deploy/Dockerfile.kubeconfiggenerator
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y openssl jq python3 python3-pip wget && pip3 install pyyaml
COPY kubectl /root/
COPY helm /root/
COPY kubeconfiggenerator.py /root/.
COPY kubeconfiggenerator.sh /root/.
ADD requirements.txt /root/requirements.txt
RUN cd /root; pip install -r requirements.txt
RUN apt-get update && apt-get install -y curl wget openssl jq python3 python3-pip && pip3 install pyyaml Flask
RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && \
wget "https://get.helm.sh/helm-v3.11.1-linux-${arch}.tar.gz" && \
tar xvf "helm-v3.11.1-linux-${arch}.tar.gz" && \
mv "linux-${arch}/helm" /root/ && rm "helm-v3.11.1-linux-${arch}.tar.gz" && \
rm -rf "linux-${arch}"/
RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && cd /root/ && curl -LO "https://dl.k8s.io/release/v1.26.0/bin/linux/${arch}/kubectl"
COPY deploy/kubeconfiggenerator.sh /root/.
COPY deploy/kubeconfiggenerator.py /root/.
RUN cp /root/kubectl bin/. && chmod +x /root/kubectl && chmod +x bin/kubectl && chmod +x /root/kubeconfiggenerator.sh && cp /root/helm bin/. && chmod +x /root/helm && chmod +x bin/helm

#ENTRYPOINT ["/root/kubeconfiggenerator.sh"]

#ENTRYPOINT ["/root/kubeconfiggenerator.sh"]

EXPOSE 5005
CMD ["python3", "/root/kubeconfiggenerator.py"]

Loading

0 comments on commit 8db48d1

Please sign in to comment.