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
This directory contains certificates and verification tools used for validating the authenticity and integrity of Replicated SDK container images.
3
+
> **⚠️ 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.
4
4
5
-
## Contents
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)
6
23
7
24
### Verification Script
8
-
-`verify-image.sh` - Script to verify SLSA attestation, image signatures, and SBOM for SDK images
25
+
-`verify-image.sh` - **Legacy script** for manual SLSA attestation, image signatures, and SBOM verification
9
26
10
27
### Public Keys
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
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
14
33
15
-
## Usage
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.
16
36
17
-
The verification script supports three environments (dev, stage, prod) and can be run as follows:
37
+
### For Legacy Images (Development/Fallback)
38
+
If using traditional pipeline builds, the legacy verification script can still be used:
The publish pipeline supports different environments and configurations. Here are the common usage patterns:
48
+
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.
14
51
15
52
### Development Release (ttl.sh)
16
53
17
-
For local testing using ttl.sh registry:
54
+
#### Option 1: SecureBuild Development (with credentials)
55
+
In this scenario, the pipeline uses SecureBuild and will publish the image to ttl.sh
18
56
```bash
57
+
export USE_SECUREBUILD=true
19
58
dagger call publish --progress=plain \
20
59
--op-service-account=env:OP_SERVICE_ACCOUNT \
21
60
--dev=true \
22
61
--staging=false \
23
-
--version=1.6.0-dev.1 \
62
+
--version=1.0.0-dev.1 \
24
63
--slsa=false
25
64
```
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
26
79
27
-
### Staging Release
80
+
### Staging Release (SecureBuild Required)
28
81
29
82
For publishing to staging environment:
30
83
```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
-`--github-token`: GitHub token for SLSA workflow access
184
+
-`--slsa`: (boolean) Enable SLSA provenance generation*(ignored when using SecureBuild)*
185
+
-`--github-token`: GitHub token for SLSA workflow access*(ignored when using SecureBuild)*
65
186
66
-
Note: SLSA provenance generation requires both `--slsa=true` and a valid `--github-token`.
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.
67
188
68
189
## SBOM Generation
69
190
70
191
Software Bill of Materials (SBOM) is automatically generated during the build process:
71
192
72
193
1.**Generation Method**:
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
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
76
197
77
198
2.**SBOM Format**:
78
199
- Format: SPDX JSON
@@ -83,33 +204,25 @@ Software Bill of Materials (SBOM) is automatically generated during the build pr
83
204
- Creation metadata
84
205
85
206
3.**Verification**:
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