diff --git a/compose-builder/add-secure-redis-messagebus.yml b/compose-builder/add-secure-redis-messagebus.yml index 13b3b9d9..c48c8b7e 100644 --- a/compose-builder/add-secure-redis-messagebus.yml +++ b/compose-builder/add-secure-redis-messagebus.yml @@ -16,12 +16,15 @@ version: '3.7' volumes: - kuiper-config: + kuiper-sources: + kuiper-connections: services: secretstore-setup: volumes: - - kuiper-config:/tmp/kuiper:z + - kuiper-sources:/tmp/kuiper:z + - kuiper-connections:/tmp/kuiper-connections:z + environment: SECUREMESSAGEBUS_TYPE: redis @@ -30,7 +33,8 @@ services: env_file: - common-sec-stage-gate.env volumes: - - kuiper-config:/kuiper/etc/sources:z + - kuiper-sources:/kuiper/etc/sources:z + - kuiper-connections:/kuiper/etc/connections:z - edgex-init:/edgex-init:ro,z depends_on: - security-bootstrapper diff --git a/docker-compose-arm64.yml b/docker-compose-arm64.yml index d2a558c2..94947222 100644 --- a/docker-compose-arm64.yml +++ b/docker-compose-arm64.yml @@ -739,7 +739,8 @@ services: volumes: - edgex-init:/edgex-init:ro,z - kuiper-data:/kuiper/data:z - - kuiper-config:/kuiper/etc/sources:z + - kuiper-connections:/kuiper/etc/connections:z + - kuiper-sources:/kuiper/etc/sources:z scheduler: command: /support-scheduler -cp=consul.http://edgex-core-consul:8500 --registry --confdir=/res @@ -845,7 +846,8 @@ services: - edgex-init:/edgex-init:ro,z - /tmp/edgex/secrets:/tmp/edgex/secrets:z - kong:/tmp/kong:z - - kuiper-config:/tmp/kuiper:z + - kuiper-sources:/tmp/kuiper:z + - kuiper-connections:/tmp/kuiper-connections:z - vault-config:/vault/config:z security-bootstrapper: container_name: edgex-security-bootstrapper @@ -995,8 +997,9 @@ volumes: db-data: {} edgex-init: {} kong: {} - kuiper-config: {} + kuiper-connections: {} kuiper-data: {} + kuiper-sources: {} postgres-config: {} postgres-data: {} redis-config: {} diff --git a/docker-compose.yml b/docker-compose.yml index 66c82410..d93d6ebb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -739,7 +739,8 @@ services: volumes: - edgex-init:/edgex-init:ro,z - kuiper-data:/kuiper/data:z - - kuiper-config:/kuiper/etc/sources:z + - kuiper-connections:/kuiper/etc/connections:z + - kuiper-sources:/kuiper/etc/sources:z scheduler: command: /support-scheduler -cp=consul.http://edgex-core-consul:8500 --registry --confdir=/res @@ -845,7 +846,8 @@ services: - edgex-init:/edgex-init:ro,z - /tmp/edgex/secrets:/tmp/edgex/secrets:z - kong:/tmp/kong:z - - kuiper-config:/tmp/kuiper:z + - kuiper-sources:/tmp/kuiper:z + - kuiper-connections:/tmp/kuiper-connections:z - vault-config:/vault/config:z security-bootstrapper: container_name: edgex-security-bootstrapper @@ -995,8 +997,9 @@ volumes: db-data: {} edgex-init: {} kong: {} - kuiper-config: {} + kuiper-connections: {} kuiper-data: {} + kuiper-sources: {} postgres-config: {} postgres-data: {} redis-config: {} diff --git a/taf/docker-compose-taf-arm64.yml b/taf/docker-compose-taf-arm64.yml index f9830ebe..1e50eeee 100644 --- a/taf/docker-compose-taf-arm64.yml +++ b/taf/docker-compose-taf-arm64.yml @@ -1067,7 +1067,8 @@ services: volumes: - edgex-init:/edgex-init:ro,z - kuiper-data:/kuiper/data:z - - kuiper-config:/kuiper/etc/sources:z + - kuiper-connections:/kuiper/etc/connections:z + - kuiper-sources:/kuiper/etc/sources:z scalability-test-mqtt-export: command: /app-service-configurable -cp=consul.http://edgex-core-consul:8500 --registry --confdir=/res @@ -1237,7 +1238,8 @@ services: - edgex-init:/edgex-init:ro,z - /tmp/edgex/secrets:/tmp/edgex/secrets:z - kong:/tmp/kong:z - - kuiper-config:/tmp/kuiper:z + - kuiper-sources:/tmp/kuiper:z + - kuiper-connections:/tmp/kuiper-connections:z - vault-config:/vault/config:z security-bootstrapper: container_name: edgex-security-bootstrapper @@ -1388,8 +1390,9 @@ volumes: db-data: {} edgex-init: {} kong: {} - kuiper-config: {} + kuiper-connections: {} kuiper-data: {} + kuiper-sources: {} postgres-config: {} postgres-data: {} redis-config: {} diff --git a/taf/docker-compose-taf-mqtt-bus-arm64.yml b/taf/docker-compose-taf-mqtt-bus-arm64.yml index 5dc51c88..665d0aa0 100644 --- a/taf/docker-compose-taf-mqtt-bus-arm64.yml +++ b/taf/docker-compose-taf-mqtt-bus-arm64.yml @@ -28,6 +28,68 @@ networks: edgex-network: driver: bridge services: + app-service-external-mqtt-trigger: + command: /app-service-configurable -cp=consul.http://edgex-core-consul:8500 --registry + --confdir=/res + container_name: edgex-app-external-mqtt-trigger + depends_on: + - consul + - data + - security-bootstrapper + entrypoint: + - /edgex-init/ready_to_run_wait_install.sh + environment: + API_GATEWAY_HOST: edgex-kong + API_GATEWAY_STATUS_PORT: '8100' + CLIENTS_CORE_COMMAND_HOST: edgex-core-command + CLIENTS_CORE_DATA_HOST: edgex-core-data + CLIENTS_CORE_METADATA_HOST: edgex-core-metadata + CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications + CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler + DATABASES_PRIMARY_HOST: edgex-redis + DATABASE_HOST: edgex-redis + EDGEX_PROFILE: external-mqtt-trigger + EDGEX_SECURITY_SECRET_STORE: "true" + PROXY_SETUP_HOST: edgex-security-proxy-setup + REGISTRY_HOST: edgex-core-consul + SECRETSTORE_HOST: edgex-vault + SECRETSTORE_PORT: '8200' + SERVICE_HOST: edgex-app-external-mqtt-trigger + STAGEGATE_BOOTSTRAPPER_HOST: edgex-security-bootstrapper + STAGEGATE_BOOTSTRAPPER_STARTPORT: '54321' + STAGEGATE_DATABASE_HOST: edgex-redis + STAGEGATE_DATABASE_PORT: '6379' + STAGEGATE_DATABASE_READYPORT: '6379' + STAGEGATE_KONGDB_HOST: edgex-kong-db + STAGEGATE_KONGDB_PORT: '5432' + STAGEGATE_KONGDB_READYPORT: '54325' + STAGEGATE_READY_TORUNPORT: '54329' + STAGEGATE_REGISTRY_HOST: edgex-core-consul + STAGEGATE_REGISTRY_PORT: '8500' + STAGEGATE_REGISTRY_READYPORT: '54324' + STAGEGATE_SECRETSTORESETUP_HOST: edgex-security-secretstore-setup + STAGEGATE_SECRETSTORESETUP_TOKENS_READYPORT: '54322' + STAGEGATE_WAITFOR_TIMEOUT: 60s + TRIGGER_EDGEXMESSAGEBUS_PUBLISHHOST_HOST: edgex-redis + TRIGGER_EDGEXMESSAGEBUS_SUBSCRIBEHOST_HOST: edgex-redis + TRIGGER_EXTERNALMQTT_URL: tcp://MQTT_BROKER_ADDRESS_PLACE_HOLDER:1883 + WRITABLE_LOGLEVEL: INFO + WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_BROKERADDRESS: tcp://MQTT_BROKER_ADDRESS_PLACE_HOLDER:1883 + WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_TOPIC: edgex-export + hostname: edgex-app-external-mqtt-trigger + image: nexus3.edgexfoundry.org:10004/app-service-configurable-arm64:latest + networks: + edgex-network: {} + ports: + - 127.0.0.1:59706:59706/tcp + read_only: true + restart: always + security_opt: + - no-new-privileges:true + user: 2002:2001 + volumes: + - edgex-init:/edgex-init:ro,z + - /tmp/edgex/secrets/app-external-mqtt-trigger:/tmp/edgex/secrets/app-external-mqtt-trigger:ro,z app-service-functional-tests: command: /app-service-configurable -cp=consul.http://edgex-core-consul:8500 --registry --confdir=/res @@ -351,7 +413,7 @@ services: entrypoint: - /edgex-init/consul_wait_install.sh environment: - ADD_REGISTRY_ACL_ROLES: app-http-export,app-mqtt-export,app-functional-tests,scalability-test-mqtt-export,device-modbus + ADD_REGISTRY_ACL_ROLES: app-http-export,app-mqtt-export,app-functional-tests,scalability-test-mqtt-export,device-modbus,app-external-mqtt-trigger API_GATEWAY_HOST: edgex-kong API_GATEWAY_STATUS_PORT: '8100' EDGEX_GROUP: '2001' @@ -1161,7 +1223,7 @@ services: - vault environment: ADD_KNOWN_SECRETS: redisdb[app-rules-engine],redisdb[app-http-export],redisdb[app-mqtt-export],redisdb[scalability-test-mqtt-export],redisdb[device-modbus],redisdb[device-rest],redisdb[device-virtual] - ADD_SECRETSTORE_TOKENS: app-http-export,app-mqtt-export,app-functional-tests,scalability-test-mqtt-export,device-modbus + ADD_SECRETSTORE_TOKENS: app-http-export,app-mqtt-export,app-functional-tests,scalability-test-mqtt-export,device-modbus,app-external-mqtt-trigger API_GATEWAY_HOST: edgex-kong API_GATEWAY_STATUS_PORT: '8100' EDGEX_GROUP: '2001' diff --git a/taf/docker-compose-taf-mqtt-bus.yml b/taf/docker-compose-taf-mqtt-bus.yml index e0c1008a..efdc745f 100644 --- a/taf/docker-compose-taf-mqtt-bus.yml +++ b/taf/docker-compose-taf-mqtt-bus.yml @@ -28,6 +28,68 @@ networks: edgex-network: driver: bridge services: + app-service-external-mqtt-trigger: + command: /app-service-configurable -cp=consul.http://edgex-core-consul:8500 --registry + --confdir=/res + container_name: edgex-app-external-mqtt-trigger + depends_on: + - consul + - data + - security-bootstrapper + entrypoint: + - /edgex-init/ready_to_run_wait_install.sh + environment: + API_GATEWAY_HOST: edgex-kong + API_GATEWAY_STATUS_PORT: '8100' + CLIENTS_CORE_COMMAND_HOST: edgex-core-command + CLIENTS_CORE_DATA_HOST: edgex-core-data + CLIENTS_CORE_METADATA_HOST: edgex-core-metadata + CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications + CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler + DATABASES_PRIMARY_HOST: edgex-redis + DATABASE_HOST: edgex-redis + EDGEX_PROFILE: external-mqtt-trigger + EDGEX_SECURITY_SECRET_STORE: "true" + PROXY_SETUP_HOST: edgex-security-proxy-setup + REGISTRY_HOST: edgex-core-consul + SECRETSTORE_HOST: edgex-vault + SECRETSTORE_PORT: '8200' + SERVICE_HOST: edgex-app-external-mqtt-trigger + STAGEGATE_BOOTSTRAPPER_HOST: edgex-security-bootstrapper + STAGEGATE_BOOTSTRAPPER_STARTPORT: '54321' + STAGEGATE_DATABASE_HOST: edgex-redis + STAGEGATE_DATABASE_PORT: '6379' + STAGEGATE_DATABASE_READYPORT: '6379' + STAGEGATE_KONGDB_HOST: edgex-kong-db + STAGEGATE_KONGDB_PORT: '5432' + STAGEGATE_KONGDB_READYPORT: '54325' + STAGEGATE_READY_TORUNPORT: '54329' + STAGEGATE_REGISTRY_HOST: edgex-core-consul + STAGEGATE_REGISTRY_PORT: '8500' + STAGEGATE_REGISTRY_READYPORT: '54324' + STAGEGATE_SECRETSTORESETUP_HOST: edgex-security-secretstore-setup + STAGEGATE_SECRETSTORESETUP_TOKENS_READYPORT: '54322' + STAGEGATE_WAITFOR_TIMEOUT: 60s + TRIGGER_EDGEXMESSAGEBUS_PUBLISHHOST_HOST: edgex-redis + TRIGGER_EDGEXMESSAGEBUS_SUBSCRIBEHOST_HOST: edgex-redis + TRIGGER_EXTERNALMQTT_URL: tcp://MQTT_BROKER_ADDRESS_PLACE_HOLDER:1883 + WRITABLE_LOGLEVEL: INFO + WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_BROKERADDRESS: tcp://MQTT_BROKER_ADDRESS_PLACE_HOLDER:1883 + WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_TOPIC: edgex-export + hostname: edgex-app-external-mqtt-trigger + image: nexus3.edgexfoundry.org:10004/app-service-configurable:latest + networks: + edgex-network: {} + ports: + - 127.0.0.1:59706:59706/tcp + read_only: true + restart: always + security_opt: + - no-new-privileges:true + user: 2002:2001 + volumes: + - edgex-init:/edgex-init:ro,z + - /tmp/edgex/secrets/app-external-mqtt-trigger:/tmp/edgex/secrets/app-external-mqtt-trigger:ro,z app-service-functional-tests: command: /app-service-configurable -cp=consul.http://edgex-core-consul:8500 --registry --confdir=/res @@ -351,7 +413,7 @@ services: entrypoint: - /edgex-init/consul_wait_install.sh environment: - ADD_REGISTRY_ACL_ROLES: app-http-export,app-mqtt-export,app-functional-tests,scalability-test-mqtt-export,device-modbus + ADD_REGISTRY_ACL_ROLES: app-http-export,app-mqtt-export,app-functional-tests,scalability-test-mqtt-export,device-modbus,app-external-mqtt-trigger API_GATEWAY_HOST: edgex-kong API_GATEWAY_STATUS_PORT: '8100' EDGEX_GROUP: '2001' @@ -1161,7 +1223,7 @@ services: - vault environment: ADD_KNOWN_SECRETS: redisdb[app-rules-engine],redisdb[app-http-export],redisdb[app-mqtt-export],redisdb[scalability-test-mqtt-export],redisdb[device-modbus],redisdb[device-rest],redisdb[device-virtual] - ADD_SECRETSTORE_TOKENS: app-http-export,app-mqtt-export,app-functional-tests,scalability-test-mqtt-export,device-modbus + ADD_SECRETSTORE_TOKENS: app-http-export,app-mqtt-export,app-functional-tests,scalability-test-mqtt-export,device-modbus,app-external-mqtt-trigger API_GATEWAY_HOST: edgex-kong API_GATEWAY_STATUS_PORT: '8100' EDGEX_GROUP: '2001' diff --git a/taf/docker-compose-taf-no-secty-mqtt-bus-arm64.yml b/taf/docker-compose-taf-no-secty-mqtt-bus-arm64.yml index 81ee408c..7584c2a6 100644 --- a/taf/docker-compose-taf-no-secty-mqtt-bus-arm64.yml +++ b/taf/docker-compose-taf-no-secty-mqtt-bus-arm64.yml @@ -28,6 +28,40 @@ networks: edgex-network: driver: bridge services: + app-service-external-mqtt-trigger: + container_name: edgex-app-external-mqtt-trigger + depends_on: + - consul + - data + environment: + CLIENTS_CORE_COMMAND_HOST: edgex-core-command + CLIENTS_CORE_DATA_HOST: edgex-core-data + CLIENTS_CORE_METADATA_HOST: edgex-core-metadata + CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications + CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler + DATABASES_PRIMARY_HOST: edgex-redis + DATABASE_HOST: edgex-redis + EDGEX_PROFILE: external-mqtt-trigger + EDGEX_SECURITY_SECRET_STORE: "false" + REGISTRY_HOST: edgex-core-consul + SERVICE_HOST: edgex-app-external-mqtt-trigger + TRIGGER_EDGEXMESSAGEBUS_PUBLISHHOST_HOST: edgex-redis + TRIGGER_EDGEXMESSAGEBUS_SUBSCRIBEHOST_HOST: edgex-redis + TRIGGER_EXTERNALMQTT_URL: tcp://MQTT_BROKER_ADDRESS_PLACE_HOLDER:1883 + WRITABLE_LOGLEVEL: INFO + WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_BROKERADDRESS: tcp://MQTT_BROKER_ADDRESS_PLACE_HOLDER:1883 + WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_TOPIC: edgex-export + hostname: edgex-app-external-mqtt-trigger + image: nexus3.edgexfoundry.org:10004/app-service-configurable-arm64:latest + networks: + edgex-network: {} + ports: + - 127.0.0.1:59706:59706/tcp + read_only: true + restart: always + security_opt: + - no-new-privileges:true + user: 2002:2001 app-service-functional-tests: container_name: app-functional-tests depends_on: diff --git a/taf/docker-compose-taf-no-secty-mqtt-bus.yml b/taf/docker-compose-taf-no-secty-mqtt-bus.yml index 6d6ac7b0..dd9383d5 100644 --- a/taf/docker-compose-taf-no-secty-mqtt-bus.yml +++ b/taf/docker-compose-taf-no-secty-mqtt-bus.yml @@ -28,6 +28,40 @@ networks: edgex-network: driver: bridge services: + app-service-external-mqtt-trigger: + container_name: edgex-app-external-mqtt-trigger + depends_on: + - consul + - data + environment: + CLIENTS_CORE_COMMAND_HOST: edgex-core-command + CLIENTS_CORE_DATA_HOST: edgex-core-data + CLIENTS_CORE_METADATA_HOST: edgex-core-metadata + CLIENTS_SUPPORT_NOTIFICATIONS_HOST: edgex-support-notifications + CLIENTS_SUPPORT_SCHEDULER_HOST: edgex-support-scheduler + DATABASES_PRIMARY_HOST: edgex-redis + DATABASE_HOST: edgex-redis + EDGEX_PROFILE: external-mqtt-trigger + EDGEX_SECURITY_SECRET_STORE: "false" + REGISTRY_HOST: edgex-core-consul + SERVICE_HOST: edgex-app-external-mqtt-trigger + TRIGGER_EDGEXMESSAGEBUS_PUBLISHHOST_HOST: edgex-redis + TRIGGER_EDGEXMESSAGEBUS_SUBSCRIBEHOST_HOST: edgex-redis + TRIGGER_EXTERNALMQTT_URL: tcp://MQTT_BROKER_ADDRESS_PLACE_HOLDER:1883 + WRITABLE_LOGLEVEL: INFO + WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_BROKERADDRESS: tcp://MQTT_BROKER_ADDRESS_PLACE_HOLDER:1883 + WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_TOPIC: edgex-export + hostname: edgex-app-external-mqtt-trigger + image: nexus3.edgexfoundry.org:10004/app-service-configurable:latest + networks: + edgex-network: {} + ports: + - 127.0.0.1:59706:59706/tcp + read_only: true + restart: always + security_opt: + - no-new-privileges:true + user: 2002:2001 app-service-functional-tests: container_name: app-functional-tests depends_on: diff --git a/taf/docker-compose-taf-perf-arm64.yml b/taf/docker-compose-taf-perf-arm64.yml index 0c6eca0a..2b4bf0ad 100644 --- a/taf/docker-compose-taf-perf-arm64.yml +++ b/taf/docker-compose-taf-perf-arm64.yml @@ -817,7 +817,8 @@ services: volumes: - edgex-init:/edgex-init:ro,z - kuiper-data:/kuiper/data:z - - kuiper-config:/kuiper/etc/sources:z + - kuiper-connections:/kuiper/etc/connections:z + - kuiper-sources:/kuiper/etc/sources:z scheduler: command: /support-scheduler -cp=consul.http://edgex-core-consul:8500 --registry --confdir=/res @@ -923,7 +924,8 @@ services: - edgex-init:/edgex-init:ro,z - /tmp/edgex/secrets:/tmp/edgex/secrets:z - kong:/tmp/kong:z - - kuiper-config:/tmp/kuiper:z + - kuiper-sources:/tmp/kuiper:z + - kuiper-connections:/tmp/kuiper-connections:z - vault-config:/vault/config:z security-bootstrapper: container_name: edgex-security-bootstrapper @@ -1073,8 +1075,9 @@ volumes: db-data: {} edgex-init: {} kong: {} - kuiper-config: {} + kuiper-connections: {} kuiper-data: {} + kuiper-sources: {} postgres-config: {} postgres-data: {} redis-config: {} diff --git a/taf/docker-compose-taf-perf.yml b/taf/docker-compose-taf-perf.yml index 558761f9..bde96cfa 100644 --- a/taf/docker-compose-taf-perf.yml +++ b/taf/docker-compose-taf-perf.yml @@ -817,7 +817,8 @@ services: volumes: - edgex-init:/edgex-init:ro,z - kuiper-data:/kuiper/data:z - - kuiper-config:/kuiper/etc/sources:z + - kuiper-connections:/kuiper/etc/connections:z + - kuiper-sources:/kuiper/etc/sources:z scheduler: command: /support-scheduler -cp=consul.http://edgex-core-consul:8500 --registry --confdir=/res @@ -923,7 +924,8 @@ services: - edgex-init:/edgex-init:ro,z - /tmp/edgex/secrets:/tmp/edgex/secrets:z - kong:/tmp/kong:z - - kuiper-config:/tmp/kuiper:z + - kuiper-sources:/tmp/kuiper:z + - kuiper-connections:/tmp/kuiper-connections:z - vault-config:/vault/config:z security-bootstrapper: container_name: edgex-security-bootstrapper @@ -1073,8 +1075,9 @@ volumes: db-data: {} edgex-init: {} kong: {} - kuiper-config: {} + kuiper-connections: {} kuiper-data: {} + kuiper-sources: {} postgres-config: {} postgres-data: {} redis-config: {} diff --git a/taf/docker-compose-taf.yml b/taf/docker-compose-taf.yml index 5aca2f48..110fddd9 100644 --- a/taf/docker-compose-taf.yml +++ b/taf/docker-compose-taf.yml @@ -1067,7 +1067,8 @@ services: volumes: - edgex-init:/edgex-init:ro,z - kuiper-data:/kuiper/data:z - - kuiper-config:/kuiper/etc/sources:z + - kuiper-connections:/kuiper/etc/connections:z + - kuiper-sources:/kuiper/etc/sources:z scalability-test-mqtt-export: command: /app-service-configurable -cp=consul.http://edgex-core-consul:8500 --registry --confdir=/res @@ -1237,7 +1238,8 @@ services: - edgex-init:/edgex-init:ro,z - /tmp/edgex/secrets:/tmp/edgex/secrets:z - kong:/tmp/kong:z - - kuiper-config:/tmp/kuiper:z + - kuiper-sources:/tmp/kuiper:z + - kuiper-connections:/tmp/kuiper-connections:z - vault-config:/vault/config:z security-bootstrapper: container_name: edgex-security-bootstrapper @@ -1388,8 +1390,9 @@ volumes: db-data: {} edgex-init: {} kong: {} - kuiper-config: {} + kuiper-connections: {} kuiper-data: {} + kuiper-sources: {} postgres-config: {} postgres-data: {} redis-config: {}