Skip to content

Commit 170306a

Browse files
GrimmiMeloniclaude
andcommitted
docs: update local image support documentation to match implementation
Updates design documents and README to reflect the actual implemented behavior: README.md: - Fix supported images list (add collector, scanner-v4, stackrox-operator) - Remove non-existent images (scanner-v4-indexer, scanner-v4-matcher, stackrox-operator-index) - Organize images by category (main vs operator) Design documents: - Add status notes indicating implementation is complete with variations - Update image inventory to match actual code (9 images total) - Document key implementation differences from original design: * Both branding orgs are checked (not just ROX_PRODUCT_BRANDING) * Only quay.io paths used (localhost paths removed) * CSV patching added for operator deployments - Reference relevant commits for implementation evolution Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 9d8a54b commit 170306a

3 files changed

Lines changed: 44 additions & 19 deletions

File tree

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,15 @@ When deploying to a kind cluster, roxie:
110110

111111
### Supported Images
112112

113+
Main images (7):
113114
- main, central-db
114115
- scanner, scanner-db
115-
- scanner-v4-db, scanner-v4-indexer, scanner-v4-matcher
116+
- scanner-v4, scanner-v4-db
117+
- collector
118+
119+
Operator images (2):
120+
- stackrox-operator
116121
- stackrox-operator-bundle
117-
- stackrox-operator-index
118122

119123
### Environment Variables
120124

docs/plans/2026-01-20-local-image-support-design.md

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
# Local Image Support for Kind Clusters
22

33
**Date**: 2026-01-20
4-
**Status**: Approved
4+
**Status**: Implemented (with variations from original design)
55
**Author**: Design session with user
66

7+
> **Note**: This document reflects the initial design. The final implementation differs in several areas:
8+
> - Image detection checks both branding organizations (not just ROX_PRODUCT_BRANDING)
9+
> - Localhost paths were removed (only quay.io paths used)
10+
> - Added CSV patching for operator deployments
11+
> - Image list includes collector, scanner-v4, and stackrox-operator
12+
> - See git history (commits bc376ad through 9d8a54b) for implementation evolution
13+
714
## Overview
815

916
Enable roxie to automatically use locally-built container images when deploying to kind clusters, eliminating the need to push images to quay.io during local development.
@@ -63,34 +70,42 @@ This upload/download cycle is slow and unnecessary for local kind cluster testin
6370

6471
### Image Inventory and Detection
6572

66-
**Images Required for Deployment**:
73+
**Images Required for Deployment** (as implemented):
6774

68-
Operator deployment path:
69-
- `stackrox-operator-bundle:v<operatorTag>`
70-
- `stackrox-operator-index:v<operatorTag>`
75+
Main images (7):
7176
- `main:<tag>`
7277
- `scanner:<tag>`
7378
- `scanner-db:<tag>`
79+
- `scanner-v4:<tag>`
7480
- `scanner-v4-db:<tag>`
75-
- `scanner-v4-indexer:<tag>`
76-
- `scanner-v4-matcher:<tag>`
7781
- `central-db:<tag>`
82+
- `collector:<tag>`
83+
84+
Operator images (2):
85+
- `stackrox-operator:<operatorTag>`
86+
- `stackrox-operator-bundle:v<operatorTag>`
87+
88+
Total: 9 images
7889

79-
Helm deployment path:
80-
- Same main application images (extracted from rendered Helm templates)
90+
Note: Original design included scanner-v4-indexer, scanner-v4-matcher, and stackrox-operator-index, but these were removed/consolidated during implementation.
8191

82-
**Detection Algorithm**:
92+
**Detection Algorithm** (as implemented):
8393

8494
For each required image:
8595
```
86-
Function: checkLocalImage(imageName, tag, branding)
87-
1. Determine branding org: "rhacs-eng" or "stackrox-io" based on ROX_PRODUCT_BRANDING
88-
2. Check: podman image exists localhost/stackrox/<imageName>:<tag>
89-
3. If not found, check: podman image exists quay.io/<branding-org>/<imageName>:<tag>
90-
4. Return: imageRef if found, empty if not found
96+
Function: checkLocalImage(imageName, tag)
97+
1. Determine primary org based on ROX_PRODUCT_BRANDING (defaults to "rhacs-eng")
98+
2. Determine fallback org (the other branding org)
99+
3. Check: podman image exists quay.io/<primary-org>/<imageName>:<tag>
100+
4. If not found, check: podman image exists quay.io/<fallback-org>/<imageName>:<tag>
101+
5. Return: (imageRef, true, nil) if found, ("", false, nil) if not found
91102
```
92103

93-
**Implementation**: Use `podman image exists <ref>` command (exit code 0 = exists, 1 = doesn't exist)
104+
**Key Implementation Differences**:
105+
- ✅ Checks BOTH branding orgs to handle images that only exist in one org (e.g., collector)
106+
- ✅ Only uses quay.io paths (localhost paths removed in commit bc376ad)
107+
- ✅ Returns idiomatic (value, bool, error) tuple
108+
- **Implementation**: Use `podman image exists <ref>` command (exit code 0 = exists, 1 = doesn't exist)
94109

95110
### Kind Cluster Detection
96111

docs/plans/2026-01-20-local-image-support.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# Local Image Support for Kind Clusters - Implementation Plan
22

3-
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
3+
> **Status**: COMPLETED (January 2026)
4+
>
5+
> **Note**: This was the original implementation plan. The feature has been fully implemented with some variations from the original plan (see commits bc376ad through 9d8a54b). Key differences:
6+
> - Localhost paths were removed (only quay.io paths used)
7+
> - Both branding orgs are checked for each image
8+
> - CSV patching was added for operator deployments
9+
> - Some images were consolidated/removed during implementation
410
511
**Goal:** Enable roxie to automatically detect and load locally-built container images from podman into kind clusters, eliminating the need to push to quay.io during local development.
612

0 commit comments

Comments
 (0)