├── .gitignore
├── taf
└── .gitignore
├── openziti-init.Dockerfile
├── compose-builder
├── .gitignore
├── add-taf-mqtt-broker-mosquitto.yml
├── add-taf-mqtt-broker-nanomq.yml
├── add-secure-device-mqtt.yml
├── common-non-security.env
├── common-security.env
├── add-runtime-token-config-template.yml
├── gen-header
├── add-taf-device-services-mods.yml
├── add-mqtt-broker-nanomq.yml
├── add-mqtt-broker-mosquitto.yml
├── add-modbus-simulator.yml
├── add-postgres.yml
├── add-device-uart.yml
├── add-device-onvif-camera.yml
├── add-mqtt-messagebus.yml
├── add-device-s7.yml
├── add-device-gpio.yml
├── add-device-rest.yml
├── add-device-snmp.yml
├── add-service-secure-template.yml
├── add-device-opc-ua.yml
├── add-device-modbus.yml
├── add-device-virtual.yml
├── add-device-rfid-llrp.yml
├── add-app-record-replay.yml
├── add-device-mqtt.yml
├── add-device-usb-camera.yml
├── add-asc-metrics-influxdb.yml
├── common-sec-stage-gate.env
├── add-secure-mqtt-broker.yml
├── add-device-coap.yml
├── add-app-rfid-llrp-inventory.yml
├── gen_runtime_token_config_compose_ext.sh
├── add-device-can.yml
├── add-secure-mqtt-messagebus.yml
├── add-asc-sample.yml
├── add-device-bacnet-ip.yml
├── add-asc-http-export.yml
├── add-secure-postgres.yml
├── add-device-bacnet-mstp.yml
├── get-api-gateway-token.sh
├── add-asc-mqtt-export.yml
├── add-asc-external-mqtt-trigger.yml
├── add-taf-app-services-secure.yml
├── add-nats-messagebus.yml
├── .env
├── upload-api-gateway-cert.sh
├── add-taf-app-services.yml
├── add-security-zero-trust.yml
├── add-security-proxy.yml
├── gen_secure_compose_ext.sh
├── add-delayed-start-services.yml
├── add-security.yml
├── docker-compose-base.yml
└── tui-generator.sh
├── .github
├── semantic.yml
├── PULL_REQUEST_TEMPLATE.md
└── Contributing.md
├── OWNERS.md
├── GOVERNANCE.md
├── docker-compose-portainer.yml
├── Jenkinsfile
├── Makefile
├── docker-compose-openziti.yml
├── openziti-init-entrypoint.sh
├── README.md
├── LICENSE
├── docker-compose-no-secty.yml
└── docker-compose-no-secty-arm64.yml
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | .vscode
3 |
--------------------------------------------------------------------------------
/taf/.gitignore:
--------------------------------------------------------------------------------
1 | docker-compose-taf-no-secty-mqtt-bus-nanomq.yml
2 | docker-compose-taf-perf-no-secty-mqtt-bus-nanomq.yml
--------------------------------------------------------------------------------
/openziti-init.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openziti/ziti-cli:0.33.1
2 |
3 | COPY ./openziti-init-entrypoint.sh /entrypoint.sh
4 |
5 | ENTRYPOINT [ "/entrypoint.sh" ]
6 |
--------------------------------------------------------------------------------
/compose-builder/.gitignore:
--------------------------------------------------------------------------------
1 | # docker-compose.yml is generated by the `make gen [options]` command
2 | docker-compose.yml
3 | # staging directory is generated by the shell script gen_secure_compose_ext.sh
4 | gen_ext_scty/
5 | gen_ext_compose
6 | res/
7 |
--------------------------------------------------------------------------------
/.github/semantic.yml:
--------------------------------------------------------------------------------
1 | allowMergeCommits: true
2 | # Always validate the PR title AND all the commits
3 | titleAndCommits: true
4 | types:
5 | - feat
6 | - fix
7 | - docs
8 | - style
9 | - refactor
10 | - perf
11 | - test
12 | - build
13 | - ci
14 | - revert
15 |
16 |
17 |
--------------------------------------------------------------------------------
/compose-builder/add-taf-mqtt-broker-mosquitto.yml:
--------------------------------------------------------------------------------
1 | services:
2 | mqtt-taf-broker:
3 | image: eclipse-mosquitto:${MOSQUITTO_VERSION}
4 | command: "/usr/sbin/mosquitto -c /mosquitto-no-auth.conf"
5 | ports:
6 | - "127.0.0.1:1884:1883"
7 | container_name: edgex-taf-mqtt-broker
8 | hostname: edgex-taf-mqtt-broker
9 | read_only: true
10 | restart: always
11 | networks:
12 | - edgex-network
13 | security_opt:
14 | - no-new-privileges:true
15 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
--------------------------------------------------------------------------------
/compose-builder/add-taf-mqtt-broker-nanomq.yml:
--------------------------------------------------------------------------------
1 | volumes:
2 | taf-nanomq-log:
3 |
4 | services:
5 | mqtt-taf-broker:
6 | image: emqx/nanomq:${NANOMQ_VERSION}
7 | ports:
8 | - "127.0.0.1:1884:1883"
9 | container_name: edgex-taf-mqtt-broker
10 | hostname: edgex-taf-mqtt-broker
11 | read_only: true
12 | restart: always
13 | networks:
14 | - edgex-network
15 | security_opt:
16 | - no-new-privileges:true
17 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
18 | volumes:
19 | - taf-nanomq-log:/tmp
20 |
--------------------------------------------------------------------------------
/OWNERS.md:
--------------------------------------------------------------------------------
1 | # Repository Owners
2 |
3 | This repository is managed by the EdgeX Core Working Group. As such, the **Core Working Group** chairman is considered the "owner" of the repository and approves all committers of the repository.
4 |
5 | See the [project Wiki TSC page](https://wiki.edgexfoundry.org/pages/viewpage.action?pageId=329436#TechnicalSteeringCommittee(TSC)-WorkingGroups) for information on the current EdgeX TSC and who occupies the role of Core Working Group chair.
6 |
7 | For a complete list of current committers see: https://github.com/orgs/edgexfoundry/teams/edgex-compose-committers/members.
8 |
9 |
--------------------------------------------------------------------------------
/GOVERNANCE.md:
--------------------------------------------------------------------------------
1 | # Governance
2 |
3 | Project governance as well as policies, procedures and instructions for contributing to EdgeX Foundry can be found on our Wiki site at the following locations:
4 |
5 | - [EdgeX Technical Steering Committee](https://wiki.edgexfoundry.org/pages/viewpage.action?pageId=329436)
6 | - [Contributor's Guide](https://wiki.edgexfoundry.org/display/FA/Contributor%27s+Guide)
7 | - [Contributor's Process](https://wiki.edgexfoundry.org/display/FA/Contributor%27s+Process)
8 | - [Technical Work](https://wiki.edgexfoundry.org/display/FA/Technical+Work+in+the+EdgeX+Foundry+Project)
9 | - [Contributors, Committers & Maintainers](https://wiki.edgexfoundry.org/pages/viewpage.action?pageId=21823860)
--------------------------------------------------------------------------------
/compose-builder/add-secure-device-mqtt.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2022 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-mqtt:
18 | environment:
19 | MQTTBROKERINFO_AUTHMODE: none
20 | MQTTBROKERINFO_CREDENTIALSNAME: message-bus
21 |
--------------------------------------------------------------------------------
/compose-builder/common-non-security.env:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2023 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 | #
16 | # This file contains the common non-security related environment overrides used many Edgex services.
17 | #
18 |
19 | EDGEX_SECURITY_SECRET_STORE=false
20 |
--------------------------------------------------------------------------------
/compose-builder/common-security.env:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2021 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 | #
16 | # This file contains the common security related environment overrides used many Edgex services.
17 | #
18 |
19 | EDGEX_SECURITY_SECRET_STORE=true
20 | SECRETSTORE_HOST=edgex-secret-store
21 | CLIENTS_SECURITY_SECRETSTORE_SETUP_HOST=edgex-security-secretstore-setup
22 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | **If your build fails** due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-compose/blob/main/.github/Contributing.md
8 |
9 | ## PR Checklist
10 | Please check if your PR fulfills the following requirements:
11 |
12 | - [ ] I am not introducing a breaking change (if you are, flag in conventional commit message with `BREAKING CHANGE:` describing the break)
13 | - [ ] I have fully tested (add details below) this the new feature or bug fix (if not, why?)
14 | - [ ] I have opened a PR for the related docs change (if not, why?)
15 |
16 |
17 |
18 | ## Testing Instructions
19 |
20 |
--------------------------------------------------------------------------------
/compose-builder/add-runtime-token-config-template.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2022 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | ${SERVICE_NAME}:
18 | environment:
19 | SECRETSTORE_RUNTIMETOKENPROVIDER_ENABLED: "true"
20 | SECRETSTORE_RUNTIMETOKENPROVIDER_HOST: edgex-security-spiffe-token-provider
21 | volumes:
22 | - /tmp/edgex/secrets/spiffe/public:/tmp/edgex/secrets/spiffe/public:ro,z
23 | depends_on:
24 | - security-spiffe-token-provider
25 |
--------------------------------------------------------------------------------
/docker-compose-portainer.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2021 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | version: '3.7'
17 |
18 | volumes:
19 | portainer_data:
20 |
21 | services:
22 | portainer:
23 | image: portainer/portainer-ce
24 | ports:
25 | - "127.0.0.1:9000:9000"
26 | container_name: portainer
27 | restart: always
28 | command: -H unix:///var/run/docker.sock
29 | volumes:
30 | - ${DOCKER_SOCKET_PATH}:/var/run/docker.sock
31 | - portainer_data:/data
32 |
33 |
--------------------------------------------------------------------------------
/compose-builder/gen-header:
--------------------------------------------------------------------------------
1 | # * Copyright 2024 Intel Corporation.
2 | # *
3 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
4 | # * in compliance with the License. You may obtain a copy of the License at
5 | # *
6 | # * http://www.apache.org/licenses/LICENSE-2.0
7 | # *
8 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
9 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
10 | # * or implied. See the License for the specific language governing permissions and limitations under
11 | # * the License.
12 | # *
13 | # * EdgeX Foundry, Odessa WIP release
14 | # *******************************************************************************/
15 | #
16 | #
17 | #
18 | # ************************ This is a generated compose file ****************************
19 | #
20 | # DO NOT MAKE CHANGES that are intended to be permanent to EdgeX edgex-compose repo.
21 | #
22 | # Permanent changes can be made to the source compose files located in the compose-builder folder
23 | # at the top level of the edgex-compose repo.
24 | #
25 | # From the compose-builder folder use `make build` to regenerate all standard compose files variations
26 | #
27 |
--------------------------------------------------------------------------------
/compose-builder/add-taf-device-services-mods.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2021 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-virtual:
18 | command: "${CP_FLAGS} --registry --configDir=CONFIG_DIR_PLACE_HOLDER"
19 | volumes:
20 | - /PROFILE_VOLUME_PLACE_HOLDER:CONFIG_DIR_PLACE_HOLDER:z
21 |
22 | device-modbus:
23 | command: "${CP_FLAGS} --registry --configDir=CONFIG_DIR_PLACE_HOLDER"
24 | volumes:
25 | - /PROFILE_VOLUME_PLACE_HOLDER:CONFIG_DIR_PLACE_HOLDER:z
26 | depends_on:
27 | - modbus-simulator
28 |
--------------------------------------------------------------------------------
/compose-builder/add-mqtt-broker-nanomq.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2021 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | volumes:
17 | nanomq-log:
18 |
19 | services:
20 | mqtt-broker:
21 | image: emqx/nanomq:${NANOMQ_VERSION}
22 | ports:
23 | - "127.0.0.1:1883:1883"
24 | container_name: edgex-mqtt-broker
25 | hostname: edgex-mqtt-broker
26 | read_only: true
27 | restart: always
28 | networks:
29 | - edgex-network
30 | security_opt:
31 | - no-new-privileges:true
32 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
33 | volumes:
34 | - nanomq-log:/tmp
35 |
--------------------------------------------------------------------------------
/compose-builder/add-mqtt-broker-mosquitto.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2021 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | mqtt-broker:
18 | image: eclipse-mosquitto:${MOSQUITTO_VERSION}
19 | command: "/usr/sbin/mosquitto ${MQTT_VERBOSE} -c /mosquitto-no-auth.conf"
20 | ports:
21 | - "127.0.0.1:1883:1883"
22 | container_name: edgex-mqtt-broker
23 | hostname: edgex-mqtt-broker
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | security_opt:
29 | - no-new-privileges:true
30 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
31 |
--------------------------------------------------------------------------------
/compose-builder/add-modbus-simulator.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2021 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | modbus-simulator:
18 | image: nexus3.edgexfoundry.org:10003/edgex-devops/edgex-modbus-simulator${ARCH}:latest
19 | container_name: edgex-modbus-simulator
20 | hostname: edgex-modbus-simulator
21 | ports:
22 | - 127.0.0.1:1502:1502/tcp
23 | networks:
24 | - edgex-network
25 | read_only: true
26 | restart: always
27 | security_opt:
28 | - no-new-privileges:true
29 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
30 | volumes:
31 | # use host timezone
32 | - /etc/localtime:/etc/localtime:ro
33 |
--------------------------------------------------------------------------------
/compose-builder/add-postgres.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 IOTech Ltd
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | volumes:
17 | db-data:
18 |
19 | services:
20 | database:
21 | image: postgres:${POSTGRES_VERSION}
22 | ports:
23 | - "127.0.0.1:5432:5432"
24 | container_name: edgex-postgres
25 | hostname: edgex-postgres
26 | read_only: true
27 | restart: always
28 | networks:
29 | - edgex-network
30 | environment:
31 | POSTGRES_PASSWORD: postgres
32 | POSTGRES_DB: edgex_db
33 | volumes:
34 | # use host timezone
35 | - /etc/localtime:/etc/localtime:ro
36 | - db-data:/var/lib/postgresql/data
37 | security_opt:
38 | - no-new-privileges:true
39 | tmpfs:
40 | - /run
41 |
--------------------------------------------------------------------------------
/compose-builder/add-device-uart.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-uart:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-uart${ARCH}:${DEVICE_UART_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59995:59995"
22 | container_name: edgex-device-uart
23 | hostname: edgex-device-uart
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | env_file:
29 | - common-non-security.env
30 | environment:
31 | SERVICE_HOST: edgex-device-uart
32 | depends_on:
33 | - core-keeper
34 | - core-data
35 | - core-metadata
36 | - core-common-config-bootstrapper
37 | security_opt:
38 | - no-new-privileges:true
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 |
--------------------------------------------------------------------------------
/compose-builder/add-device-onvif-camera.yml:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (c) 2024 Intel Corporation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 |
17 | services:
18 | device-onvif-camera:
19 | image: ${DEVICE_SVC_REPOSITORY}/device-onvif-camera${ARCH}:${DEVICE_ONVIFCAM_VERSION}
20 | command: "${CP_FLAGS} --registry"
21 | ports:
22 | - "127.0.0.1:59984:59984"
23 | container_name: edgex-device-onvif-camera
24 | hostname: edgex-device-onvif-camera
25 | read_only: true
26 | restart: always
27 | networks:
28 | - edgex-network
29 | env_file:
30 | - common-non-security.env
31 | environment:
32 | SERVICE_HOST: edgex-device-onvif-camera
33 | MESSAGEBUS_HOST: edgex-mqtt-broker
34 | depends_on:
35 | - core-keeper
36 | - core-data
37 | - core-metadata
38 | - core-common-config-bootstrapper
39 | security_opt:
40 | - no-new-privileges:true
41 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
42 | volumes:
43 | # use host timezone
44 | - /etc/localtime:/etc/localtime:ro
45 |
--------------------------------------------------------------------------------
/compose-builder/add-mqtt-messagebus.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2022 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | rules-engine:
18 | environment:
19 | CONNECTION__EDGEX__MQTTMSGBUS__PORT: 1883
20 | CONNECTION__EDGEX__MQTTMSGBUS__PROTOCOL: tcp
21 | CONNECTION__EDGEX__MQTTMSGBUS__SERVER: edgex-mqtt-broker
22 | CONNECTION__EDGEX__MQTTMSGBUS__TYPE: mqtt
23 | CONNECTION__EDGEX__MQTTMSGBUS__OPTIONAL__CLIENTID: kuiper-rules-engine
24 | CONNECTION__EDGEX__MQTTMSGBUS__OPTIONAL__KEEPALIVE: 500
25 | EDGEX__DEFAULT__PORT: 1883
26 | EDGEX__DEFAULT__PROTOCOL: tcp
27 | EDGEX__DEFAULT__SERVER: edgex-mqtt-broker
28 | EDGEX__DEFAULT__TYPE: mqtt
29 | EDGEX__DEFAULT__OPTIONAL__CLIENTID: kuiper-rules-engine
30 | EDGEX__DEFAULT__OPTIONAL__KEEPALIVE: 500
31 | depends_on:
32 | - mqtt-broker
33 |
--------------------------------------------------------------------------------
/compose-builder/add-device-s7.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 YIQISOFT.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-s7:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-s7${ARCH}:${DEVICE_S7_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - '127.0.0.1:59994:59994'
22 | container_name: edgex-device-s7
23 | hostname: edgex-device-s7
24 | networks:
25 | - edgex-network
26 | env_file:
27 | - common-non-security.env
28 | environment:
29 | SERVICE_HOST: edgex-device-s7
30 | depends_on:
31 | - core-keeper
32 | - core-data
33 | - core-metadata
34 | - core-common-config-bootstrapper
35 | security_opt:
36 | - no-new-privileges:true
37 | read_only: true
38 | restart: always
39 | user: '${EDGEX_USER}:${EDGEX_GROUP}'
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/add-device-gpio.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-gpio:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-gpio${ARCH}:${DEVICE_GPIO_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59910:59910"
22 | container_name: edgex-device-gpio
23 | hostname: edgex-device-gpio
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | env_file:
29 | - common-non-security.env
30 | environment:
31 | SERVICE_HOST: edgex-device-gpio
32 | depends_on:
33 | - core-keeper
34 | - core-data
35 | - core-metadata
36 | - core-common-config-bootstrapper
37 | security_opt:
38 | - no-new-privileges:true
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/add-device-rest.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-rest:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-rest${ARCH}:${DEVICE_REST_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59986:59986"
22 | container_name: edgex-device-rest
23 | hostname: edgex-device-rest
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | env_file:
29 | - common-non-security.env
30 | environment:
31 | SERVICE_HOST: edgex-device-rest
32 | depends_on:
33 | - core-keeper
34 | - core-data
35 | - core-metadata
36 | - core-common-config-bootstrapper
37 | security_opt:
38 | - no-new-privileges:true
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/add-device-snmp.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-snmp:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-snmp${ARCH}:${DEVICE_SNMP_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59993:59993"
22 | container_name: edgex-device-snmp
23 | hostname: edgex-device-snmp
24 | networks:
25 | - edgex-network
26 | env_file:
27 | - common-non-security.env
28 | environment:
29 | SERVICE_HOST: edgex-device-snmp
30 | depends_on:
31 | - core-keeper
32 | - core-data
33 | - core-metadata
34 | - core-common-config-bootstrapper
35 | security_opt:
36 | - no-new-privileges:true
37 | read_only: true
38 | restart: always
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/add-service-secure-template.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2021 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | security-secretstore-setup:
18 | environment:
19 | EDGEX_ADD_SECRETSTORE_TOKENS: ${TOKEN_LIST}
20 | EDGEX_ADD_KNOWN_SECRETS: ${KNOWN_SECRETS_LIST}
21 |
22 | ${ZERO_TRUST}security-proxy-setup:
23 | ${ZERO_TRUST} environment:
24 | ${ZERO_TRUST} EDGEX_ADD_PROXY_ROUTE: ${EXTRA_PROXY_ROUTE_LIST}
25 |
26 | ${SERVICE_NAME}:
27 | entrypoint: [${SHELL_OVERRIDE} "/edgex-init/ready_to_run_wait_install.sh"]
28 | command: "/${EXECUTABLE} --registry ${CP_FLAGS}"
29 | env_file:
30 | - common-security.env
31 | - common-sec-stage-gate.env
32 | ##${ENVIRONMENT_SECTION}
33 | volumes:
34 | - edgex-init:/edgex-init:ro
35 | - /tmp/edgex/secrets/${SERVICE_KEY}:/tmp/edgex/secrets/${SERVICE_KEY}:ro,z
36 | depends_on:
37 | - security-bootstrapper
38 |
--------------------------------------------------------------------------------
/compose-builder/add-device-opc-ua.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2025 YIQISOFT.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-opc-ua:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-opc-ua${ARCH}:${DEVICE_OPCUA_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - '127.0.0.1:59997:59997'
22 | container_name: edgex-device-opc-ua
23 | hostname: edgex-device-opc-ua
24 | networks:
25 | - edgex-network
26 | env_file:
27 | - common-non-security.env
28 | environment:
29 | SERVICE_HOST: edgex-device-opc-ua
30 | depends_on:
31 | - core-keeper
32 | - core-data
33 | - core-metadata
34 | - core-common-config-bootstrapper
35 | security_opt:
36 | - no-new-privileges:true
37 | read_only: true
38 | restart: always
39 | user: '${EDGEX_USER}:${EDGEX_GROUP}'
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/add-device-modbus.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-modbus:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-modbus${ARCH}:${DEVICE_MODBUS_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59901:59901"
22 | container_name: edgex-device-modbus
23 | hostname: edgex-device-modbus
24 | networks:
25 | - edgex-network
26 | env_file:
27 | - common-non-security.env
28 | environment:
29 | SERVICE_HOST: edgex-device-modbus
30 | depends_on:
31 | - core-keeper
32 | - core-data
33 | - core-metadata
34 | - core-common-config-bootstrapper
35 | security_opt:
36 | - no-new-privileges:true
37 | read_only: true
38 | restart: always
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/add-device-virtual.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-virtual:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-virtual${ARCH}:${DEVICE_VIRTUAL_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59900:59900"
22 | container_name: edgex-device-virtual
23 | hostname: edgex-device-virtual
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | env_file:
29 | - common-non-security.env
30 | environment:
31 | SERVICE_HOST: edgex-device-virtual
32 | depends_on:
33 | - core-keeper
34 | - core-data
35 | - core-metadata
36 | - core-common-config-bootstrapper
37 | security_opt:
38 | - no-new-privileges:true
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/add-device-rfid-llrp.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-rfid-llrp:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-rfid-llrp${ARCH}:${DEVICE_LLRP_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59989:59989"
22 | container_name: edgex-device-rfid-llrp
23 | hostname: edgex-device-rfid-llrp
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | env_file:
29 | - common-non-security.env
30 | environment:
31 | SERVICE_HOST: edgex-device-rfid-llrp
32 | depends_on:
33 | - core-keeper
34 | - core-data
35 | - core-metadata
36 | - core-common-config-bootstrapper
37 | security_opt:
38 | - no-new-privileges:true
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/add-app-record-replay.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | app-record-replay:
18 | image: ${APP_SVC_REPOSITORY}/app-record-replay${ARCH}:${APP_RECORD_REPLAY_VERSION}
19 | command: "--registry ${CP_FLAGS}"
20 | ports:
21 | - 127.0.0.1:59712:59712/tcp
22 | container_name: edgex-app-record-replay
23 | hostname: edgex-app-record-replay
24 | env_file:
25 | - common-non-security.env
26 | environment:
27 | SERVICE_HOST: edgex-app-record-replay
28 | depends_on:
29 | - core-keeper
30 | - database
31 | - core-metadata
32 | - core-common-config-bootstrapper
33 | read_only: true
34 | restart: always
35 | networks:
36 | - edgex-network
37 | security_opt:
38 | - no-new-privileges:true
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
44 |
--------------------------------------------------------------------------------
/compose-builder/add-device-mqtt.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-mqtt:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-mqtt${ARCH}:${DEVICE_MQTT_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59982:59982"
22 | container_name: edgex-device-mqtt
23 | hostname: edgex-device-mqtt
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | env_file:
29 | - common-non-security.env
30 | environment:
31 | SERVICE_HOST: edgex-device-mqtt
32 | MQTTBROKERINFO_HOST: edgex-mqtt-broker
33 | depends_on:
34 | - core-keeper
35 | - core-data
36 | - core-metadata
37 | - mqtt-broker
38 | - core-common-config-bootstrapper
39 | security_opt:
40 | - no-new-privileges:true
41 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
42 | volumes:
43 | # use host timezone
44 | - /etc/localtime:/etc/localtime:ro
45 |
--------------------------------------------------------------------------------
/compose-builder/add-device-usb-camera.yml:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (c) 2024 Intel Corporation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 |
17 | services:
18 | device-usb-camera:
19 | image: ${DEVICE_SVC_REPOSITORY}/device-usb-camera${ARCH}:${DEVICE_USBCAM_VERSION}
20 | command: "${CP_FLAGS} --registry"
21 | ports:
22 | - "127.0.0.1:59983:59983"
23 | - "127.0.0.1:8554:8554/tcp"
24 | container_name: edgex-device-usb-camera
25 | hostname: edgex-device-usb-camera
26 | read_only: true
27 | restart: always
28 | networks:
29 | - edgex-network
30 | env_file:
31 | - common-non-security.env
32 | environment:
33 | SERVICE_HOST: edgex-device-usb-camera
34 | depends_on:
35 | - core-keeper
36 | - core-data
37 | - core-metadata
38 | - core-common-config-bootstrapper
39 | security_opt:
40 | - no-new-privileges:true
41 | user: root:root
42 | device_cgroup_rules:
43 | - 'c 81:* rw' # c:character device 81:device major number(81=webcam) *:device minor number rw:read/write
44 | volumes:
45 | # use host timezone
46 | - /etc/localtime:/etc/localtime:ro
47 | - /dev:/dev
48 | - /run/udev:/run/udev:ro
49 |
--------------------------------------------------------------------------------
/compose-builder/add-asc-metrics-influxdb.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | app-metrics-influxdb:
18 | image: ${APP_SVC_REPOSITORY}/app-service-configurable${ARCH}:${APP_SERVICE_CONFIG_VERSION}
19 | command: "--registry ${CP_FLAGS}"
20 | ports:
21 | - 127.0.0.1:59707:59707/tcp
22 | container_name: edgex-app-metrics-influxdb
23 | hostname: edgex-app-metrics-influxdb
24 | env_file:
25 | - common-non-security.env
26 | environment:
27 | SERVICE_HOST: edgex-app-metrics-influxdb
28 | EDGEX_PROFILE: metrics-influxdb
29 | depends_on:
30 | - core-keeper
31 | - core-metadata
32 | - core-common-config-bootstrapper
33 | read_only: true
34 | restart: always
35 | networks:
36 | - edgex-network
37 | security_opt:
38 | - no-new-privileges:true
39 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
40 | volumes:
41 | # use host timezone
42 | - /etc/localtime:/etc/localtime:ro
43 |
--------------------------------------------------------------------------------
/compose-builder/common-sec-stage-gate.env:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2021 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 | #
16 | # This file contains the common security bootstrapper related environment overrides used many Edgex services.
17 | #
18 |
19 | STAGEGATE_WAITFOR_TIMEOUT=60s
20 | STAGEGATE_BOOTSTRAPPER_HOST=edgex-security-bootstrapper
21 | STAGEGATE_BOOTSTRAPPER_STARTPORT=54321
22 | STAGEGATE_SECRETSTORESETUP_HOST=edgex-security-secretstore-setup
23 | STAGEGATE_SECRETSTORESETUP_TOKENS_READYPORT=54322
24 | # this is intended to be the same as Database.Host/.Port for other services
25 | STAGEGATE_DATABASE_HOST=${DATABASE_HOST}
26 | STAGEGATE_DATABASE_PORT=${DATABASE_PORT}
27 | STAGEGATE_DATABASE_READYPORT=${DATABASE_PORT}
28 | # this is intended to be the same as Registry.Host/.Port for other services
29 | STAGEGATE_REGISTRY_HOST=edgex-core-keeper
30 | STAGEGATE_REGISTRY_PORT=59890
31 | STAGEGATE_REGISTRY_READYPORT=54324
32 | STAGEGATE_READY_TORUNPORT=54329
33 | PROXY_SETUP_HOST=edgex-security-proxy-setup
34 | STAGEGATE_PROXYSETUP_READYPORT=54325
35 |
--------------------------------------------------------------------------------
/compose-builder/add-secure-mqtt-broker.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2022 Intel Corporation.
3 | # * Copyright 2024 IOTech Ltd
4 | # *
5 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 | # * in compliance with the License. You may obtain a copy of the License at
7 | # *
8 | # * http://www.apache.org/licenses/LICENSE-2.0
9 | # *
10 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
11 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 | # * or implied. See the License for the specific language governing permissions and limitations under
13 | # * the License.
14 | # *
15 | # *******************************************************************************/
16 |
17 | volumes:
18 | mqtt:
19 |
20 | services:
21 | mqtt-broker:
22 | command: "/usr/sbin/mosquitto ${MQTT_VERBOSE} -c /mosquitto/config/mosquitto.conf"
23 | entrypoint: ["/edgex-init/messagebus_wait_install.sh"]
24 | env_file:
25 | - common-security.env
26 | - common-sec-stage-gate.env
27 | environment:
28 | BROKER_TYPE: mosquitto
29 | CONF_DIR: /edgex-init/bootstrap-mosquitto/res
30 | ENTRYPOINT: /docker-entrypoint.sh /usr/sbin/mosquitto ${MQTT_VERBOSE} -c /mosquitto/config/mosquitto.conf
31 | volumes:
32 | - mqtt:/mosquitto
33 | - edgex-init:/edgex-init:ro
34 | - /tmp/edgex/secrets/security-bootstrapper-messagebus:/tmp/edgex/secrets/security-bootstrapper-messagebus:ro,z
35 | depends_on:
36 | - security-bootstrapper
37 | - security-secretstore-setup
38 | # root privilege required for bootstrapper's process
39 | user: root:root
40 |
--------------------------------------------------------------------------------
/compose-builder/add-device-coap.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-coap:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-coap${ARCH}:${DEVICE_COAP_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59988:59988"
22 | container_name: edgex-device-coap
23 | hostname: edgex-device-coap
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | env_file:
29 | - common-non-security.env
30 | environment:
31 | SERVICE_HOST: edgex-device-coap
32 | DATABASE_HOST: ${DATABASE_HOST}
33 | MESSAGEBUS_HOST: ${MESSAGEBUS_HOST}
34 | CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
35 | depends_on:
36 | - core-keeper
37 | - core-data
38 | - core-metadata
39 | - core-common-config-bootstrapper
40 | security_opt:
41 | - no-new-privileges:true
42 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
43 | volumes:
44 | # use host timezone
45 | - /etc/localtime:/etc/localtime:ro
46 |
--------------------------------------------------------------------------------
/compose-builder/add-app-rfid-llrp-inventory.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | volumes:
17 | llrp-inventory-data:
18 |
19 | services:
20 | app-rfid-llrp-inventory:
21 | image: ${APP_SVC_REPOSITORY}/app-rfid-llrp-inventory${ARCH}:${APP_LLRP_VERSION}
22 | command: "--registry ${CP_FLAGS}"
23 | ports:
24 | - 127.0.0.1:59711:59711/tcp
25 | container_name: edgex-app-rfid-llrp-inventory
26 | hostname: edgex-app-rfid-llrp-inventory
27 | env_file:
28 | - common-non-security.env
29 | environment:
30 | SERVICE_HOST: edgex-app-rfid-llrp-inventory
31 | depends_on:
32 | - core-keeper
33 | - core-data
34 | - core-metadata
35 | - core-common-config-bootstrapper
36 | read_only: true
37 | restart: always
38 | networks:
39 | - edgex-network
40 | security_opt:
41 | - no-new-privileges:true
42 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
43 | volumes:
44 | # use host timezone
45 | - /etc/localtime:/etc/localtime:ro
46 | - llrp-inventory-data:/cache
47 |
48 |
--------------------------------------------------------------------------------
/compose-builder/gen_runtime_token_config_compose_ext.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # /*******************************************************************************
3 | # * Copyright 2022 Intel Corporation.
4 | # *
5 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 | # * in compliance with the License. You may obtain a copy of the License at
7 | # *
8 | # * http://www.apache.org/licenses/LICENSE-2.0
9 | # *
10 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
11 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 | # * or implied. See the License for the specific language governing permissions and limitations under
13 | # * the License.
14 | # *******************************************************************************/
15 |
16 | # This shell script is used to generate the extension of docker-compose yaml file in secure mode dynamically
17 | # for adding configuration of runtime token provider
18 |
19 | num_of_args=$#
20 | # the positional input arguments are <"service_name">
21 |
22 | service_name=''
23 | if [ "$num_of_args" -ne 1 ]; then
24 | echo "ERROR: Invalid number of arguments, should be at 1: required"
25 | exit 1
26 | fi
27 |
28 | service_name=$1
29 |
30 | DEFAULT_GEN_EXT_DIR="gen_ext_compose"
31 | GEN_EXT_DIR="${GEN_EXT_DIR:-$DEFAULT_GEN_EXT_DIR}"
32 | mkdir -p "$GEN_EXT_DIR"
33 |
34 | ADD_RUNTIME_TOKEN_CONFIG_FILE_TEMPLATE="add-runtime-token-config-template.yml"
35 |
36 | SERVICE_EXT_COMPOSE_PATH=./"$GEN_EXT_DIR"/add-"$service_name"-runtime-token-config.yml
37 | sed 's/${SERVICE_NAME}:/'"$service_name"':/g' "$ADD_RUNTIME_TOKEN_CONFIG_FILE_TEMPLATE" > "$SERVICE_EXT_COMPOSE_PATH"
38 |
39 | # return the extension compose file path
40 | echo "$SERVICE_EXT_COMPOSE_PATH"
41 |
--------------------------------------------------------------------------------
/compose-builder/add-device-can.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2025 IOTech Ltd
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | device-can:
18 | image: ${DEVICE_SVC_REPOSITORY}/device-can${ARCH}:${DEVICE_CAN_VERSION}
19 | command: "${CP_FLAGS} --registry"
20 | ports:
21 | - "127.0.0.1:59999:59999"
22 | container_name: edgex-device-can
23 | hostname: edgex-device-can
24 | read_only: true
25 | restart: always
26 | networks:
27 | - edgex-network
28 | env_file:
29 | - common-non-security.env
30 | environment:
31 | SERVICE_HOST: edgex-device-can
32 | DATABASE_HOST: ${DATABASE_HOST}
33 | MESSAGEBUS_HOST: ${MESSAGEBUS_HOST}
34 | CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
35 | CLIENTS_CORE_DATA_HOST: edgex-core-data
36 | depends_on:
37 | - core-keeper
38 | - core-data
39 | - core-metadata
40 | - core-common-config-bootstrapper
41 | security_opt:
42 | - no-new-privileges:true
43 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
44 | volumes:
45 | # use host timezone
46 | - /etc/localtime:/etc/localtime:ro
47 |
--------------------------------------------------------------------------------
/compose-builder/add-secure-mqtt-messagebus.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2022 Intel Corporation.
3 | # * Copyright 2024 IOTech Ltd
4 | # *
5 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 | # * in compliance with the License. You may obtain a copy of the License at
7 | # *
8 | # * http://www.apache.org/licenses/LICENSE-2.0
9 | # *
10 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
11 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 | # * or implied. See the License for the specific language governing permissions and limitations under
13 | # * the License.
14 | # *
15 | # *******************************************************************************/
16 |
17 | volumes:
18 | kuiper-sources:
19 | kuiper-connections:
20 |
21 | services:
22 | security-secretstore-setup:
23 | environment:
24 | SECUREMESSAGEBUS_TYPE: mqtt
25 | volumes:
26 | - kuiper-sources:/tmp/kuiper
27 | - kuiper-connections:/tmp/kuiper-connections
28 |
29 | core-common-config-bootstrapper:
30 | environment:
31 | ALL_SERVICES_MESSAGEBUS_AUTHMODE: usernamepassword
32 | ALL_SERVICES_MESSAGEBUS_SECRETNAME: message-bus
33 |
34 | rules-engine:
35 | entrypoint: [ "/edgex-init/kuiper_wait_install.sh" ]
36 | env_file:
37 | - common-sec-stage-gate.env
38 | environment:
39 | EDGEX__DEFAULT__CONNECTIONSELECTOR: mqttmsgbus
40 | volumes:
41 | - kuiper-sources:/kuiper/etc/sources
42 | - kuiper-connections:/kuiper/etc/connections
43 | - edgex-init:/edgex-init:ro
44 | depends_on:
45 | - security-bootstrapper
46 | - security-secretstore-setup
47 | - database
48 |
49 |
--------------------------------------------------------------------------------
/compose-builder/add-asc-sample.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | app-sample:
18 | image: ${APP_SVC_REPOSITORY}/app-service-configurable${ARCH}:${APP_SERVICE_CONFIG_VERSION}
19 | command: "--registry ${CP_FLAGS}"
20 | ports:
21 | - 127.0.0.1:59700:59700/tcp
22 | container_name: edgex-app-sample
23 | hostname: edgex-app-sample
24 | env_file:
25 | - common-non-security.env
26 | environment:
27 | EDGEX_PROFILE: sample
28 | SERVICE_HOST: edgex-app-sample
29 | CLIENTS_CORE_DATA_HOST: edgex-core-data
30 | CLIENTS_CORE_COMMAND_HOST: edgex-core-command
31 | CLIENTS_SUPPORT-NOTIFICATIONS_HOST: edgex-support-notifications
32 | depends_on:
33 | - core-keeper
34 | - core-metadata
35 | - core-common-config-bootstrapper
36 | read_only: true
37 | restart: always
38 | networks:
39 | - edgex-network
40 | security_opt:
41 | - no-new-privileges:true
42 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
43 | volumes:
44 | # use host timezone
45 | - /etc/localtime:/etc/localtime:ro
46 |
--------------------------------------------------------------------------------
/compose-builder/add-device-bacnet-ip.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # * Copyright 2023 IOTech.
4 | # *
5 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 | # * in compliance with the License. You may obtain a copy of the License at
7 | # *
8 | # * http://www.apache.org/licenses/LICENSE-2.0
9 | # *
10 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
11 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 | # * or implied. See the License for the specific language governing permissions and limitations under
13 | # * the License.
14 | # *
15 | # *******************************************************************************/
16 |
17 | services:
18 | device-bacnet-ip:
19 | image: ${DEVICE_SVC_REPOSITORY}/device-bacnet${ARCH}:${DEVICE_BACNET_VERSION}
20 | command: "${CP_FLAGS} --registry"
21 | ports:
22 | - "127.0.0.1:59980:59980"
23 | container_name: edgex-device-bacnet-ip
24 | hostname: edgex-device-bacnet-ip
25 | networks:
26 | - edgex-network
27 | env_file:
28 | - common-non-security.env
29 | environment:
30 | SERVICE_HOST: edgex-device-bacnet-ip
31 | DATABASE_HOST: ${DATABASE_HOST}
32 | MESSAGEBUS_HOST: ${MESSAGEBUS_HOST}
33 | CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
34 | depends_on:
35 | - core-keeper
36 | - core-data
37 | - core-metadata
38 | - core-common-config-bootstrapper
39 | security_opt:
40 | - no-new-privileges:true
41 | read_only: true
42 | restart: always
43 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
44 | volumes:
45 | # use host timezone
46 | - /etc/localtime:/etc/localtime:ro
47 |
--------------------------------------------------------------------------------
/compose-builder/add-asc-http-export.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | app-http-export:
18 | image: ${APP_SVC_REPOSITORY}/app-service-configurable${ARCH}:${APP_SERVICE_CONFIG_VERSION}
19 | command: "--registry ${CP_FLAGS}"
20 | ports:
21 | - 127.0.0.1:59704:59704/tcp
22 | container_name: edgex-app-http-export
23 | hostname: edgex-app-http-export
24 | env_file:
25 | - common-non-security.env
26 | environment:
27 | SERVICE_HOST: edgex-app-http-export
28 | EDGEX_PROFILE: http-export
29 | WRITABLE_PIPELINE_FUNCTIONS_HTTPEXPORT_PARAMETERS_URL: "http://EXPORT_HOST_PLACE_HOLDER:7770"
30 | WRITABLE_LOGLEVEL: INFO # allows scripts to find and change with sed
31 | depends_on:
32 | - core-keeper
33 | - core-data
34 | - core-metadata
35 | - core-common-config-bootstrapper
36 | read_only: true
37 | restart: always
38 | networks:
39 | - edgex-network
40 | security_opt:
41 | - no-new-privileges:true
42 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
43 | volumes:
44 | # use host timezone
45 | - /etc/localtime:/etc/localtime:ro
46 |
--------------------------------------------------------------------------------
/compose-builder/add-secure-postgres.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024-2025 IOTech Ltd
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | volumes:
17 | postgres-data:
18 |
19 | services:
20 | database:
21 | entrypoint: ["/edgex-init/postgres_wait_install.sh"]
22 | image: postgres:${POSTGRES_VERSION}
23 | ports:
24 | - "127.0.0.1:5432:5432"
25 | container_name: edgex-postgres
26 | hostname: edgex-postgres
27 | read_only: true
28 | restart: always
29 | networks:
30 | - edgex-network
31 | env_file:
32 | - common-security.env
33 | - common-sec-stage-gate.env
34 | environment:
35 | DATABASECONFIG_PATH: /tmp/postgres-init-scripts
36 | DATABASECONFIG_NAME: create-users.sh
37 | POSTGRES_DB: edgex_db
38 | security_opt:
39 | - no-new-privileges:true
40 | tmpfs:
41 | - /run
42 | - /tmp
43 | volumes:
44 | - /etc/localtime:/etc/localtime:ro
45 | - edgex-init:/edgex-init:ro
46 | - db-data:/var/lib/postgresql/data
47 | - /tmp/edgex/secrets/security-bootstrapper-postgres:/tmp/edgex/secrets/security-bootstrapper-postgres:ro,z
48 | depends_on:
49 | - security-bootstrapper
50 | - security-secretstore-setup
51 |
--------------------------------------------------------------------------------
/compose-builder/add-device-bacnet-mstp.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # * Copyright 2023 IOTech.
4 | # *
5 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 | # * in compliance with the License. You may obtain a copy of the License at
7 | # *
8 | # * http://www.apache.org/licenses/LICENSE-2.0
9 | # *
10 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
11 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 | # * or implied. See the License for the specific language governing permissions and limitations under
13 | # * the License.
14 | # *
15 | # *******************************************************************************/
16 |
17 | services:
18 | device-bacnet-mstp:
19 | image: ${DEVICE_SVC_REPOSITORY}/device-bacnet${ARCH}:${DEVICE_BACNET_VERSION}
20 | command: "${CP_FLAGS} --registry"
21 | entrypoint:
22 | - /device-bacnet-mstp/device-bacnet-c
23 | ports:
24 | - "127.0.0.1:59981:59980"
25 | container_name: edgex-device-bacnet-mstp
26 | hostname: edgex-device-bacnet-mstp
27 | networks:
28 | - edgex-network
29 | env_file:
30 | - common-non-security.env
31 | environment:
32 | SERVICE_HOST: edgex-device-bacnet-mstp
33 | DATABASE_HOST: ${DATABASE_HOST}
34 | MESSAGEBUS_HOST: ${MESSAGEBUS_HOST}
35 | CLIENTS_CORE_METADATA_HOST: edgex-core-metadata
36 | depends_on:
37 | - core-keeper
38 | - core-data
39 | - core-metadata
40 | - core-common-config-bootstrapper
41 | security_opt:
42 | - no-new-privileges:true
43 | read_only: true
44 | restart: always
45 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
46 | volumes:
47 | # use host timezone
48 | - /etc/localtime:/etc/localtime:ro
49 |
--------------------------------------------------------------------------------
/compose-builder/get-api-gateway-token.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # /*******************************************************************************
3 | # * Copyright 2022-2023 Intel Corporation.
4 | # *
5 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 | # * in compliance with the License. You may obtain a copy of the License at
7 | # *
8 | # * http://www.apache.org/licenses/LICENSE-2.0
9 | # *
10 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
11 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 | # * or implied. See the License for the specific language governing permissions and limitations under
13 | # * the License.
14 | # *******************************************************************************/
15 |
16 | username=edgexuser
17 |
18 | # Start afresh by deleting old user
19 | docker exec -ti edgex-security-proxy-setup ./secrets-config proxy deluser --user "${username}" --useRootToken > /dev/null
20 |
21 | # Create new user, log in, and exchange for JWT
22 | password=$(docker exec -ti edgex-security-proxy-setup ./secrets-config proxy adduser --user "${username}" --useRootToken | jq -r '.password')
23 | secret_store_token=$(curl -ks "http://localhost:8200/v1/auth/userpass/login/${username}" -d "{\"password\":\"${password}\"}" | jq -r '.auth.client_token')
24 | id_token=$(curl -ks -H "Authorization: Bearer ${secret_store_token}" "http://localhost:8200/v1/identity/oidc/token/${username}" | jq -r '.data.token')
25 |
26 | # Check that we got sane output from the previous commands before coughing up the token
27 | introspect_result=$(curl -ks -H "Authorization: Bearer ${secret_store_token}" "http://localhost:8200/v1/identity/oidc/introspect" -d "{\"token\":\"${id_token}\"}" | jq -r '.active')
28 | if [ "${introspect_result}" = "true" ]; then
29 | echo "${id_token}"
30 | exit 0
31 | else
32 | echo "ERROR" >&2
33 | exit 1
34 | fi
35 |
--------------------------------------------------------------------------------
/compose-builder/add-asc-mqtt-export.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | app-mqtt-export:
18 | image: ${APP_SVC_REPOSITORY}/app-service-configurable${ARCH}:${APP_SERVICE_CONFIG_VERSION}
19 | command: "--registry ${CP_FLAGS}"
20 | ports:
21 | - 127.0.0.1:59703:59703/tcp
22 | container_name: edgex-app-mqtt-export
23 | hostname: edgex-app-mqtt-export
24 | env_file:
25 | - common-non-security.env
26 | environment:
27 | SERVICE_HOST: edgex-app-mqtt-export
28 | EDGEX_PROFILE: mqtt-export
29 | WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_BROKERADDRESS: MQTT_BROKER_ADDRESS_PLACE_HOLDER
30 | WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_TOPIC: edgex-events
31 | WRITABLE_LOGLEVEL: INFO # allows scripts to find and change with sed
32 | depends_on:
33 | - core-keeper
34 | - core-metadata
35 | - core-common-config-bootstrapper
36 | read_only: true
37 | restart: always
38 | networks:
39 | - edgex-network
40 | security_opt:
41 | - no-new-privileges:true
42 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
43 | volumes:
44 | # use host timezone
45 | - /etc/localtime:/etc/localtime:ro
46 |
--------------------------------------------------------------------------------
/compose-builder/add-asc-external-mqtt-trigger.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | app-external-mqtt-trigger:
18 | image: ${APP_SVC_REPOSITORY}/app-service-configurable${ARCH}:${APP_SERVICE_CONFIG_VERSION}
19 | command: "--registry ${CP_FLAGS}"
20 | ports:
21 | - 127.0.0.1:59706:59706/tcp
22 | container_name: edgex-app-external-mqtt-trigger
23 | hostname: edgex-app-external-mqtt-trigger
24 | env_file:
25 | - common-non-security.env
26 | environment:
27 | SERVICE_HOST: edgex-app-external-mqtt-trigger
28 | EDGEX_PROFILE: external-mqtt-trigger
29 | TRIGGER_EXTERNALMQTT_URL: MQTT_BROKER_ADDRESS_PLACE_HOLDER
30 | WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_BROKERADDRESS: MQTT_BROKER_ADDRESS_PLACE_HOLDER
31 | WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_TOPIC: edgex-export
32 | WRITABLE_LOGLEVEL: INFO
33 | depends_on:
34 | - core-keeper
35 | - core-data
36 | - core-metadata
37 | - core-common-config-bootstrapper
38 | read_only: true
39 | restart: always
40 | networks:
41 | - edgex-network
42 | security_opt:
43 | - no-new-privileges:true
44 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
45 | volumes:
46 | # use host timezone
47 | - /etc/localtime:/etc/localtime:ro
48 |
--------------------------------------------------------------------------------
/compose-builder/add-taf-app-services-secure.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | security-secretstore-setup:
18 | environment:
19 | EDGEX_ADD_SECRETSTORE_TOKENS: ${TOKEN_LIST}
20 | EDGEX_ADD_KNOWN_SECRETS: ${KNOWN_SECRETS_LIST}
21 |
22 | app-functional-tests:
23 | entrypoint: ["/edgex-init/ready_to_run_wait_install.sh"]
24 | command: "/app-service-configurable --registry ${CP_FLAGS}"
25 | env_file:
26 | - common-security.env
27 | - common-sec-stage-gate.env
28 | volumes:
29 | - edgex-init:/edgex-init:ro
30 | - /tmp/edgex/secrets/app-functional-tests:/tmp/edgex/secrets/app-functional-tests:ro,z
31 | depends_on:
32 | - security-bootstrapper
33 | - core-metadata
34 | - core-common-config-bootstrapper
35 |
36 | app-scalability-test-mqtt-export:
37 | entrypoint: ["/edgex-init/ready_to_run_wait_install.sh"]
38 | command: "/app-service-configurable --registry ${CP_FLAGS}"
39 | env_file:
40 | - common-security.env
41 | - common-sec-stage-gate.env
42 | volumes:
43 | - edgex-init:/edgex-init:ro
44 | - /tmp/edgex/secrets/app-scalability-test-mqtt-export:/tmp/edgex/secrets/app-scalability-test-mqtt-export:ro,z
45 | depends_on:
46 | - security-bootstrapper
47 | - core-metadata
48 | - core-common-config-bootstrapper
49 |
50 |
--------------------------------------------------------------------------------
/Jenkinsfile:
--------------------------------------------------------------------------------
1 | pipeline {
2 | agent {
3 | label 'centos7-docker-4c-2g'
4 | }
5 | options {
6 | timestamps()
7 | quietPeriod(5) // wait a few seconds before starting to aggregate builds...??
8 | durabilityHint 'PERFORMANCE_OPTIMIZED'
9 | timeout(360)
10 | }
11 | parameters {
12 | booleanParam defaultValue: false, description: 'Archive 3rd Party Images', name: 'ARCHIVE'
13 | }
14 | triggers {
15 | issueCommentTrigger('.*^recheck$.*')
16 | }
17 | stages {
18 | stage('Smoke Tests') {
19 | when {
20 | expression { !edgex.isReleaseStream() && !params.ARCHIVE }
21 | }
22 | steps {
23 | build job: '/edgexfoundry/edgex-taf-pipelines/smoke-test', parameters: [string(name: 'SHA1', value: env.GIT_COMMIT), string(name: 'TEST_ARCH', value: 'All'), string(name: 'WITH_SECURITY', value: 'All')]
24 | }
25 | }
26 |
27 | stage('Archive 3rd Party Images') {
28 | when {
29 | expression { params.ARCHIVE }
30 | }
31 | steps {
32 | edgeXDockerLogin(settingsFile: 'ci-build-images-settings')
33 | bootstrapBuildX()
34 |
35 | script {
36 | def images = sh(script: "grep image docker-compose.yml | grep -v edgexfoundry | awk '{print \$2}'", returnStdout: true).trim()
37 | images.split('\n').each { image ->
38 | sh "echo -e 'FROM ${image}' | docker buildx build --platform 'linux/amd64,linux/arm64' -t nexus3.edgexfoundry.org:10002/archive/${image} --push -"
39 | }
40 | }
41 | }
42 | }
43 | }
44 | post {
45 | always {
46 | edgeXInfraPublish()
47 | }
48 | cleanup {
49 | cleanWs()
50 | }
51 | }
52 | }
53 |
54 | def bootstrapBuildX() {
55 | sh 'docker buildx ls'
56 | sh 'docker buildx create --name edgex-builder --platform linux/amd64,linux/arm64 --use'
57 | sh 'docker buildx inspect --bootstrap'
58 | sh 'docker buildx ls'
59 | }
--------------------------------------------------------------------------------
/compose-builder/add-nats-messagebus.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2022 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | volumes:
17 | nats-data:
18 |
19 | services:
20 | nats:
21 | image: nats:${NATS_VERSION}
22 | command: [ "-js" ]
23 | ports:
24 | - "127.0.0.1:4222:4222"
25 | container_name: edgex-nats-server
26 | hostname: edgex-nats-server
27 | read_only: true
28 | restart: always
29 | networks:
30 | - edgex-network
31 | security_opt:
32 | - no-new-privileges:true
33 | user: "root:root"
34 | volumes:
35 | - nats-data:/tmp/nats
36 |
37 | core-common-config-bootstrapper:
38 | environment:
39 | ALL_SERVICES_MESSAGEBUS_TYPE: nats-jetstream
40 | ALL_SERVICES_MESSAGEBUS_PROTOCOL: tcp
41 | ALL_SERVICES_MESSAGEBUS_HOST: edgex-nats-server
42 | ALL_SERVICES_MESSAGEBUS_PORT: "4222"
43 | ALL_SERVICES_MESSAGEBUS_AUTHMODE: none
44 |
45 | rules-engine:
46 | environment:
47 | CONNECTION__EDGEX__NATSMSGBUS__PORT: 4222
48 | CONNECTION__EDGEX__NATSMSGBUS__PROTOCOL: tcp
49 | CONNECTION__EDGEX__NATSMSGBUS__SERVER: edgex-nats-server
50 | CONNECTION__EDGEX__NATSMSGBUS__TYPE: nats-jetstream
51 | CONNECTION__EDGEX__NATSMSGBUS__OPTIONAL__CLIENTID: kuiper-rules-engine
52 | EDGEX__DEFAULT__PORT: 4222
53 | EDGEX__DEFAULT__PROTOCOL: tcp
54 | EDGEX__DEFAULT__SERVER: edgex-nats-server
55 | EDGEX__DEFAULT__TYPE: nats-jetstream
56 | EDGEX__DEFAULT__TOPIC: edgex/rules-events
57 | EDGEX__DEFAULT__OPTIONAL__CLIENTID: kuiper-rules-engine
58 | depends_on:
59 | - nats
60 |
--------------------------------------------------------------------------------
/compose-builder/.env:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2022 Intel
3 | # * Copyright 2024 IOTech Ltd
4 | # *
5 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 | # * in compliance with the License. You may obtain a copy of the License at
7 | # *
8 | # * http://www.apache.org/licenses/LICENSE-2.0
9 | # *
10 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
11 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 | # * or implied. See the License for the specific language governing permissions and limitations under
13 | # * the License.
14 | # *
15 | # *******************************************************************************/
16 | #
17 | # This file contains the registry and image versions variables referenced in compose files.
18 | # Docker compose implicitly use the ".env" file, if it exists, so you will not see it referenced in the compose files.
19 | # It is referenced in the Makefile so that it can also use these settings.
20 | #
21 |
22 | RELEASE_FOLDER=../
23 | CORE_EDGEX_REPOSITORY=nexus3.edgexfoundry.org:10004
24 | APP_SVC_REPOSITORY=nexus3.edgexfoundry.org:10004
25 | DEVICE_SVC_REPOSITORY=nexus3.edgexfoundry.org:10004
26 | UI_REPOSITORY=nexus3.edgexfoundry.org:10004
27 | CORE_EDGEX_VERSION=latest
28 | APP_SERVICE_CONFIG_VERSION=latest
29 | APP_LLRP_VERSION=latest
30 | APP_RECORD_REPLAY_VERSION=latest
31 | EDGEX_UI_VERSION=latest
32 | DEVICE_BACNET_VERSION=latest
33 | DEVICE_MODBUS_VERSION=latest
34 | DEVICE_MQTT_VERSION=latest
35 | DEVICE_REST_VERSION=latest
36 | DEVICE_SNMP_VERSION=latest
37 | DEVICE_VIRTUAL_VERSION=latest
38 | DEVICE_LLRP_VERSION=latest
39 | DEVICE_COAP_VERSION=latest
40 | DEVICE_GPIO_VERSION=latest
41 | DEVICE_UART_VERSION=latest
42 | DEVICE_ONVIFCAM_VERSION=latest
43 | DEVICE_USBCAM_VERSION=latest
44 | DEVICE_S7_VERSION=latest
45 | DEVICE_OPCUA_VERSION=latest
46 | DEVICE_CAN_VERSION=latest
47 |
48 | BAO_VERSION=2.4
49 | POSTGRES_VERSION=18.1-alpine
50 | KUIPER_VERSION=2.3-alpine
51 | MOSQUITTO_VERSION=2.0
52 | NANOMQ_VERSION=0.24
53 | NATS_VERSION=2.12-alpine
54 | NGINX_VERSION=1.29-alpine-slim
55 | EDGEX_USER=2002
56 | EDGEX_GROUP=2001
57 |
58 | CP_FLAGS='-cp=keeper.http://edgex-core-keeper:59890'
59 | DATABASE_HOST=edgex-postgres
60 | DATABASE_PORT=5432
61 | MESSAGEBUS_HOST=edgex-mqtt-broker
62 | MESSAGEBUS_SECRETNAME=message-bus
63 | MESSAGEBUS_AUTHMODE=usernamepassword
64 | MESSAGEBUS_PORT=1883
65 | MESSAGEBUS_PROTOCOL=tcp
66 | MESSAGEBUS_TYPE=mqtt
67 |
--------------------------------------------------------------------------------
/compose-builder/upload-api-gateway-cert.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # /*******************************************************************************
3 | # * Copyright 2022 Intel Corporation.
4 | # *
5 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
6 | # * in compliance with the License. You may obtain a copy of the License at
7 | # *
8 | # * http://www.apache.org/licenses/LICENSE-2.0
9 | # *
10 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
11 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 | # * or implied. See the License for the specific language governing permissions and limitations under
13 | # * the License.
14 | # *******************************************************************************/
15 |
16 |
17 | # usage function for uploading tls cert:
18 | usage()
19 | {
20 | echo "Usage: CERT_INPUT_FILE= KEY_INPUT_FILE= ./upload-api-gateway-cert.sh"
21 | echo "\tBoth CERT_INPUT_FILE and KEY_INPUT_FILE are required."
22 | exit 1
23 | }
24 |
25 | # DEV and ARCH are set in environment prior to calling script
26 | # example: DEV=-dev ARCH=-arm64 ./upload-api-gateway-cert.sh
27 |
28 | # versions are loaded from .env file
29 | . ./.env
30 |
31 | if [ "x$DEV" = "x-dev" ]; then
32 | export CORE_EDGEX_REPOSITORY=edgexfoundry
33 | export CORE_EDGEX_VERSION=0.0.0-dev
34 | fi
35 |
36 | # required input sanity checks
37 | if [ "$CERT_INPUT_FILE" = "" ]; then
38 | echo "Missing env parameter: CERT_INPUT_FILE"
39 | usage
40 | fi
41 | if [ "$KEY_INPUT_FILE" = "" ]; then
42 | echo "Missing env parameter: KEY_INPUT_FILE"
43 | usage
44 | fi
45 |
46 | # staging the input files into temporary files
47 | STAGING="staging-cert"
48 | rm -rf ${STAGING}
49 | mkdir -p ${STAGING}
50 |
51 | cp ${CERT_INPUT_FILE} ${STAGING}
52 | cp ${KEY_INPUT_FILE} ${STAGING}
53 |
54 | CERT_FILE_NAME=$(basename ${CERT_INPUT_FILE})
55 | KEY_FILE_NAME=$(basename ${KEY_INPUT_FILE})
56 |
57 | echo "Uploading API Gateway TLS certificate with certificate file: ${CERT_FILE_NAME}, key file: ${KEY_FILE_NAME}"
58 | docker run --rm -it --network edgex_edgex-network --entrypoint "" -v ${PWD}/${STAGING}:/${STAGING} -v edgex_nginx-tls:/etc/ssl/nginx \
59 | ${CORE_EDGEX_REPOSITORY}/security-proxy-setup${ARCH}:${CORE_EDGEX_VERSION} \
60 | /edgex/secrets-config proxy tls --inCert /${STAGING}/${CERT_FILE_NAME} \
61 | --inKey /${STAGING}/${KEY_FILE_NAME}
62 |
63 | docker exec edgex-nginx nginx -s reload
64 |
65 | if [ $? = 0 ]; then
66 | echo "API Gateway TLS certificate uploaded"
67 | else
68 | echo "Failed to upload API Gateway TLS certificate"
69 | fi
70 |
71 | rm -rf ${STAGING}
72 |
--------------------------------------------------------------------------------
/compose-builder/add-taf-app-services.yml:
--------------------------------------------------------------------------------
1 | # /*******************************************************************************
2 | # * Copyright 2024 Intel Corporation.
3 | # *
4 | # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 | # * in compliance with the License. You may obtain a copy of the License at
6 | # *
7 | # * http://www.apache.org/licenses/LICENSE-2.0
8 | # *
9 | # * Unless required by applicable law or agreed to in writing, software distributed under the License
10 | # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 | # * or implied. See the License for the specific language governing permissions and limitations under
12 | # * the License.
13 | # *
14 | # *******************************************************************************/
15 |
16 | services:
17 | app-functional-tests:
18 | image: ${APP_SVC_REPOSITORY}/app-service-configurable${ARCH}:${APP_SERVICE_CONFIG_VERSION}
19 | command: "--registry ${CP_FLAGS}"
20 | ports:
21 | - 59705:59705/tcp
22 | container_name: edgex-app-functional-tests
23 | hostname: edgex-app-functional-tests
24 | env_file:
25 | - common-non-security.env
26 | environment:
27 | EDGEX_PROFILE: functional-tests
28 | SERVICE_HOST: edgex-app-functional-tests
29 | depends_on:
30 | - core-keeper
31 | - core-metadata
32 | - core-common-config-bootstrapper
33 | read_only: true
34 | networks:
35 | - edgex-network
36 | security_opt:
37 | - no-new-privileges:true
38 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
39 | volumes:
40 | # use host timezone
41 | - /etc/localtime:/etc/localtime:ro
42 |
43 | app-scalability-test-mqtt-export:
44 | image: ${APP_SVC_REPOSITORY}/app-service-configurable${ARCH}:${APP_SERVICE_CONFIG_VERSION}
45 | command: "--registry ${CP_FLAGS}"
46 | ports:
47 | - "59710:59703" #Exposing as different port to avoid conflict with other MQTT export instance
48 | container_name: edgex-app-scalability-test-mqtt-export
49 | hostname: edgex-app-scalability-test-mqtt-export
50 | env_file:
51 | - common-non-security.env
52 | environment:
53 | EDGEX_PROFILE: mqtt-export
54 | EDGEX_SERVICE_KEY: app-scalability-test-mqtt-export
55 | SERVICE_HOST: edgex-app-scalability-test-mqtt-export
56 | WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_CLIENTID: app-scalability-test-mqtt-export
57 | WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_BROKERADDRESS: MQTT_BROKER_ADDRESS_PLACE_HOLDER
58 | WRITABLE_PIPELINE_FUNCTIONS_MQTTEXPORT_PARAMETERS_TOPIC: edgex-events
59 |
60 | MESSAGEBUS_OPTIONAL_CLIENTID: app-scalability-test-mqtt-export
61 | WRITABLE_LOGLEVEL: DEBUG
62 | depends_on:
63 | - core-keeper
64 | - core-metadata
65 | - core-common-config-bootstrapper
66 | read_only: true
67 | networks:
68 | - edgex-network
69 | security_opt:
70 | - no-new-privileges:true
71 | user: "${EDGEX_USER}:${EDGEX_GROUP}"
72 | volumes:
73 | # use host timezone
74 | - /etc/localtime:/etc/localtime:ro
75 |
--------------------------------------------------------------------------------
/.github/Contributing.md:
--------------------------------------------------------------------------------
1 | ## Commit Message Guidelines
2 |
3 | We have very precise rules over how our git commit messages can be formatted. This leads to **more readable messages** that are easy to follow when looking through the **project history**. For full contribution guidelines visit
4 | the [Contributors Guide](https://wiki.edgexfoundry.org/display/FA/Committing+Code+Guidelines#CommittingCodeGuidelines-Commits) on the EdgeX Wiki
5 |
6 | ### Commit Message Format
7 | Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**:
8 |
9 | ```
10 | ():
11 |
12 |
13 |
14 |