deployment
Some checks failed
ci/woodpecker/tag/woodpecker Pipeline failed

This commit is contained in:
Wolfgang Hottgenroth 2024-11-11 10:20:48 +01:00
parent f6b572096b
commit ecbaa361cc
Signed by: wn
GPG Key ID: 18FDFA577A8871AD
4 changed files with 107 additions and 0 deletions

29
.woodpecker.yml Normal file
View File

@ -0,0 +1,29 @@
steps:
build:
image: plugins/kaniko
settings:
repo: ${FORGE_NAME}/${CI_REPO}
registry:
from_secret: container_registry
tags: latest,${CI_COMMIT_SHA},${CI_COMMIT_TAG}
username:
from_secret: container_registry_username
password:
from_secret: container_registry_password
dockerfile: Dockerfile
when:
- event: [push, tag]
deploy:
image: portainer/kubectl-shell:latest
secrets:
- source: kube_config
target: KUBE_CONFIG_CONTENT
commands:
- export IMAGE_TAG=$CI_COMMIT_TAG
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
- export KUBECONFIG=/tmp/kubeconfig
- ./deployment/deploy.sh
when:
- event: tag

12
deployment/configmap.yml Normal file
View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: zigbee2mqtt-config
namespace: homea
data:
ZIGBEE2MQTT_CONFIG_MQTT_SERVER: "mqtt://emqx01-anonymous-cluster-internal.broker.svc.cluster.local:1883"
ZIGBEE2MQTT_CONFIG_SERIAL_PORT: "tcp://172.16.2.49:6638"
ZIGBEE2MQTT_CONFIG_SERIAL_BAUDRATE: "115200"
ZIGBEE2MQTT_CONFIG_HOMEASSISTANT: "false"
ZIGBEE2MQTT_CONFIG_PERMIT_JOIN: "true"

24
deployment/deploy.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
if [ "$IMAGE_TAG" == "" ]; then
echo "Make sure IMAGE_TAG is set"
exit 1
fi
IMAGE_NAME=$FORGE_NAME/$CI_REPO
NAMESPACE=homea
DEPLOYMENT_DIR=$PWD/deployment
pushd $DEPLOYMENT_DIR > /dev/null
kubectl create namespace $NAMESPACE \
--dry-run=client \
-o yaml | \
kubectl -f - apply
kubectl apply -f $DEPLOYMENT_DIR/configmap.yml -n $NAMESPACE
kubectl apply -f $DEPLOYMENT_DIR/deploy.yml -n $NAMESPACE
popd > /dev/null

42
deployment/deploy.yml Normal file
View File

@ -0,0 +1,42 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: zigbee2mqtt
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-client
resources:
requests:
storage: 10Mi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: zigbee2mqtt
annotations:
configmap.reloader.stakater.com/reload: "zigbee2mqtt-config"
spec:
replicas: 1
selector:
matchLabels:
app: zigbee2mqtt
template:
metadata:
labels:
app: zigbee2mqtt
spec:
containers:
- name: zigbee2mqtt
image: koenkk/zigbee2mqtt:1.41.0
volumeMounts:
- mountPath: /app/data
name: zigbee2mqtt
envFrom:
- configMapRef:
name: zigbee2mqtt-config
volumes:
- name: zigbee2mqtt
persistentVolumeClaim:
claimName: zigbee2mqtt