You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **⚠️ DEPRECATION NOTICE**: This directory is transitioning away from manual image verification tools as SecureBuild now automatically handles SLSA attestations, SBOM generation, and image signing for staging and production builds. See migration notes below.
3
+
This directory contains certificates and verification tools used for validating the authenticity and integrity of Replicated SDK container images.
4
4
5
-
This directory contains legacy certificates and verification tools that were used for validating the authenticity and integrity of Replicated SDK container images.
6
-
7
-
## 🔄 Migration to SecureBuild
8
-
9
-
**As of September 2025**, the Replicated SDK build pipeline uses [SecureBuild](https://securebuild.com) for staging and production image builds, which provides:
10
-
11
-
-**Automatic SLSA Attestation**: Built-in provenance generation without manual workflows
12
-
-**Automatic SBOM Generation**: Comprehensive software bill of materials with CVE remediation data
13
-
-**Automatic Image Signing**: Cryptographic signatures managed by SecureBuild
14
-
-**Multi-Registry Publishing**: Images published to Docker Hub, Replicated registries, and CVE0.io
15
-
16
-
### Current Build Architecture
17
-
18
-
-**Development Builds**: May still use traditional pipeline with manual verification (optional SecureBuild)
19
-
-**Staging/Production Builds**: Use SecureBuild with automatic security attestations
20
-
-**Environment Flag**: Controlled by `USE_SECUREBUILD=true` in GitHub Actions
21
-
22
-
## 📋 Legacy Contents (For Reference)
5
+
## Contents
23
6
24
7
### Verification Script
25
-
-`verify-image.sh` - **Legacy script** for manual SLSA attestation, image signatures, and SBOM verification
8
+
-`verify-image.sh` - Script to verify SLSA attestation, image signatures, and SBOM for SDK images
26
9
27
10
### Public Keys
28
-
-`cosign-dev.pub` - **Legacy**: Development environment public key for image signature verification
29
-
-`cosign-stage.pub` - **Legacy**: Staging environment public key for image signature verification
30
-
-`cosign-prod.pub` - **Legacy**: Production environment public key for image signature verification
31
-
32
-
## 🔧 Verification Methods
11
+
-`cosign-dev.pub` - Development environment public key for image signature verification
12
+
-`cosign-stage.pub` - Staging environment public key for image signature verification
13
+
-`cosign-prod.pub` - Production environment public key for image signature verification
33
14
34
-
### For SecureBuild Images (Recommended)
35
-
SecureBuild images include built-in attestations and can be verified using SecureBuild's verification tools. Refer to the [SecureBuild documentation](https://securebuild.com) for current verification methods.
15
+
## Usage
36
16
37
-
### For Legacy Images (Development/Fallback)
38
-
If using traditional pipeline builds, the legacy verification script can still be used:
17
+
The verification script supports three environments (dev, stage, prod) and can be run as follows:
The publish pipeline supports different environments and configurations:
49
-
50
-
> **Note**: All version numbers in examples below (e.g., `1.0.0-dev.1`, `1.0.0-beta.1`, `1.0.0`) are for illustration purposes only. Use your actual release version numbers when running commands.
13
+
The publish pipeline supports different environments and configurations. Here are the common usage patterns:
51
14
52
15
### Development Release (ttl.sh)
53
16
54
-
#### Option 1: SecureBuild Development (with credentials)
55
-
In this scenario, the pipeline uses SecureBuild and will publish the image to ttl.sh
17
+
For local testing using ttl.sh registry:
56
18
```bash
57
-
export USE_SECUREBUILD=true
58
19
dagger call publish --progress=plain \
59
20
--op-service-account=env:OP_SERVICE_ACCOUNT \
60
21
--dev=true \
61
22
--staging=false \
62
-
--version=1.0.0-dev.1 \
23
+
--version=1.6.0-dev.1 \
63
24
--slsa=false
64
25
```
65
-
**Result**: Uses `deploy/apko-securebuild.yaml` → publishes to TTL.sh + CVE0.io
66
-
In this scenario, the pipeline uses Wolfi and will publish to ttl.sh
67
-
68
-
#### Option 2: Traditional Wolfi Development (no credentials)
69
-
```bash
70
-
# DO NOT set USE_SECUREBUILD
71
-
dagger call publish --progress=plain \
72
-
--op-service-account=env:OP_SERVICE_ACCOUNT \
73
-
--dev=true \
74
-
--staging=false \
75
-
--version=1.0.0-dev.1 \
76
-
--slsa=false
77
-
```
78
-
**Result**: Uses `deploy/apko-wolfi.yaml` → publishes to TTL.sh only
79
26
80
-
### Staging Release (SecureBuild Required)
27
+
### Staging Release
81
28
82
29
For publishing to staging environment:
83
30
```bash
84
-
export USE_SECUREBUILD=true # Required for staging builds
> **Note**: SecureBuild automatically handles SLSA attestations and SBOM generation, so `--slsa` and `--github-token` flags are not required (and are ignored) when using SecureBuild.
115
-
116
-
---
117
-
118
-
## 🔐 **SecureBuild Integration**
119
-
120
-
### Requirements for SecureBuild
121
-
1.**SecureBuild Account**: Active account at SecureBuild.com
122
-
2.**Team Configuration**:
123
-
- Feature flags enabled for "Custom APKO Upload" and "Custom Melange Upload"
124
-
- Team subscribed to the image/catalog item in SecureBuild
125
-
3.**1Password Access**: Service account tokens for dev/production vaults
**Important**: The versioned package (e.g., `replicated-1.0.0-beta.1`) must already exist in the CVE0.io repository before the APKO build. The current pipeline does not automatically create these packages via melange submission.
155
-
156
-
### Troubleshooting SecureBuild
157
-
Common issues and solutions:
158
-
159
-
**403 Forbidden Errors**:
160
-
- Check 1Password service account has vault access
161
-
- Verify SecureBuild team has "Custom APKO Upload" feature flag
162
-
- Confirm API tokens are valid in 1Password items
163
-
164
-
**Missing Package Errors**:
165
-
- SecureBuild uses CVE0.io repository for packages
166
-
- Package `replicated-{version}` must exist before APKO build
167
-
-**Current workaround**: Manually create packages in SecureBuild before running builds
168
-
-**Future enhancement**: Automatic melange.yaml submission for package generation
169
-
170
-
**Build Timeouts**:
171
-
- Monitor build status in SecureBuild dashboard
172
-
- Check Dagger traces for detailed timing
173
-
174
-
---
175
54
176
55
## Available Flags
177
56
@@ -181,19 +60,19 @@ Common issues and solutions:
181
60
-`--dev`: (boolean) Use development environment (ttl.sh)
182
61
-`--staging`: (boolean) Use staging environment
183
62
-`--version`: Version string for the release
184
-
-`--slsa`: (boolean) Enable SLSA provenance generation*(ignored when using SecureBuild)*
185
-
-`--github-token`: GitHub token for SLSA workflow access*(ignored when using SecureBuild)*
-`--github-token`: GitHub token for SLSA workflow access
186
65
187
-
**Note**: When using SecureBuild (`USE_SECUREBUILD=true`), SLSA attestations and SBOM generation are automatic. The `--slsa` and `--github-token` flags are only used with the traditional Chainguard pipeline.
66
+
Note: SLSA provenance generation requires both `--slsa=true` and a valid `--github-token`.
188
67
189
68
## SBOM Generation
190
69
191
70
Software Bill of Materials (SBOM) is automatically generated during the build process:
192
71
193
72
1.**Generation Method**:
194
-
-**SecureBuild**: Automatically generates comprehensive SBOMs with CVE remediation data
195
-
-**Traditional**: Uses Chainguard's melange and apko to create SPDX-formatted SBOMs
196
-
-SBOMs include all direct and transitive dependencies with license information
73
+
-Uses Chainguard's melange and apko to create SPDX-formatted SBOMs
74
+
-SBOMs are generated for both the base image and application layers
75
+
-Includes all direct and transitive dependencies
197
76
198
77
2.**SBOM Format**:
199
78
- Format: SPDX JSON
@@ -204,25 +83,33 @@ Software Bill of Materials (SBOM) is automatically generated during the build pr
204
83
- Creation metadata
205
84
206
85
3.**Verification**:
207
-
- Refer to the instructions at securebuild.com
86
+
- SBOMs are signed using cosign
87
+
- Attestations are attached to the container image
88
+
- Use the verification script in `certs/verify-image.sh` to verify:
0 commit comments