pre-alpha test
Some checks failed
Build and Deploy to k3s / build-and-deploy (push) Failing after 39s

This commit is contained in:
Alexis Bruneteau 2025-06-01 14:04:20 +02:00
parent e616a400ed
commit a55a295164
15 changed files with 151 additions and 3 deletions

View File

@ -63,8 +63,8 @@ jobs:
- name: Deploy to k3s
run: |
kubectl apply -k deploy/k3s/ --kubeconfig ~/.kube/config
kubectl apply -k deploy/k3s/alpha --kubeconfig ~/.kube/config
kubectl set image deployment/hosting-frontend \
hosting-frontend=${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/hosting-frontend:${{ github.sha }} \
-n hosting --kubeconfig ~/.kube/config
kubectl rollout status deployment/hosting-frontend -n hosting --kubeconfig ~/.kube/config
-n hosting-alpha --kubeconfig ~/.kube/config
kubectl rollout status deployment/hosting-frontend -n hosting-alpha --kubeconfig ~/.kube/config

View File

@ -0,0 +1,67 @@
name: Build and Deploy to k3s
on:
push:
tags:
- 'PROD*'
jobs:
build-and-deploy:
env:
KUBECONFIG: ~/.kube/config
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: Install dependencies
run: npm ci
- name: Build Angular app
run: npm run build --prod
- name: Build Docker image
run: |
docker build -t ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/hosting-frontend:${{ github.sha }} .
docker tag ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/hosting-frontend:${{ github.sha }} ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/hosting-frontend:latest
- name: Login to Container Registry
run: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ secrets.REGISTRY_URL }} -u "${{ secrets.REGISTRY_USER }}" --password-stdin
- name: Push Docker image
run: |
docker push ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/hosting-frontend:${{ github.sha }}
docker push ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/hosting-frontend:latest
- name: Setup kubectl
uses: azure/setup-kubectl@v3
with:
version: 'latest'
- name: Configure kubectl
run: |
mkdir -p ~/.kube
echo "${{ secrets.KUBE_CONFIG }}" | base64 -d > ~/.kube/config
chmod 600 ~/.kube/config
- name: Validate kubeconfig
run: |
if ! kubectl version --client && kubectl cluster-info --kubeconfig ~/.kube/config; then
echo "❌ Failed to connect to cluster"
exit 1
fi
- name: Deploy to k3s
run: |
kubectl apply -k deploy/k3s/prod --kubeconfig ~/.kube/config
kubectl set image deployment/hosting-frontend \
hosting-frontend=${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/hosting-frontend:${{ github.sha }} \
-n hosting --kubeconfig ~/.kube/config
kubectl rollout status deployment/hosting-frontend -n hosting --kubeconfig ~/.kube/config

View File

@ -0,0 +1,20 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: hosting-frontend
namespace: hosting-alpha
spec:
replicas: 1
selector:
matchLabels:
app: hosting-frontend
template:
metadata:
labels:
app: hosting-frontend
spec:
containers:
- name: hosting-frontend
image: gitea.vidoks.fr/sortifal/hosting-frontend:latest
ports:
- containerPort: 80

View File

@ -0,0 +1,21 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hosting-ingress
namespace: hosting-alpha
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.entrypoints: web
traefik.ingress.kubernetes.io/router.middlewares: alpha-allow-local@kubernetescrd
spec:
rules:
- host: alpha.portfolio-host.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hosting-frontend-service
port:
number: 80

View File

@ -0,0 +1,6 @@
namespace: hosting-alpha
resources:
- deployment.yml
- service.yml
- ingress.yml
- middleware.yml

View File

@ -0,0 +1,10 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: allow-local
namespace: hosting-alpha
spec:
ipWhiteList:
sourceRange:
- 127.0.0.1/32
- 192.168.1.0/24

View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: hosting-frontend-service
namespace: hosting-alpha
spec:
selector:
app: hosting-frontend
ports:
- port: 80
targetPort: 80
type: ClusterIP

View File

@ -0,0 +1,8 @@
---
kind: Kustomization
namespace: hosting-alpha
resources:
- namespace.yml
- frontend

View File

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: hosting-alpha