Skip to main content

ImageShift

Transparent Container Image Redirection for Kubernetes

Why ImageShift?

Zero Manifest Changes

Transparently redirect container images without modifying your existing Kubernetes manifests. Just label your namespace and ImageShift handles the rest.

Air-Gapped Ready

Perfect for disconnected environments. Mirror images to your internal registry and let ImageShift automatically redirect all pulls.

Flexible Mapping

Choose from registry-level swaps, exact image matches, or powerful regex patterns to handle any image redirection scenario.

Namespace Scoped

Control which namespaces are affected with simple labels. Enable or disable image swapping on a per-namespace basis.

Use Cases

Air-Gapped Environments

Redirect all image pulls to your internal registry in disconnected networks.

Multi-Region Deployments

Use region-specific registries to reduce latency and egress costs.

Image Mirroring

Implement transparent caching and mirroring strategies.

Development & Testing

Test with local registries without changing application manifests.

Quick Start

Get up and running in minutes with just a few commands.

# 1. Label your namespace
kubectl label namespace default imageshift.dev=enabled

# 2. Create an Imageshift resource
cat <<EOF | kubectl apply -f -
apiVersion: imageshift.dev/v1
kind: Imageshift
metadata:
name: imageshift
spec:
mappings:
swap:
- registry: docker.io
target: registry.internal.example.com/dockerhub
- registry: ghcr.io
target: registry.internal.example.com/ghcr
EOF

# 3. Deploy your workloads - images are automatically redirected!
kubectl run nginx --image=nginx:latest
# Image becomes: registry.internal.example.com/dockerhub/library/nginx:latest