{"id":19030448,"url":"https://github.com/sorrir/yocto-pipeline","last_synced_at":"2026-05-02T17:30:19.613Z","repository":{"id":226955877,"uuid":"418529223","full_name":"sorrir/yocto-pipeline","owner":"sorrir","description":"A description for an example process on how to create a custom Yocto image with kubernetes and mender","archived":false,"fork":false,"pushed_at":"2021-10-18T14:10:03.000Z","size":6,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-02T03:44:51.027Z","etag":null,"topics":["example","iot","k3s","mender","yocto"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sorrir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-10-18T14:07:08.000Z","updated_at":"2024-08-20T04:11:50.000Z","dependencies_parsed_at":"2024-03-10T20:25:16.083Z","dependency_job_id":"0c837909-053a-480d-85e9-5e0b5b939cd6","html_url":"https://github.com/sorrir/yocto-pipeline","commit_stats":null,"previous_names":["sorrir/yocto-pipeline"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorrir%2Fyocto-pipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorrir%2Fyocto-pipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorrir%2Fyocto-pipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sorrir%2Fyocto-pipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sorrir","download_url":"https://codeload.github.com/sorrir/yocto-pipeline/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240079638,"owners_count":19744725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example","iot","k3s","mender","yocto"],"created_at":"2024-11-08T21:17:59.837Z","updated_at":"2026-05-02T17:30:19.541Z","avatar_url":"https://github.com/sorrir.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yocto Pipline\n\nThis repository briefly describes to process of building platform specific Yocto based images for the [sorrir](https://sorrir.io/) IoT testbed. All images are based on Yocto Warrior\n\n## Overview\n\n* Yocto builds take place in a CI/CD system (GitLab Pipelines)\n* Custom layers are imported for use-case specific needs\n* Mender is used to deploy and update them\n* k3s is used as a kubernetes container orchestrator\n\n### Yocto\n\nThis folder contains a Dockerfile used to build a Yocto build environment. Later on, this is used by a build runner in GitLab, but could be easily applied to GitHub Actions or any other CI/CD build tool.\n\nWithin the Dockerfile, the following steps are executed:\n\n1. Install the Yocto Build environment and dependencies based on [the official documentation](https://www.yoctoproject.org/docs/1.8/yocto-project-qs/yocto-project-qs.html#ubuntu)\n2. Google [Repo](https://gerrit.googlesource.com/git-repo/) is installed since Mender makes heavy use of it\n3. A unprivileged user is created and configured that later runs the actual build\n\n### Image example\n\nThis folder contains an example on how to build a Raspberry Pi image for our testbed.\n\nHereby the following process is executed:\n\n1. Prepare the working directory\n2. Download the appropriate mender base configuration\n3. Download our custom layers\n4. Source the build environment\n5. Configure the layers with some debug output\n6. Build the image\n7. Pass the built images to the next stage to upload it to a running mender instance\n\n### Mender\n\nThis folder contains a Mender deployment based on their [initial release](https://mender.io/blog/official-helm-chart-for-mender-2-5). This deployment makes use of [kustomize](https://github.com/kubernetes-sigs/kustomize)\n\nThe following process is executed:\n\n* Manually run `helm repo add mender https://charts.mender.io`\n* Manually run `kustomize build ./mender/mender --enable-helm . | kubectl apply -f -`\n* Minio is installed\n* MongoDB is installed\n* Mender is installed\n\nAfter a first login to the mender webinterface you can generate the necessarry credentials used in the second pipeline step of our \"Image example\" above.\n\n## Deployment\n\nBased on this example, you can now create your initial deployment by duming the CI artifact `sdcard` image to your device. Any subsequent update can be automatically deployed using mender.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsorrir%2Fyocto-pipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsorrir%2Fyocto-pipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsorrir%2Fyocto-pipeline/lists"}