Skip to content

Commit

Permalink
[eclipse-kanto#75] Yocto recipe for Kanto AWS Connector
Browse files Browse the repository at this point in the history
---------

Signed-off-by: Kristiyan Gostev <[email protected]>
  • Loading branch information
k-gostev authored Nov 27, 2023
1 parent e9b00bc commit 77212e5
Show file tree
Hide file tree
Showing 5 changed files with 104 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ jobs:
bitbake-layers add-layer ../meta-openembedded/meta-filesystems
bitbake-layers add-layer ../meta-virtualization
bitbake-layers add-layer ../meta-kanto
- name: Build aws connector
run: |
source poky/oe-init-build-env build
bitbake aws-connector
- name: Build suite connector
run: |
source poky/oe-init-build-env build
Expand Down
9 changes: 9 additions & 0 deletions recipes-connectivity/aws-connector/aws-connector.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Common configuration variables to set the binaries and resources allocation directories for Eclipse Kanto AWS connector component
# The destination directory where the required configuration files for the proper connectivity establishment of the AWS connector will be placed
SC_CFG_DD ?= "${sysconfdir}"
# The destination directory where the generated service file will be placed
SC_SYSUNIT_DD ?= "${systemd_unitdir}/system"
# The destination directory where the aws connector binaries will be placed
SC_BIN_DD ?= "${bindir}"
# The destination directory where the aws connector logs will be placed
SC_LOG_DD ?= "${localstatedir}/log"
72 changes: 72 additions & 0 deletions recipes-connectivity/aws-connector/aws-connector_git.bb
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
DESCRIPTION = "Eclipse Kanto - AWS Connector"

LICENSE = "EPL-2.0 | Apache-2.0"
LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=54cd967551e55d39f55006d3344c22fc"

SRC_URI = "git://github.com/eclipse-kanto/aws-connector;protocol=https;branch=main \
file://config.json \
file://service.template \
"

SRCREV = "${AUTOREV}"

PV = "0.1.0-git${SRCPV}"

GO_IMPORT = "github.com/eclipse-kanto/aws-connector"
GO_INSTALL = "${GO_IMPORT}/cmd/aws-connector"

require aws-connector.inc

inherit go-mod
inherit systemd

SYSTEMD_AUTO_ENABLE = "enable"
SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','aws-connector.service','',d)}"

# workaround for network issue
do_compile[network] = "1"

FILES:${PN} += "${SC_SYSUNIT_DD}/aws-connector.service"
FILES:${PN} += "${SC_BIN_DD}/aws-connector"
# ensure all additional resources are properly packed in the resulting package if provided
FILES:${PN} += "${SC_CFG_DD}/aws-connector/config.json"
FILES:${PN} += "${SC_CFG_DD}/aws-connector/aws.crt"


RDEPENDS:${PN} += "mosquitto"

PROVIDES:${PN} += "kanto/aws-connector"
RPROVIDES:${PN} += "kanto/aws-connector"

do_install() {
install -d "${D}/${SC_BIN_DD}"

install -m 0755 "${GO_BUILD_BINDIR}/aws-connector" "${D}${SC_BIN_DD}/aws-connector"

if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -d ${D}${SC_SYSUNIT_DD}

# aws-connector
install -d ${D}${SC_CFG_DD}/aws-connector

# iothub.crt
install -m 0644 ${S}/src/${GO_IMPORT}/cmd/aws-connector/aws.crt ${D}${SC_CFG_DD}/aws-connector

# config.json
install -m 0644 ${WORKDIR}/config.json ${D}${SC_CFG_DD}/aws-connector

# service.template as service
install -m 0644 ${WORKDIR}/service.template ${D}${SC_SYSUNIT_DD}/aws-connector.service

# fill in the aws-connector systemd service template with the custom configs provided
sed -e 's,@SC_BIN_DD@,${SC_BIN_DD},g' \
-e 's,@SC_CFG_DD@,${SC_CFG_DD},g' \
-i ${D}${SC_SYSUNIT_DD}/aws-connector.service

# fill in the config.json template with the custom configs provided
sed -e 's,@SC_CFG_DD@,${SC_CFG_DD},g' \
-e 's,@SC_LOG_DD@,${SC_LOG_DD},g' \
-i ${D}${SC_CFG_DD}/aws-connector/config.json
fi
}
4 changes: 4 additions & 0 deletions recipes-connectivity/aws-connector/files/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"caCert": "@SC_CFG_DD@/aws-connector/aws.crt",
"logFile": "@SC_LOG_DD@/aws-connector/aws-connector.log"
}
15 changes: 15 additions & 0 deletions recipes-connectivity/aws-connector/files/service.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[Unit]
Description=Eclipse Kanto - AWS Connector
Documentation=https://eclipse.org/kanto/docs/
After=network.target mosquitto.service
Requires=network.target
Requires=mosquitto.service

[Service]
Type=simple
ExecStart=@SC_BIN_DD@/aws-connector -configFile @SC_CFG_DD@/aws-connector/config.json
Restart=always

[Install]
WantedBy=multi-user.target

0 comments on commit 77212e5

Please sign in to comment.