From 5496c5e94e689ab216e787ef1e64a7faf4541277 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Fri, 5 Dec 2025 13:14:00 +0100 Subject: [PATCH] test ci 2 --- .woodpecker.yml | 50 +++++++++++++++++++++++++++++++++++++ .woodpecker/build.yml | 19 -------------- .woodpecker/config.yml | 22 ---------------- .woodpecker/namespace.yml | 15 ----------- Dockerfile | 37 ++++++++++----------------- deployment/install-yml.tmpl | 11 ++++++++ 6 files changed, 74 insertions(+), 80 deletions(-) create mode 100644 .woodpecker.yml delete mode 100644 .woodpecker/build.yml delete mode 100644 .woodpecker/config.yml delete mode 100644 .woodpecker/namespace.yml diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..1871c4d --- /dev/null +++ b/.woodpecker.yml @@ -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 - diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml deleted file mode 100644 index 8510f4a..0000000 --- a/.woodpecker/build.yml +++ /dev/null @@ -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 diff --git a/.woodpecker/config.yml b/.woodpecker/config.yml deleted file mode 100644 index 5c26ba2..0000000 --- a/.woodpecker/config.yml +++ /dev/null @@ -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 - diff --git a/.woodpecker/namespace.yml b/.woodpecker/namespace.yml deleted file mode 100644 index cabb8a6..0000000 --- a/.woodpecker/namespace.yml +++ /dev/null @@ -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" - diff --git a/Dockerfile b/Dockerfile index bea209a..ae336c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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"] diff --git a/deployment/install-yml.tmpl b/deployment/install-yml.tmpl index 677408e..8d2a8e8 100644 --- a/deployment/install-yml.tmpl +++ b/deployment/install-yml.tmpl @@ -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