test ci 2

This commit is contained in:
2025-12-05 13:14:00 +01:00
parent 4405f5f7e7
commit 5496c5e94e
6 changed files with 74 additions and 80 deletions

50
.woodpecker.yml Normal file
View File

@@ -0,0 +1,50 @@
steps:
build:
image: plugins/kaniko
settings:
registry:
from_secret: local_registry
username:
from_secret: local_username
password:
from_secret: local_password
repo: ${FORGE_NAME}/${CI_REPO}
auto_tag: true
dockerfile: Dockerfile
create_namespace:
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
environment:
KUBE_CONFIG_CONTENT:
from_secret: kube_config
NAMESPACE: "homea-ctrl-1"
commands:
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
- export KUBECONFIG=/tmp/kubeconfig
- kubectl create namespace $NAMESPACE || echo "Namespace $NAMESPACE already exists"
apply_configuration:
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
environment:
KUBE_CONFIG_CONTENT:
from_secret: kube_config
NAMESPACE: "homea-ctrl-1"
commands:
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
- export KUBECONFIG=/tmp/kubeconfig
- kubectl create configmap pv-controller-config
--from-file=config.yaml=config/config.yaml
--namespace=$NAMESPACE
--dry-run=client -o yaml | kubectl apply -f -
deploy:
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
environment:
KUBE_CONFIG_CONTENT:
from_secret: kube_config
NAMESPACE: "homea2"
IMAGE: "${FORGE_NAME}/${CI_REPO}:${CI_COMMIT_TAG}"
commands:
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
- export KUBECONFIG=/tmp/kubeconfig
- cat deployment/install-yml.tmpl | sed "s,%IMAGE%,$IMAGE,g" | kubectl apply -n $NAMESPACE -f -

View File

@@ -1,19 +0,0 @@
#when:
# event: [tag]
# ref:
# exclude:
# - refs/tags/*-configchange
steps:
build:
image: plugins/kaniko
settings:
registry:
from_secret: local_registry
username:
from_secret: local_username
password:
from_secret: local_password
repo: ${FORGE_NAME}/${CI_REPO}
auto_tag: true
dockerfile: Dockerfile

View File

@@ -1,22 +0,0 @@
# when:
# event: [tag]
depends_on:
- namespace
steps:
apply_configuration:
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
environment:
KUBE_CONFIG_CONTENT:
from_secret: kube_config
NAMESPACE: "homea-ctrl-1"
commands:
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
- export KUBECONFIG=/tmp/kubeconfig
- kubectl create configmap pv-controller-config
--from-file=config.yaml=config/config.yaml
--namespace=$NAMESPACE
--dry-run=client -o yaml | kubectl apply -f -
- kubectl apply -f deployment/configmap.yaml -n $NAMESPACE

View File

@@ -1,15 +0,0 @@
# when:
# event: [tag]
steps:
create_namespace:
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
environment:
KUBE_CONFIG_CONTENT:
from_secret: kube_config
NAMESPACE: "homea-ctrl-1"
commands:
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
- export KUBECONFIG=/tmp/kubeconfig
- kubectl create namespace $NAMESPACE || echo "Namespace $NAMESPACE already exists"

View File

@@ -1,36 +1,25 @@
FROM python:latest
FROM python:3.14-alpine
LABEL Maintainer="Wolfgang Hottgenroth wolfgang.hottgenroth@icloud.com"
LABEL ImageName="registry.hottis.de/dockerized/pv-controller"
LABEL HubImageName="wollud1969/pv-controller"
LABEL HubImageName="wn/pv-controller"
ARG APP_DIR="/opt/app"
ARG APP_USER="app"
ENV CFG_FILE ""
ENV MQTT__BROKER ""
ENV MQTT__PORT "1883"
ENV MQTT__METERPUBLISHTOPIC "IoT/PV/Values"
ENV MQTT__METERPUBLISHPERIOD "15"
ENV MQTT__RELAISSUBSCRIBETOPIC "IoT/PV/Cmd"
ENV MODBUS__GATEWAY ""
RUN \
apt update && \
pip3 install loguru && \
pip3 install pymodbus && \
pip3 install paho-mqtt
RUN \
mkdir -p ${APP_DIR} && \
useradd -d ${APP_DIR} -u 1000 user
COPY ./src/pv_controller/*.py ${APP_DIR}/
USER 1000:1000
WORKDIR ${APP_DIR}
CMD [ "python", "pvc.py" ]
COPY ./src/pv_controller/requirements.txt requirements.txt
COPY ./src/pv_controller/*.py ${APP_DIR}/
RUN addgroup -g 10001 -S ${APP_USER} && \
adduser -u 10001 -S ${APP_USER} -G ${APP_USER} && \
pip install --no-cache-dir -r requirements.txt
USER ${APP_USER}
CMD ["python", "pvc.py"]

View File

@@ -21,3 +21,14 @@ spec:
envFrom:
- configMapRef:
name: pv-controller
env:
- name: CFG_FILE
value: /config/config.yaml
volumeMounts:
- name: pv-controller-config
mountPath: /config/config.yaml
subPath: config.yaml
volumes:
- name: pv-controller-config
configMap:
name: pv-controller-config