This repository contains Helm Charts to deploy all the services for Edge Infrastructure Manager on a Kubernetes cluster offering the ability to:
- Onboard and provision Edge Nodes
- Review each node's capabilities
- Monitor the status of the nodes and their resource consumption
- Update and upgrade nodes via scheduled maintenance
- Delete and de-authorize nodes
- Scale Edge Nodes to 10.0000
It contains 4 umbrella charts, referencing the other existing charts in the repository.
- infra-core: contains the mandatory components of Infrastructure Manager, e.g., inventory.
- infra-managers: contains the Resource Managers (RMs) of Infrastructure Manager.
- infra-external: contains the RMs and any other components that interface/manage external infrastructure.
- infra-onboarding: contains RMs and related components to onboard/provision edge nodes.
It also contains test code for validating/linting helm charts.
Read more about Infrastructure Manager in the Edge Infrastructure Manager developer documentation for internals and software architecture.
See the Documentation to get started using Edge Infrastructure Manager.
Each umbrella chart has its own life cycle in the repository, independent of the others. It means that every umbrella chart can be updated independently from the others, and thus have its own release cycles.
For each umbrella chart, specific tags are created in the github repository to indentify their releases.
For instance, infra-core umbrella chart has its tags defined such as infra-core-2.3.0.
The following tools are required for this repo:
- helm
- shellcheck
- Python 3.8 or later
To define support branches, it is necessary to create one support branch for each umbrella chart.
For example, for infra-managers umbrella charts a support branch must be defined such as release-infra-manager-1.2.0.
In every pull request the helm versions of all charts in the repository are checked for updates.
And the umbrella charts have their versions checked by their own .chartver.yaml files.
The make test target ensures the charts versions are consistently linted and updated.
There are several convenience make targets to support developer activities. You can use help to see a list of makefile
targets. The following is a list of makefile targets that support developer activities:
helmbuildto build all helm chartshelmcleanto clean all helm chartshelmpushto push all helm chartshelmlintto lint all helm chartscleanto clean generated files for all helm chartsclean-<name>to clean generated files for a specific chartdepsto build the dependencies for all chartsdeps-<name>to build all the dependencies for a specific chartpackto build the helm package for all chartspack-<name>to build the helm package for a specific chartmdlintto run linting of this file.testto run the charts checks (license shellcheck helmlint mdlint)licenseto check licensing with the reuse toolshellcheckto check all shell scripts
To build all the umbrella charts run the command below.
It will build all the chart dependencies and pack each umbrella chart into a .tgz file.
make packAlmost all of Infrastructure Manager charts have their resources requests/limits set to:
# Sets requests/limits to support at least 100 edge nodes.
# Must be adjusted in case of higher load.
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "100m"
memory: "128Mi"As mentioned, it guarantees at least the support of Infrastructure Manager to have 100 edge nodes operational. With that, Infrastructure Manager footprints (limits) can be summarized as follows:
- infra-core - 4 components - 400m/512Mi
- infra-managers - 6 components - 600m/768Mi
- infra-external (if enabled) - 4 components - 400m/512Mi
- infra-onboarding (without tinkerbell) - 2 components - 200m/256Mi
Total: 1600m/2048Mi
Given each one of the 4 Tikerbell subcharts have resource requests of 10m/64Mi, it is safe to assume a lower bound requirement of Infrastructure Manager of 2 CPU cores and 3GB of memory.
From this folder you can deploy the whole of Infrastructure Manager with a few helm commands:
helm install -n orch-infra --set global.registry.name="registry-rs.edgeorchestration.intel.com/" \
--set import.credentials.enabled=false \
--set tenant-controller.managerArgs.disableCredentialsManagement=true \
--set inventory.postgresql.pod.registry.enabled=true \
infra-core ./infra-core
helm install -n orch-infra --set global.registry.name="registry-rs.edgeorchestration.intel.com/" \
--set loca-manager.serviceArgs.disableCredentialsManagement=true \
--set loca-metadata-manager.serviceArgs.disableCredentialsManagement=true \
--set import.loca-credentials.enabled=false \
infra-external ./infra-external
helm install -n orch-infra --set global.registry.name="registry-rs.edgeorchestration.intel.com/" \
infra-managers ./infra-managers
helm install -n orch-infra --set global.registry.name="registry-rs.edgeorchestration.intel.com/" \
--set onboarding-manager.managerArgs.disableCredentialsManagement=true \
--set import.dkam.enabled=false \
--set tinkerbell.pvc.enabled=true \
--set tinkerbell.pvc.storageSize=128Mi \
infra-onboarding ./infra-onboardingSee the documentation if you want to learn more about using Edge Orchestrator.
To clean all dependencies and generated helm packages run:
make cleanTo learn how to contribute to the project, see the contributor's guide.
To learn more about the project, its community, and governance, visit the Edge Orchestrator Community.
For support, start with Troubleshooting
Infrastructure Manager is licensed underApache 2.0.
Last Updated Date: April 7, 2025