Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
2f87ec6d37
|
|||
|
3290982be1
|
|||
|
e96e361414
|
|||
|
87ec74dd0e
|
|||
|
a067be9d9e
|
|||
|
190021bb84
|
|||
|
2842b3e4ec
|
|||
|
cf62f384ac
|
|||
|
5496c5e94e
|
|||
|
4405f5f7e7
|
66
.woodpecker.yml
Normal file
66
.woodpecker.yml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
when:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
|
||||||
|
variables:
|
||||||
|
- &NAMESPACE 'homea-ctrl-1'
|
||||||
|
|
||||||
|
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
|
||||||
|
when:
|
||||||
|
ref:
|
||||||
|
exclude:
|
||||||
|
- refs/tags/*-configchange
|
||||||
|
|
||||||
|
|
||||||
|
namespace:
|
||||||
|
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
|
||||||
|
environment:
|
||||||
|
KUBE_CONFIG_CONTENT:
|
||||||
|
from_secret: kube_config
|
||||||
|
NAMESPACE: *NAMESPACE
|
||||||
|
commands:
|
||||||
|
- printf "$KUBE_CONFIG_CONTENT" > /tmp/kubeconfig
|
||||||
|
- export KUBECONFIG=/tmp/kubeconfig
|
||||||
|
- kubectl create namespace $NAMESPACE || echo "Namespace $NAMESPACE already exists"
|
||||||
|
|
||||||
|
configuration:
|
||||||
|
image: quay.io/wollud1969/k8s-admin-helper:0.3.4
|
||||||
|
environment:
|
||||||
|
KUBE_CONFIG_CONTENT:
|
||||||
|
from_secret: kube_config
|
||||||
|
NAMESPACE: *NAMESPACE
|
||||||
|
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: *NAMESPACE
|
||||||
|
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 -
|
||||||
|
when:
|
||||||
|
ref:
|
||||||
|
exclude:
|
||||||
|
- refs/tags/*-configchange
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
|
|
||||||
@@ -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"
|
|
||||||
|
|
||||||
37
Dockerfile
37
Dockerfile
@@ -1,36 +1,23 @@
|
|||||||
FROM python:latest
|
FROM python:3.14-alpine
|
||||||
|
|
||||||
LABEL Maintainer="Wolfgang Hottgenroth wolfgang.hottgenroth@icloud.com"
|
LABEL Maintainer="Wolfgang Hottgenroth wolfgang.hottgenroth@icloud.com"
|
||||||
LABEL ImageName="registry.hottis.de/dockerized/pv-controller"
|
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_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}
|
WORKDIR ${APP_DIR}
|
||||||
|
|
||||||
|
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"]
|
CMD ["python", "pvc.py"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,11 @@ apiVersion: apps/v1
|
|||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: pv-controller
|
name: pv-controller
|
||||||
namespace: homea
|
|
||||||
labels:
|
labels:
|
||||||
app: pv-controller
|
app: pv-controller
|
||||||
|
annotations:
|
||||||
|
reloader.stakater.com/auto: "true"
|
||||||
|
reloader.stakater.com/configmap: "pv-controller-config"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
@@ -17,7 +19,15 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pv-controller
|
- name: pv-controller
|
||||||
image: %IMAGE
|
image: %IMAGE%
|
||||||
envFrom:
|
env:
|
||||||
- configMapRef:
|
- name: CFG_FILE
|
||||||
name: pv-controller
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user