Я использую kubernetes с virtual-kubelet для развертывания модуля в Iot Edge.Все отлично работает с публичным имиджем.Я не могу понять, как передать учетные данные в мой личный реестр.
В этой документации https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/iot-edge/iot-edge-runtime.md написано:
settings.image - Образ контейнера, который IoTEdge agent использует для запуска модуля.Агент IoT Edge должен быть настроен с учетными данными для реестра контейнера, если образ защищен паролем.Учетные данные для реестра контейнера можно настроить удаленно, используя манифест развертывания или на самом устройстве IoT Edge, обновив файл config.yaml в папке программы IoT Edge.
Кажется, очень легко, но не могу найти, как изменить config.yaml, чтобы добавить мои учетные данные.Я думаю, что это должно быть добавлено в следующем разделе, но нет примера, как это сделать.
###############################################################################
# Edge Agent module spec
###############################################################################
#
# Configures the initial Edge Agent module.
#
# The daemon uses this definition to bootstrap the system. The Edge Agent can
# then update itself based on the Edge Agent module definition present in the
# deployment in IoT Hub.
#
###############################################################################
agent:
name: "edgeAgent"
type: "docker"
env:
RuntimeLogLevel: debug
config:
image: "mcr.microsoft.com/azureiotedge-agent:1.0"
auth: {}
YAML
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: matrix
spec:
selector:
matchLabels:
app: matrix
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0%
maxUnavailable: 100%
template:
metadata:
labels:
app: matrix
annotations:
isEdgeDeployment: "true"
targetCondition: "tags.type='gpu'"
priority: "151"
loggingOptions: ""
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- matrix
topologyKey: "kubernetes.io/hostname"
containers:
- name: matrix
image: "registry.xxx.xx/image/xxx-frontend"
env:
- name: DISPLAY
value: ":0.0"
nodeSelector:
type: virtual-kubelet
tolerations:
- key: virtual-kubelet.io/provider
operator: Equal
value: iotedge
effect: NoSchedule
---
kind: ConfigMap
apiVersion: v1
metadata:
name: matrix
data:
status: running
restartPolicy: always
version: "1.0"
createOptions: |
{
"HostConfig": {
"Privileged": "true",
"Mounts": [{"Target": "/tmp/.X11-unix/","Source": "/tmp/.X11-unix/","Type": "bind"}],
"network": "host"
}
}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: edgeagent
data:
desiredProperties: |
{
"runtime": {
"settings": {
"registryCredentials": {
"docker": {
"address": "registry.xxx.xx",
"password": "xxxxxxxxxxxxxxx",
"username": "user"
}
}
}
},
"systemModules": {
"edgeHub": {
"env": {
"OptimizeForPerformance": {
"value": "false"
}
}
}
}
}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: edgehub
data:
desiredProperties: |
{
"routes": {
"route": "FROM /* INTO $upstream",
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 6
}
}