Skip to content

Commit

Permalink
Feature/predictor (#38)
Browse files Browse the repository at this point in the history
* Add predictor

* Add values

* Add space

* Update charts/priobike-predictor/templates/config-map.yaml

Co-authored-by: Daniel J. <dajesch@gmail.com>

* Update charts/priobike-predictor/values.yaml

Co-authored-by: Daniel J. <dajesch@gmail.com>

---------

Co-authored-by: Daniel J. <dajesch@gmail.com>
  • Loading branch information
PaulPickhardt and adeveloper-wq authored Oct 21, 2024
1 parent 0e95114 commit aa7507d
Show file tree
Hide file tree
Showing 10 changed files with 194 additions and 0 deletions.
23 changes: 23 additions & 0 deletions charts/priobike-predictor/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
30 changes: 30 additions & 0 deletions charts/priobike-predictor/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
apiVersion: v2
name: priobike-predictor
description: A Helm chart for Kubernetes

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v1.2"

maintainers:
- name: Paul
email: paul_maximilian.pickhardt@tu-dresden.de
- name: Daniel
email: daniel.jeschor@tu-dresden.de
4 changes: 4 additions & 0 deletions charts/priobike-predictor/ci/example-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
namespace: example-namespace
priobikeImageRegistry: bikenow.vkw.tu-dresden.de/priobike

predictionMqttPassword: test
14 changes: 14 additions & 0 deletions charts/priobike-predictor/templates/config-map.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Values.configMapName }}
data:
PREDICTION_MQTT_URL: {{ required "A valid .Values.predictionMqttUrl entry is required!" .Values.predictionMqttUrl }}

# The FROST server config.
SENSORTHINGS_URL_THINGS: {{ required "A valid .Values.sensorThingsUrlThings entry is required!" .Values.sensorThingsUrlThings }}
SENSORTHINGS_URL_OBSERVATIONS: {{ required "A valid .Values.sensorThingsUrlObservations entry is required!" .Values.sensorThingsUrlObservations }}
SENSORTHINGS_MQTT_URL: {{ required "A valid .Values.sensorThingsMqttUrl entry is required!" .Values.sensorThingsMqttUrl }}

# The path under which all resources will be stored for the web API.
STATIC_PATH: {{ required "A valid .Values.staticPath entry is required!" .Values.staticPath }}
34 changes: 34 additions & 0 deletions charts/priobike-predictor/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.deploymentName }}
spec:
replicas: 1
selector:
matchLabels:
app: {{ .Values.labels.app }}
template:
metadata:
labels:
app: {{ .Values.labels.app }}
spec:
imagePullSecrets:
- name: regcred

containers:
- name: {{ .Values.containerName }}
image: |-
{{ (.Values.global).priobikeImageRegistry | default .Values.priobikeImageRegistry | required "A valid .Values.priobikeImageRegistry or .Values.global.priobikeImageRegistry entry is required!" -}}
/{{ .Values.imageName }}:v1.2
envFrom:
- configMapRef:
name: {{ .Values.configMapName }}
- secretRef:
name: {{ .Values.secretName }}
volumeMounts:
- mountPath: {{ .Values.staticPath }}
name: {{ .Values.volumeName }}
volumes:
- name: {{ .Values.volumeName }}
persistentVolumeClaim:
claimName: {{ .Values.volumeClaimName }}
30 changes: 30 additions & 0 deletions charts/priobike-predictor/templates/nginx-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.nginx.deploymentName }}
spec:
replicas: 1
selector:
matchLabels:
app: {{ .Values.nginx.labels.app }}
template:
metadata:
labels:
app: {{ .Values.nginx.labels.app }}
spec:
imagePullSecrets:
- name: regcred

containers:
- name: {{ .Values.nginx.containerName }}
image: |-
{{ (.Values.global).priobikeImageRegistry | default .Values.priobikeImageRegistry | required "A valid .Values.priobikeImageRegistry or .Values.global.priobikeImageRegistry entry is required!" -}}
/{{ .Values.nginx.imageName }}:v1.0
volumeMounts:
- mountPath: {{ .Values.staticPath }}
name: {{ .Values.volumeName }}
volumes:
- name: {{ .Values.volumeName }}
persistentVolumeClaim:
claimName: {{ .Values.volumeClaimName }}
readOnly: true
12 changes: 12 additions & 0 deletions charts/priobike-predictor/templates/nginx-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.nginx.serviceName }}
spec:
selector:
app: {{ .Values.nginx.labels.app }}
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
11 changes: 11 additions & 0 deletions charts/priobike-predictor/templates/persistent-volume-claim.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Values.volumeClaimName }}
spec:
storageClassName: {{ .Values.storageClassName }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.storageSize }}
7 changes: 7 additions & 0 deletions charts/priobike-predictor/templates/secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ .Values.secretName }}
data:
PREDICTION_MQTT_USERNAME: {{ required "A valid .Values.predictionMqttUsername entry is required!" .Values.predictionMqttUsername | b64enc }}
PREDICTION_MQTT_PASSWORD: {{ required "A valid .Values.predictionMqttPassword entry is required!" .Values.predictionMqttPassword | b64enc }}
29 changes: 29 additions & 0 deletions charts/priobike-predictor/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
imageName: priobike-predictor

labels:
app: priobike-predictor-app
configMapName: priobike-predictor-config
deploymentName: priobike-predictor-deployment
containerName: priobike-predictor-container
volumeClaimName: priobike-predictor-volume-claim
storageClassName: standard
storageSize: 1Gi
volumeName: priobike-predictor-volume
secretName: priobike-predictor-secret

# The path under which all resources will be stored for the web API.
staticPath: /usr/share/nginx/html

predictionMqttUrl: tcp://priobike-mqtt-service.example-namespace.svc.cluster.local:1883
predictionMqttUsername: backend
sensorThingsUrlThings: https://tld.iot.hamburg.de/v1.1/ # For priobike frost mirror: <service_name>.<namespace>.svc.cluster.local/<ingress-path>/FROST-Server/v1.1/
sensorThingsUrlObservations: https://tld.iot.hamburg.de/v1.1/
sensorThingsMqttUrl: tcp://tld.iot.hamburg.de:1883

nginx:
labels:
app: priobike-predictor-nginx-app
imageName: priobike-nginx
deploymentName: priobike-predictor-nginx-deployment
containerName: priobike-predictor-nginx-container
serviceName: priobike-predictor-nginx-service

0 comments on commit aa7507d

Please sign in to comment.