robocar-setup/ansible/roles/microservices/files/robocar/car/deployments.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