321 lines
8.6 KiB
YAML
321 lines
8.6 KiB
YAML
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: camera
|
|
annotations:
|
|
reloader.stakater.com/auto: "true"
|
|
spec:
|
|
revisionHistoryLimit: 0
|
|
replicas: 0
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
component: camera
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: camera
|
|
spec:
|
|
containers:
|
|
- name: camera
|
|
image: docker.io/cyrilix/robocar-camera
|
|
args:
|
|
- "-mqtt-pub-frequency=$(MQTT_CAMERA_PUB_FREQUENCY)"
|
|
- "-video-device=0"
|
|
- "-video-width=$(CAMERA_WIDTH)"
|
|
- "-video-height=$(CAMERA_HEIGHT)"
|
|
- "-log=info"
|
|
securityContext:
|
|
runAsUser: 1234
|
|
runAsGroup: 44 # Set 44/video group to access to video device
|
|
privileged: true
|
|
volumeMounts:
|
|
- name: camera-device
|
|
mountPath: /dev/video0
|
|
env:
|
|
- name: MQTT_BROKER
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_BROKER
|
|
name: robocar
|
|
- name: MQTT_USERNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_USERNAME
|
|
name: mqtt-credentials
|
|
- name: MQTT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_PASSWORD
|
|
name: mqtt-credentials
|
|
- name: MQTT_CLIENT_ID
|
|
value: rc-camera
|
|
- name: MQTT_TOPIC
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_CAMERA
|
|
name: robocar
|
|
- name: CAMERA_WIDTH
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_WIDTH
|
|
name: robocar-camera
|
|
- name: CAMERA_HEIGHT
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_HEIGHT
|
|
name: robocar-camera
|
|
- name: MQTT_CAMERA_PUB_FREQUENCY
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_CAMERA_PUB_FREQUENCY
|
|
name: robocar-camera
|
|
- name: MQTT_QOS
|
|
value: "0"
|
|
- name: TZ
|
|
value: "Europe/Paris"
|
|
volumes:
|
|
- name: camera-device
|
|
hostPath:
|
|
path: "/dev/video0"
|
|
type: CharDevice
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: oak-camera
|
|
annotations:
|
|
reloader.stakater.com/auto: "true"
|
|
spec:
|
|
revisionHistoryLimit: 0
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
component: oak-camera
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: oak-camera
|
|
spec:
|
|
containers:
|
|
- name: camera
|
|
image: docker.io/cyrilix/robocar-oak-camera
|
|
args:
|
|
- "--image-width=$(CAMERA_WIDTH)"
|
|
- "--image-height=$(CAMERA_HEIGHT)"
|
|
securityContext:
|
|
runAsUser: 1234
|
|
privileged: true
|
|
volumeMounts:
|
|
- name: sys
|
|
mountPath: /sys
|
|
- name: dev
|
|
mountPath: /dev
|
|
env:
|
|
- name: MQTT_BROKER
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_BROKER_HOST
|
|
name: robocar
|
|
- name: MQTT_USERNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_USERNAME
|
|
name: mqtt-credentials
|
|
- name: MQTT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_PASSWORD
|
|
name: mqtt-credentials
|
|
- name: MQTT_CLIENT_ID
|
|
value: rc-oak-camera
|
|
- name: MQTT_TOPIC_CAMERA
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_CAMERA_OAK_COLOR
|
|
name: robocar
|
|
- name: CAMERA_WIDTH
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_WIDTH
|
|
name: robocar-camera
|
|
- name: CAMERA_HEIGHT
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: CAMERA_HEIGHT
|
|
name: robocar-camera
|
|
- name: MQTT_QOS
|
|
value: "0"
|
|
- name: TZ
|
|
value: "Europe/Paris"
|
|
hostNetwork: true
|
|
volumes:
|
|
- name: sys
|
|
hostPath:
|
|
path: /sys
|
|
- name: dev
|
|
hostPath:
|
|
path: "/dev"
|
|
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: pca9685-steering
|
|
annotations:
|
|
reloader.stakater.com/auto: "true"
|
|
spec:
|
|
revisionHistoryLimit: 0
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
component: pca9685
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: pca9685
|
|
spec:
|
|
containers:
|
|
- name: pca9685
|
|
image: docker.io/cyrilix/robocar-pca9685-python
|
|
args:
|
|
- "steering"
|
|
- "--i2c-bus=1"
|
|
- "--i2c-address=40"
|
|
- "--pca9685-channel=0"
|
|
- "--left-pulse=$(STEERING_LEFT_PWM)"
|
|
- "--right-pulse=$(STEERING_RIGHT_PWM)"
|
|
- "--debug"
|
|
securityContext:
|
|
runAsUser: 1234
|
|
runAsGroup: 998 # Set 998/i2c group to access to i2c device
|
|
privileged: true
|
|
volumeMounts:
|
|
- mountPath: /dev/i2c-1
|
|
name: i2c
|
|
env:
|
|
- name: MQTT_BROKER
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_BROKER_HOST
|
|
name: robocar
|
|
- name: MQTT_USERNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_USERNAME
|
|
name: mqtt-credentials
|
|
- name: MQTT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_PASSWORD
|
|
name: mqtt-credentials
|
|
- name: MQTT_CLIENT_ID
|
|
value: rc-pca9685-steering
|
|
- name: MQTT_TOPIC
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_STEERING
|
|
name: robocar
|
|
- name: MQTT_QOS
|
|
value: "0"
|
|
- name: STEERING_LEFT_PWM
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: robocar-pca9685
|
|
key: STEERING_LEFT_PWM
|
|
- name: STEERING_RIGHT_PWM
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: robocar-pca9685
|
|
key: STEERING_RIGHT_PWM
|
|
- name: STEERING_CENTER_PWM
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: robocar-pca9685
|
|
key: STEERING_CENTER_PWM
|
|
- name: TZ
|
|
value: "Europe/Paris"
|
|
volumes:
|
|
- name: i2c
|
|
hostPath:
|
|
path: /dev/i2c-1
|
|
type: CharDevice
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: pca9685-throttle
|
|
annotations:
|
|
reloader.stakater.com/auto: "true"
|
|
spec:
|
|
revisionHistoryLimit: 0
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
selector:
|
|
matchLabels:
|
|
component: pca9685
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: pca9685
|
|
spec:
|
|
containers:
|
|
- name: pca9685-throttle
|
|
image: docker.io/cyrilix/robocar-pca9685-python
|
|
args:
|
|
- "throttle"
|
|
- "--zero-pulse=378"
|
|
- "--min-pulse=250"
|
|
- "--max-pulse=500"
|
|
- "--i2c-bus=1"
|
|
- "--i2c-address=40"
|
|
- "--pca9685-channel=1"
|
|
- "--debug"
|
|
securityContext:
|
|
runAsUser: 1234
|
|
runAsGroup: 998 # Set 998/i2c group to access to i2c device
|
|
privileged: true
|
|
volumeMounts:
|
|
- mountPath: /dev/i2c-1
|
|
name: i2c
|
|
env:
|
|
- name: MQTT_BROKER
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_BROKER_HOST
|
|
name: robocar
|
|
- name: MQTT_USERNAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_USERNAME
|
|
name: mqtt-credentials
|
|
- name: MQTT_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: MQTT_PASSWORD
|
|
name: mqtt-credentials
|
|
- name: MQTT_CLIENT_ID
|
|
value: rc-pca9685-throttle
|
|
- name: MQTT_TOPIC
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
key: MQTT_TOPIC_THROTTLE
|
|
name: robocar
|
|
- name: MQTT_QOS
|
|
value: "0"
|
|
- name: TZ
|
|
value: "Europe/Paris"
|
|
volumes:
|
|
- name: i2c
|
|
hostPath:
|
|
path: /dev/i2c-1
|
|
type: CharDevice
|