feat(edge): Added Edge Deployment functionality

This commit is contained in:
Richard Robert Reitz 2025-10-24 10:22:10 +02:00
parent bf72902237
commit b09714c426
5 changed files with 133 additions and 8 deletions

View file

@ -47,18 +47,18 @@ jobs:
id: docker id: docker
with: with:
images: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }} images: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }}
tags: |
- name: Login to registry type=sha,prefix=
type=ref,event=tag
-
name: Login to registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: ${{ steps.repository.outputs.registry }} registry: ${{ steps.repository.outputs.registry }}
username: "${{ secrets.PACKAGES_USER }}" username: "${{ secrets.PACKAGES_USER }}"
password: "${{ secrets.PACKAGES_TOKEN }}" password: "${{ secrets.PACKAGES_TOKEN }}"
-
- name: Set up QEMU name: Set up Docker Buildx
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
with: with:
buildkitd-flags: '--allow-insecure-entitlement network.host' buildkitd-flags: '--allow-insecure-entitlement network.host'
@ -71,7 +71,6 @@ jobs:
push: true push: true
allow: network.host allow: network.host
network: host network: host
platforms: linux/amd64,linux/arm64
tags: ${{ steps.docker.outputs.tags }} tags: ${{ steps.docker.outputs.tags }}
labels: ${{ steps.docker.outputs.labels }} labels: ${{ steps.docker.outputs.labels }}
build-args: | build-args: |

32
.github/workflows/delete-edge.yaml vendored Normal file
View file

@ -0,0 +1,32 @@
name: delete-edge
on:
workflow_run:
workflows: [build]
types:
- completed
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Replace Image Version
run: |
sha="${{ github.sha }}"
shortSha="${sha:0:7}"
echo "Setting image version to: edp.buildth.ing/devfw-cicd/edpdoc:${shortSha}"
sed -i "s@###IMAGETAG###@edp.buildth.ing/devfw-cicd/edpdoc:${shortSha}@g" ./k8s-deployment.yaml
- name: Delete action
uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-delete-action@main
id: delete
with:
configFile: ./edgeconnectdeployment.yaml
baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live
username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }}
password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }}

32
.github/workflows/deploy-edge.yaml vendored Normal file
View file

@ -0,0 +1,32 @@
name: deploy-edge
on:
workflow_run:
workflows: [build]
types:
- completed
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Replace Image Version
run: |
sha="${{ github.sha }}"
shortSha="${sha:0:7}"
echo "Setting image version to: edp.buildth.ing/devfw-cicd/edpdoc:${shortSha}"
sed -i "s@###IMAGETAG###@edp.buildth.ing/devfw-cicd/edpdoc:${shortSha}@g" ./k8s-deployment.yaml
- name: Deploy action
uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-deploy-action@main
id: deploy
with:
configFile: ./edgeconnectdeployment.yaml
baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live
username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }}
password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }}

View file

@ -0,0 +1,23 @@
kind: edgeconnect-deployment
metadata:
name: "edpdoc"
appVersion: "1.0.0"
organization: "edp2"
spec:
k8sApp:
manifestFile: "./k8s-deployment.yaml"
infraTemplate:
- region: "EU"
cloudletOrg: "TelekomOP"
cloudletName: "Munich"
flavorName: "EU.small"
network:
outboundConnections:
- protocol: "tcp"
portRangeMin: 80
portRangeMax: 80
remoteCIDR: "0.0.0.0/0"
- protocol: "tcp"
portRangeMin: 443
portRangeMax: 443
remoteCIDR: "0.0.0.0/0"

39
k8s-deployment.yaml Normal file
View file

@ -0,0 +1,39 @@
apiVersion: v1
kind: Service
metadata:
name: edpdoc
labels:
run: edpdoc
spec:
type: LoadBalancer
ports:
- name: tcp80
protocol: TCP
port: 80
targetPort: 80
selector:
run: edpdoc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: edpdoc
spec:
replicas: 1
selector:
matchLabels:
run: edpdoc
template:
metadata:
labels:
run: edpdoc
mexDeployGen: kubernetes-basic
spec:
volumes:
containers:
- name: edpdoc
image: ###IMAGETAG###
imagePullPolicy: Always
ports:
- containerPort: 80
protocol: TCP