Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.
Overview based on moodle-iamguarded
Minimalist Wolfi-based Moodle IAMGuarded image for online learning management.
Chainguard Containers are regularly-updated, secure-by-default container images.
For those with access, this container image is available on cgr.dev:
Be sure to replace the ORGANIZATION placeholder with the name used for your organization's private repository within the Chainguard Registry.
Moodle is an Apache and PHP application backed by a MariaDB (or PostgreSQL) database, deployed through its companion IAMGuarded Helm chart, which bundles a MariaDB subchart by default.
This image keeps the upstream IAMGuarded entrypoint and command (/opt/iamguarded/scripts/moodle/entrypoint.sh and run.sh) and the same /opt/iamguarded layout, so it is a drop-in replacement when deployed through that chart. There are three deliberate differences from the upstream image:
containerSecurityContext the chart applies (runAsUser: 1001, runAsGroup: 0, runAsNonRoot: true). Anything that assumed a writable root filesystem at runtime needs a mounted volume instead./usr/share/webapps/moodle is group writable, so first boot can write config.php and administrators can install plugins into the tree.htpasswd and the other apache2-utils tools are absent, so a vhost configuration that maintains its own basic-auth password file needs them added via Custom Assembly.PHP 8.4 is used, matching upstream's Moodle 5.2 line. Note that upstream does not currently publish a public image for that line, so there is no public counterpart to compare this image against directly.
cgr.dev)This section outlines the required configuration, optional features, and verification steps when deploying this image via the Helm chart. The chart provides security-minded defaults that are sensible but may not be production-ready for all use cases. Review the chart's values.yaml (run helm show values) for the full range of configuration options.
Access to the moodle-iamguarded image requires authentication to Chainguard’s private registry (cgr.dev). Ensure your cluster has appropriate image pull credentials configured before installing the chart.
For detailed instructions on configuring authentication and pull credentials, see:
How to Use Chainguard Helm Charts
When deploying this image via the Helm chart, the global.org value is required and specifies your Chainguard organization namespace in the registry:
This value determines which private repository the moodle-iamguarded image is pulled from.
By default, the Helm chart pulls the moodle-iamguarded image from cgr.dev using your configured organization. You may optionally override the image repository or pin to a specific digest.
Pinning to a digest is strongly recommended to prevent unexpected image updates:
When deployed via the Helm chart, this image can be configured with several optional components and customizations.
To use an internal registry mirror:
The Helm chart can deploy a Prometheus apache_exporter alongside this image to expose web server metrics:
Metrics are exposed on port 9117.
If your storage backend requires explicit permission adjustments, enable the volume permissions init container:
The Helm chart provisions the initial Moodle site and administrator account. You may provide credentials directly or reference an existing Kubernetes secret:
For production deployments, consider sourcing credentials from an existing secret:
By default the chart deploys a bundled MariaDB subchart. To use an external database instead, disable the subchart and configure the external connection:
After installation via the Helm chart, confirm the Moodle pod is running:
Retrieve the administrator password from the generated Kubernetes secret:
Port-forward the service and confirm the login page responds:
If metrics are enabled, verify Prometheus exposure:
Chainguard's free tier of Starter container images are built with Wolfi, our minimal Linux undistro.
All other Chainguard Containers are built with Chainguard OS, Chainguard's minimal Linux operating system designed to produce container images that meet the requirements of a more secure software supply chain.
The main features of Chainguard Containers include:
For cases where you need container images with shells and package managers to build or debug, most Chainguard Containers come paired with a development, or -dev, variant.
In all other cases, including Chainguard Containers tagged as :latest or with a specific version number, the container images include only an open-source application and its runtime dependencies. These minimal container images typically do not contain a shell or package manager.
Although the -dev container image variants have similar security features as their more minimal versions, they include additional software that is typically not necessary in production environments. We recommend using multi-stage builds to copy artifacts from the -dev variant into a more minimal production image.
To improve security, Chainguard Containers include only essential dependencies. Need more packages? Chainguard customers can use Custom Assembly to add packages, either through the Console, chainctl, or API.
To use Custom Assembly in the Chainguard Console: navigate to the image you'd like to customize in your Organization's list of images, and click on the Customize image button at the top of the page.
Refer to our Chainguard Containers documentation on Chainguard Academy. Chainguard also offers VMs and Libraries — contact us for access.
This software listing is packaged by Chainguard. The trademarks set forth in this offering are owned by their respective companies, and use of them does not imply any affiliation, sponsorship, or endorsement by such companies.
28.0.2
28.0
28
Helm charts contain references to Chainguard Container images. The following images are referenced in the chart: