/
DirectorySecurity AdvisoriesPricing
Sign in
Directory
apisix-ingress-controller-iamguarded logo

apisix-ingress-controller-iamguarded

Last changed

Request a free trial

Contact our team to test out this image for free. Please also indicate any other images you would like to evaluate.

Tags
Overview
Comparison
Provenance
Specifications
SBOM
Vulnerabilities
Advisories

Chainguard Container for apisix-ingress-controller-iamguarded

Apache APISIX Ingress Controller for Kubernetes ingress management.

Chainguard Containers are regularly-updated, secure-by-default container images.

Download this Container Image

For those with access, this container image is available on cgr.dev:

docker pull cgr.dev/ORGANIZATION/apisix-ingress-controller-iamguarded:latest

Be sure to replace the ORGANIZATION placeholder with the name used for your organization's private repository within the Chainguard Registry.

Compatibility Notes

The apisix-ingress-controller-iamguarded image is based on the Apache APISIX Ingress Controller and provides the same functionality as the upstream project with the following differences:

  • This image follows IAMGuarded container standards for enterprise compatibility
  • The binary is located at /opt/iamguarded/apisix-ingress-controller/bin/apisix-ingress-controller instead of the default path
  • Configuration files are located under /opt/iamguarded/apisix-ingress-controller/conf/
  • The container runs as user ID 1001 (non-root) with group ID 0 (root group) following IAMGuarded standards
  • Includes enhanced security context and standardized directory permissions

These changes ensure enterprise-grade security compliance while maintaining full compatibility with the upstream Apache APISIX Ingress Controller functionality.

Prerequisites

To use this ingress controller, you need:

  • A running Kubernetes cluster
  • An Apache APISIX Gateway cluster
  • Appropriate RBAC permissions for the ingress controller

Getting Started

The APISIX Ingress Controller manages ingress traffic by configuring an APISIX Gateway cluster. Here's how to get started:

Basic Version Check

First, verify the image works correctly:

docker run --rm cgr.dev/ORGANIZATION/apisix-ingress-controller-iamguarded:latest version

Running with Kubernetes

The ingress controller typically runs as a deployment in Kubernetes. Create a basic configuration:

cat > apisix-ingress-controller.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: apisix-ingress-controller
  namespace: apisix-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app: apisix-ingress-controller
  template:
    metadata:
      labels:
        app: apisix-ingress-controller
    spec:
      serviceAccountName: apisix-ingress-controller
      containers:
      - name: apisix-ingress-controller
        image: cgr.dev/ORGANIZATION/apisix-ingress-controller-iamguarded:latest
        command:
        - /opt/iamguarded/apisix-ingress-controller/bin/apisix-ingress-controller
        args:
        - ingress
        - --default-apisix-cluster-base-url=http://apisix-gateway:9180/apisix/admin
        - --log-level=info
        env:
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        ports:
        - containerPort: 8080
          name: metrics
        - containerPort: 8443
          name: webhook
        securityContext:
          runAsUser: 1001
          runAsGroup: 0
          runAsNonRoot: true
EOF

Apply the configuration:

kubectl apply -f apisix-ingress-controller.yaml

Configuration

The APISIX Ingress Controller supports various configuration options through command-line arguments and environment variables.

Key Configuration Parameters

  • --default-apisix-cluster-base-url: URL to the APISIX admin API (required)
  • --log-level: Set logging verbosity (debug, info, warn, error)
  • --log-output: Log destination (stderr, stdout)
  • --namespace: Kubernetes namespace to watch for resources
  • --ingress-class: Ingress class name to handle

Environment Variables

The IAMGuarded image includes these pre-configured environment variables:

  • IAMGUARDED_APP_NAME: Set to "apisix-ingress-controller"
  • PATH: Includes /opt/iamguarded/apisix-ingress-controller/bin

Example Configuration with Custom Settings

docker run --rm \
  cgr.dev/ORGANIZATION/apisix-ingress-controller-iamguarded:latest \
  ingress \
  --default-apisix-cluster-base-url=http://apisix-gateway:9180/apisix/admin \
  --log-level=debug \
  --log-output=stderr \
  --namespace=default

Documentation and Resources

For more information about using Apache APISIX Ingress Controller:

  • Apache APISIX Ingress Controller GitHub Repository
  • Apache APISIX Gateway Documentation

What are Chainguard Containers?

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.

Need additional packages?

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.

Learn More

Refer to our Chainguard Containers documentation on Chainguard Academy. Chainguard also offers VMs and Librariescontact us for access.

Trademarks

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.

Licenses

Chainguard's container images contain software packages that are direct or transitive dependencies. The following licenses were found in the "latest" tag of this image:

  • Apache-2.0

  • LGPL-2.1-or-later

  • MIT

  • MPL-2.0

For a complete list of licenses, please refer to this Image's SBOM.

Software license agreement

Related images
apisix-ingress-controller logo
apisix-ingress-controller

Category
application

The trusted source for open source

Talk to an expert
© 2025 Chainguard. All Rights Reserved.
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsIntegrationsPricing