Real-World Air-Gap Deployment Patterns
How to apply Lab 02 patterns to actual customer air-gapped deployments.
When You'll Encounter Air-Gapped Environments
Common Scenarios
Defense Contractors
- Classified systems (IL4, IL5, IL6)
- Secure facilities with no external connectivity
- STIG-compliant deployments
- FedRAMP requirements
Government Agencies
- Federal systems requiring air-gap
- State/local government secure systems
- Law enforcement systems
- Intelligence community systems
Financial Institutions
- High-security trading systems
- Compliance requirements (PCI-DSS, etc.)
- Internal-only networks
- Regulatory isolation
Healthcare Organizations
- HIPAA-compliant systems
- Protected health information (PHI)
- Research facilities
- Clinical trial systems
Industrial Control Systems
- SCADA systems
- Critical infrastructure
- Manufacturing control systems
- Power grid systems
Key Differences from Lab
Registry Choice
Lab: Simple Docker registry
Production: Enterprise registry (Harbor, Artifactory, Nexus)
Why:
- Vulnerability scanning
- Image replication
- RBAC and access control
- Audit logging
- Web UI for management
Transfer Methods
Lab: USB drive or local simulation
Production: Customer-approved transfer procedures
Common Methods:
- USB Drives - Encrypted, approved media
- Secure Network - Isolated network segment
- Physical Media - DVD, Blu-ray, tape
- Approved File Transfer - Customer's secure transfer system
Security Requirements
Lab: Basic network policies
Production: Comprehensive security controls
Additional Requirements:
- Image scanning and approval
- Signed images (cosign, Notary)
- Change management approval
- Security review process
- Audit logging
- Compliance documentation
Update Procedures
Lab: Simple update process
Production: Formal change management
Production Process:
- Request update approval
- Security review
- Prepare update bundle
- Test in staging air-gap
- Get deployment approval
- Schedule maintenance window
- Deploy updates
- Verify and document
Adapting Lab Patterns
Step 1: Discovery
Questions to Ask:
Registry:
- What registry do you use? (Harbor, Artifactory, etc.)
- Where is it located? (on-prem, separate air-gap)
- How do you manage images?
- What's your image approval process?
Transfer:
- What's your approved transfer method?
- Are there size limits?
- What's the approval process?
- How long does transfer take?
Network:
- How is air-gap enforced? (physical, network policies, both)
- Are there any allowed external connections?
- What's the network architecture?
- Are there proxy requirements?
Updates:
- How often do you update?
- What's your change management process?
- Do you have staging air-gap?
- What's your rollback procedure?
Security:
- Do you scan images? (what tool?)
- Do you sign images?
- What's your approval process?
- What compliance requirements?
Step 2: Preparation
Identify All Components:
# Your application images
kubectl get deployments --all-namespaces -o jsonpath='{range .items[*]}{.spec.template.spec.containers[*].image}{"\n"}{end}' | sort -u
# Helm chart dependencies
helm dependency list
# Init containers
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.spec.initContainers[*].image}{"\n"}{end}' | sort -u
# Sidecar containers
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}' | sort -uCreate Complete Image List:
Document every image with:
- Image name and tag
- Purpose (what uses it)
- Size
- Source registry
- Version
Step 3: Image Preparation
For Production:
Scan Images (before saving)
bash# Using Trivy trivy image quay.io/argoproj/workflow-controller:v3.5.5 # Review vulnerabilities # Update if critical issues foundSign Images (optional but recommended)
bash# Using cosign cosign sign quay.io/argoproj/workflow-controller:v3.5.5Save Images
bashdocker save image:tag -o image.tarDocument Everything
- Image versions
- Scan results
- Signatures
- Dependencies
Step 4: Chart Preparation
For Production:
Review Charts
bashhelm show chart chart-name helm show values chart-nameCustomize for Customer
- Update image references
- Configure for customer environment
- Document all changes
Package Charts
bashhelm package .Document Versions
- Chart versions
- Values used
- Customizations
Step 5: Bundle Creation
For Production:
Include Everything
- All images
- All charts
- Deployment scripts
- Documentation
- Checksums
- Version manifest
Create Documentation
- Deployment instructions
- Configuration guide
- Troubleshooting guide
- Rollback procedures
Verify Bundle
- Check all files present
- Verify checksums
- Test in staging
Step 6: Transfer
Follow Customer Procedures:
- Get Approval - Follow customer's approval process
- Prepare Media - Use approved transfer method
- Document Transfer - Record what was transferred, when, by whom
- Verify Integrity - Check checksums on receiving end
Step 7: Deployment
In Customer Environment:
- Verify Bundle - Check checksums, verify contents
- Load Images - Load into customer's registry
- Deploy Application - Install using customer's procedures
- Verify Deployment - Test functionality
- Document - Record versions, configurations, issues
Production Considerations
Registry Management
Harbor Setup:
- Create projects for organization
- Configure replication if multiple sites
- Set up vulnerability scanning
- Configure RBAC
- Enable audit logging
Image Organization:
harbor.example.com/
├── platform/ # Platform components
│ ├── argo-workflows
│ └── ingress-nginx
├── applications/ # Application images
└── base/ # Base imagesSecurity Scanning
Before Deployment:
- Scan all images
- Review vulnerabilities
- Update if critical issues
- Document scan results
- Get approval
Tools:
- Trivy
- Clair
- Harbor built-in scanning
- Twistlock
- Aqua Security
Change Management
Documentation Required:
- Change request
- Impact analysis
- Test results
- Rollback plan
- Approval signatures
Process:
- Submit change request
- Security review
- Test in staging
- Get approvals
- Schedule deployment
- Execute deployment
- Verify and document
Update Planning
Regular Updates:
- Schedule quarterly updates
- Plan for security patches
- Coordinate with customer
- Test thoroughly
Emergency Updates:
- Fast-track critical security
- Minimal change set
- Quick testing
- Rapid deployment
Customer Engagement Checklist
Pre-Engagement
- [ ] Understand customer's air-gap requirements
- [ ] Identify registry type and location
- [ ] Understand transfer procedures
- [ ] Review security requirements
- [ ] Understand change management process
Preparation
- [ ] Identify all required images
- [ ] Scan images for vulnerabilities
- [ ] Package all charts
- [ ] Create deployment bundle
- [ ] Document everything
- [ ] Test in staging air-gap
Deployment
- [ ] Follow customer transfer procedures
- [ ] Verify bundle integrity
- [ ] Load images into customer registry
- [ ] Deploy using customer procedures
- [ ] Verify deployment
- [ ] Document versions and configuration
Post-Deployment
- [ ] Provide runbooks
- [ ] Document update procedures
- [ ] Hand off to customer team
- [ ] Schedule follow-up
Lessons Learned
Common Mistakes
- Missing Images - Forgetting dependencies
- Version Mismatches - Charts and images don't match
- Incomplete Testing - Not testing in staging first
- Poor Documentation - Not documenting versions/configs
- Transfer Issues - Bundle too large, transfer fails
Best Practices
- Start Early - Begin preparation well in advance
- Test Thoroughly - Test in staging air-gap first
- Document Everything - Versions, configs, procedures
- Plan Rollback - Always have rollback plan
- Communicate - Keep customer informed throughout
Templates and Checklists
Image Manifest Template
# image-manifest.yaml
bundle-version: "2026-01-05"
prepared-by: "Your Name"
prepared-date: "2026-01-05"
images:
- name: quay.io/argoproj/workflow-controller
tag: v3.5.5
size: 245MB
purpose: "Argo Workflows controller"
scanned: true
vulnerabilities: 0
source: "Quay.io"Deployment Checklist
- [ ] Bundle transferred and verified
- [ ] Images loaded into registry
- [ ] Charts packaged and ready
- [ ] Values files configured
- [ ] Network policies reviewed
- [ ] Security scans passed
- [ ] Change request approved
- [ ] Rollback plan ready
- [ ] Customer team notified
- [ ] Maintenance window scheduled
Next Steps
After understanding these patterns:
- Practice with Lab 02
- Review customer requirements
- Adapt patterns to customer environment
- Test in customer staging
- Execute production deployment
Remember: Every customer is different. Adapt these patterns to their specific requirements and procedures.