diff options
| author | Patrick Vacek <patrickvacek@gmail.com> | 2019-03-21 15:28:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-21 15:28:55 +0100 |
| commit | d39d8b167797243fcf067c6faa6b4220d697c71c (patch) | |
| tree | d4aca54f1e8ff8e2a3409c2df2506f1f17152d3e /recipes-sota | |
| parent | 1e569e4def74e8b161833c4874888a7e514b67b1 (diff) | |
| parent | e1867d7a7bd52d79fa3d051bb7b16f50934b88e6 (diff) | |
| download | meta-updater-d39d8b167797243fcf067c6faa6b4220d697c71c.tar.gz | |
Merge pull request #507 from advancedtelematic/feat/OTA-2142/aktualizr-resource-control
aktualizr resource control
Diffstat (limited to 'recipes-sota')
11 files changed, 50 insertions, 2 deletions
diff --git a/recipes-sota/aktualizr/aktualizr-auto-prov-creds.bb b/recipes-sota/aktualizr/aktualizr-auto-prov-creds.bb index 0628a61..6b2dd27 100644 --- a/recipes-sota/aktualizr/aktualizr-auto-prov-creds.bb +++ b/recipes-sota/aktualizr/aktualizr-auto-prov-creds.bb | |||
| @@ -3,6 +3,8 @@ SECTION = "base" | |||
| 3 | LICENSE = "MPL-2.0" | 3 | LICENSE = "MPL-2.0" |
| 4 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 4 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 5 | 5 | ||
| 6 | inherit allarch | ||
| 7 | |||
| 6 | DEPENDS = "aktualizr-native zip-native" | 8 | DEPENDS = "aktualizr-native zip-native" |
| 7 | ALLOW_EMPTY_${PN} = "1" | 9 | ALLOW_EMPTY_${PN} = "1" |
| 8 | 10 | ||
diff --git a/recipes-sota/aktualizr/aktualizr-auto-prov.bb b/recipes-sota/aktualizr/aktualizr-auto-prov.bb index 308f552..4b68491 100644 --- a/recipes-sota/aktualizr/aktualizr-auto-prov.bb +++ b/recipes-sota/aktualizr/aktualizr-auto-prov.bb | |||
| @@ -5,6 +5,8 @@ SECTION = "base" | |||
| 5 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
| 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 7 | 7 | ||
| 8 | inherit allarch | ||
| 9 | |||
| 8 | DEPENDS = "aktualizr-native zip-native" | 10 | DEPENDS = "aktualizr-native zip-native" |
| 9 | RDEPENDS_${PN}_append = "${@' aktualizr-auto-prov-creds' if d.getVar('SOTA_DEPLOY_CREDENTIALS') == '1' else ''}" | 11 | RDEPENDS_${PN}_append = "${@' aktualizr-auto-prov-creds' if d.getVar('SOTA_DEPLOY_CREDENTIALS') == '1' else ''}" |
| 10 | PV = "1.0" | 12 | PV = "1.0" |
diff --git a/recipes-sota/aktualizr/aktualizr-ca-implicit-prov-creds.bb b/recipes-sota/aktualizr/aktualizr-ca-implicit-prov-creds.bb index b9bb1f6..da17d77 100644 --- a/recipes-sota/aktualizr/aktualizr-ca-implicit-prov-creds.bb +++ b/recipes-sota/aktualizr/aktualizr-ca-implicit-prov-creds.bb | |||
| @@ -3,6 +3,8 @@ SECTION = "base" | |||
| 3 | LICENSE = "MPL-2.0" | 3 | LICENSE = "MPL-2.0" |
| 4 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 4 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 5 | 5 | ||
| 6 | inherit allarch | ||
| 7 | |||
| 6 | # WARNING: it is NOT a production solution. The secure way to provision devices | 8 | # WARNING: it is NOT a production solution. The secure way to provision devices |
| 7 | # is to create certificate request directly on the device (either with HSM/TPM | 9 | # is to create certificate request directly on the device (either with HSM/TPM |
| 8 | # or with software) and then sign it with a CA stored on a disconnected machine. | 10 | # or with software) and then sign it with a CA stored on a disconnected machine. |
diff --git a/recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb b/recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb index a932475..414cb5e 100644 --- a/recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb +++ b/recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb | |||
| @@ -6,6 +6,8 @@ SECTION = "base" | |||
| 6 | LICENSE = "MPL-2.0" | 6 | LICENSE = "MPL-2.0" |
| 7 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 7 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 8 | 8 | ||
| 9 | inherit allarch | ||
| 10 | |||
| 9 | DEPENDS = "aktualizr aktualizr-native openssl-native" | 11 | DEPENDS = "aktualizr aktualizr-native openssl-native" |
| 10 | RDEPENDS_${PN}_append = "${@' aktualizr-ca-implicit-prov-creds' if d.getVar('SOTA_DEPLOY_CREDENTIALS') == '1' else ''}" | 12 | RDEPENDS_${PN}_append = "${@' aktualizr-ca-implicit-prov-creds' if d.getVar('SOTA_DEPLOY_CREDENTIALS') == '1' else ''}" |
| 11 | 13 | ||
diff --git a/recipes-sota/aktualizr/aktualizr-hsm-prov.bb b/recipes-sota/aktualizr/aktualizr-hsm-prov.bb index 27aba0f..77c6720 100644 --- a/recipes-sota/aktualizr/aktualizr-hsm-prov.bb +++ b/recipes-sota/aktualizr/aktualizr-hsm-prov.bb | |||
| @@ -5,6 +5,8 @@ SECTION = "base" | |||
| 5 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
| 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 7 | 7 | ||
| 8 | inherit allarch | ||
| 9 | |||
| 8 | DEPENDS = "aktualizr aktualizr-native" | 10 | DEPENDS = "aktualizr aktualizr-native" |
| 9 | RDEPENDS_${PN}_append = "${@' aktualizr-ca-implicit-prov-creds softhsm-testtoken' if d.getVar('SOTA_DEPLOY_CREDENTIALS') == '1' else ''}" | 11 | RDEPENDS_${PN}_append = "${@' aktualizr-ca-implicit-prov-creds softhsm-testtoken' if d.getVar('SOTA_DEPLOY_CREDENTIALS') == '1' else ''}" |
| 10 | 12 | ||
diff --git a/recipes-sota/aktualizr/aktualizr-uboot-env-rollback.bb b/recipes-sota/aktualizr/aktualizr-uboot-env-rollback.bb index 305b5e5..d962876 100644 --- a/recipes-sota/aktualizr/aktualizr-uboot-env-rollback.bb +++ b/recipes-sota/aktualizr/aktualizr-uboot-env-rollback.bb | |||
| @@ -3,12 +3,14 @@ HOMEPAGE = "https://github.com/advancedtelematic/aktualizr" | |||
| 3 | SECTION = "base" | 3 | SECTION = "base" |
| 4 | LICENSE = "MPL-2.0" | 4 | LICENSE = "MPL-2.0" |
| 5 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 5 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 6 | |||
| 7 | inherit allarch | ||
| 8 | |||
| 6 | DEPENDS = "aktualizr-native" | 9 | DEPENDS = "aktualizr-native" |
| 7 | RDEPENDS_${PN} = "aktualizr" | 10 | RDEPENDS_${PN} = "aktualizr" |
| 8 | 11 | ||
| 9 | SRC_URI = "" | 12 | SRC_URI = "" |
| 10 | 13 | ||
| 11 | |||
| 12 | do_install() { | 14 | do_install() { |
| 13 | install -m 0700 -d ${D}${libdir}/sota/conf.d | 15 | install -m 0700 -d ${D}${libdir}/sota/conf.d |
| 14 | install -m 0644 ${STAGING_DIR_NATIVE}${libdir}/sota/sota_uboot_env.toml ${D}${libdir}/sota/conf.d/30-rollback.toml | 16 | install -m 0644 ${STAGING_DIR_NATIVE}${libdir}/sota/sota_uboot_env.toml ${D}${libdir}/sota/conf.d/30-rollback.toml |
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index 49c4e5e..f2f62b5 100755 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb | |||
| @@ -25,6 +25,7 @@ SRC_URI = " \ | |||
| 25 | file://aktualizr-secondary.service \ | 25 | file://aktualizr-secondary.service \ |
| 26 | file://aktualizr-secondary.socket \ | 26 | file://aktualizr-secondary.socket \ |
| 27 | file://aktualizr-serialcan.service \ | 27 | file://aktualizr-serialcan.service \ |
| 28 | file://10-resource-control.conf \ | ||
| 28 | ${@ d.expand("https://ats-tuf-cli-releases.s3-eu-central-1.amazonaws.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0") if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''} \ | 29 | ${@ d.expand("https://ats-tuf-cli-releases.s3-eu-central-1.amazonaws.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0") if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''} \ |
| 29 | " | 30 | " |
| 30 | 31 | ||
| @@ -62,6 +63,15 @@ PACKAGECONFIG[load-tests] = "-DBUILD_LOAD_TESTS=ON,-DBUILD_LOAD_TESTS=OFF," | |||
| 62 | PACKAGECONFIG[serialcan] = ",,,slcand-start" | 63 | PACKAGECONFIG[serialcan] = ",,,slcand-start" |
| 63 | PACKAGECONFIG[ubootenv] = ",,,u-boot-fw-utils aktualizr-uboot-env-rollback" | 64 | PACKAGECONFIG[ubootenv] = ",,,u-boot-fw-utils aktualizr-uboot-env-rollback" |
| 64 | 65 | ||
| 66 | # can be overriden in configuration with `RESOURCE_xxx_pn-aktualizr` | ||
| 67 | # see `man systemd.resource-control` for details | ||
| 68 | |||
| 69 | # can be used to lower aktualizr priority, default is 100 | ||
| 70 | RESOURCE_CPU_WEIGHT = "100" | ||
| 71 | # will be slowed down when it reaches 'high', killed when it reaches 'max' | ||
| 72 | RESOURCE_MEMORY_HIGH = "100M" | ||
| 73 | RESOURCE_MEMORY_MAX = "80%" | ||
| 74 | |||
| 65 | do_compile_ptest() { | 75 | do_compile_ptest() { |
| 66 | cmake_runcmake_build --target build_tests | 76 | cmake_runcmake_build --target build_tests |
| 67 | } | 77 | } |
| @@ -118,6 +128,15 @@ do_install_append () { | |||
| 118 | install -m 0755 ${B}/src/sota_tools/garage-sign/bin/* ${D}${bindir} | 128 | install -m 0755 ${B}/src/sota_tools/garage-sign/bin/* ${D}${bindir} |
| 119 | install -m 0644 ${B}/src/sota_tools/garage-sign/lib/* ${D}${libdir} | 129 | install -m 0644 ${B}/src/sota_tools/garage-sign/lib/* ${D}${libdir} |
| 120 | fi | 130 | fi |
| 131 | |||
| 132 | # resource control | ||
| 133 | install -d ${D}/${systemd_system_unitdir}/aktualizr.service.d | ||
| 134 | install -m 0644 ${WORKDIR}/10-resource-control.conf ${D}/${systemd_system_unitdir}/aktualizr.service.d | ||
| 135 | |||
| 136 | sed -i -e 's|@CPU_WEIGHT@|${RESOURCE_CPU_WEIGHT}|g' \ | ||
| 137 | -e 's|@MEMORY_HIGH@|${RESOURCE_MEMORY_HIGH}|g' \ | ||
| 138 | -e 's|@MEMORY_MAX@|${RESOURCE_MEMORY_MAX}|g' \ | ||
| 139 | ${D}${systemd_system_unitdir}/aktualizr.service.d/10-resource-control.conf | ||
| 121 | } | 140 | } |
| 122 | 141 | ||
| 123 | PACKAGESPLITFUNCS_prepend = "split_hosttools_packages " | 142 | PACKAGESPLITFUNCS_prepend = "split_hosttools_packages " |
| @@ -132,7 +151,7 @@ python split_hosttools_packages () { | |||
| 132 | 151 | ||
| 133 | PACKAGES_DYNAMIC = "^aktualizr-.* ^garage-.*" | 152 | PACKAGES_DYNAMIC = "^aktualizr-.* ^garage-.*" |
| 134 | 153 | ||
| 135 | PACKAGES =+ "${PN}-examples ${PN}-secondary ${PN}-configs ${PN}-host-tools" | 154 | PACKAGES =+ "${PN}-resource-control ${PN}-examples ${PN}-secondary ${PN}-configs ${PN}-host-tools" |
| 136 | 155 | ||
| 137 | ALLOW_EMPTY_${PN}-host-tools = "1" | 156 | ALLOW_EMPTY_${PN}-host-tools = "1" |
| 138 | 157 | ||
| @@ -142,6 +161,10 @@ FILES_${PN} = " \ | |||
| 142 | ${systemd_unitdir}/system/aktualizr.service \ | 161 | ${systemd_unitdir}/system/aktualizr.service \ |
| 143 | " | 162 | " |
| 144 | 163 | ||
| 164 | FILES_${PN}-resource-control = " \ | ||
| 165 | ${systemd_system_unitdir}/aktualizr.service.d/10-resource-control.conf \ | ||
| 166 | " | ||
| 167 | |||
| 145 | FILES_${PN}-configs = " \ | 168 | FILES_${PN}-configs = " \ |
| 146 | ${sysconfdir}/sota/* \ | 169 | ${sysconfdir}/sota/* \ |
| 147 | ${libdir}/sota/* \ | 170 | ${libdir}/sota/* \ |
| @@ -157,6 +180,7 @@ FILES_${PN}-secondary = " \ | |||
| 157 | ${systemd_unitdir}/system/aktualizr-secondary.socket \ | 180 | ${systemd_unitdir}/system/aktualizr-secondary.socket \ |
| 158 | ${systemd_unitdir}/system/aktualizr-secondary.service \ | 181 | ${systemd_unitdir}/system/aktualizr-secondary.service \ |
| 159 | " | 182 | " |
| 183 | |||
| 160 | BBCLASSEXTEND = "native" | 184 | BBCLASSEXTEND = "native" |
| 161 | 185 | ||
| 162 | # vim:set ts=4 sw=4 sts=4 expandtab: | 186 | # vim:set ts=4 sw=4 sts=4 expandtab: |
diff --git a/recipes-sota/aktualizr/files/10-resource-control.conf b/recipes-sota/aktualizr/files/10-resource-control.conf new file mode 100644 index 0000000..254713c --- /dev/null +++ b/recipes-sota/aktualizr/files/10-resource-control.conf | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | [Service] | ||
| 2 | CPUAccounting=true | ||
| 3 | CPUWeight=@CPU_WEIGHT@ | ||
| 4 | MemoryAccounting=true | ||
| 5 | MemoryHigh=@MEMORY_HIGH@ | ||
| 6 | MemoryMax=@MEMORY_MAX@ | ||
diff --git a/recipes-sota/config/aktualizr-auto-reboot.bb b/recipes-sota/config/aktualizr-auto-reboot.bb index ad4d17c..f360d9e 100644 --- a/recipes-sota/config/aktualizr-auto-reboot.bb +++ b/recipes-sota/config/aktualizr-auto-reboot.bb | |||
| @@ -5,6 +5,8 @@ SECTION = "base" | |||
| 5 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
| 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 7 | 7 | ||
| 8 | inherit allarch | ||
| 9 | |||
| 8 | SRC_URI = " \ | 10 | SRC_URI = " \ |
| 9 | file://35-enable-auto-reboot.toml \ | 11 | file://35-enable-auto-reboot.toml \ |
| 10 | " | 12 | " |
diff --git a/recipes-sota/config/aktualizr-disable-send-ip.bb b/recipes-sota/config/aktualizr-disable-send-ip.bb index 8dd2647..07c12ca 100644 --- a/recipes-sota/config/aktualizr-disable-send-ip.bb +++ b/recipes-sota/config/aktualizr-disable-send-ip.bb | |||
| @@ -5,6 +5,8 @@ SECTION = "base" | |||
| 5 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
| 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 7 | 7 | ||
| 8 | inherit allarch | ||
| 9 | |||
| 8 | SRC_URI = " \ | 10 | SRC_URI = " \ |
| 9 | file://30-disable-send-ip.toml \ | 11 | file://30-disable-send-ip.toml \ |
| 10 | " | 12 | " |
diff --git a/recipes-sota/config/aktualizr-log-debug.bb b/recipes-sota/config/aktualizr-log-debug.bb index 098faf4..0c03786 100644 --- a/recipes-sota/config/aktualizr-log-debug.bb +++ b/recipes-sota/config/aktualizr-log-debug.bb | |||
| @@ -5,6 +5,8 @@ SECTION = "base" | |||
| 5 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
| 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" | 6 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" |
| 7 | 7 | ||
| 8 | inherit allarch | ||
| 9 | |||
| 8 | SRC_URI = " \ | 10 | SRC_URI = " \ |
| 9 | file://05-log-debug.toml \ | 11 | file://05-log-debug.toml \ |
| 10 | " | 12 | " |
