Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app.go
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ func Run() {
Usage: "path to save Docker image as tar file",
EnvVar: "PLUGIN_TAR_PATH, PLUGIN_DESTINATION_TAR_PATH",
},
cli.BoolFlag{
cli.BoolTFlag{
Name: "buildkit-inherit-auth",
Usage: "inherit auth from docker daemon",
EnvVar: "PLUGIN_BUILDKIT_INHERIT_AUTH",
Expand Down
24 changes: 18 additions & 6 deletions docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -817,14 +817,26 @@ func sanitizeCacheCommand(build *Build) {
sanitizeCacheArgs := func(args []string) []string {
for i, arg := range args {

// Replace access_key_id if placeholder exists and the actual key is not empty
if strings.Contains(arg, "access_key_id=harness_placeholder_aws_creds") && build.HarnessSelfHostedS3AccessKey != "" {
arg = strings.Replace(arg, "access_key_id=harness_placeholder_aws_creds", "access_key_id="+build.HarnessSelfHostedS3AccessKey, 1)
// Handle access_key_id placeholder
if strings.Contains(arg, "access_key_id=harness_placeholder_aws_creds") {
if build.HarnessSelfHostedS3AccessKey != "" {
arg = strings.Replace(arg, "access_key_id=harness_placeholder_aws_creds", "access_key_id="+build.HarnessSelfHostedS3AccessKey, 1)
} else {
arg = strings.Replace(arg, ",access_key_id=harness_placeholder_aws_creds", "", 1)
arg = strings.Replace(arg, "access_key_id=harness_placeholder_aws_creds,", "", 1)
arg = strings.Replace(arg, "access_key_id=harness_placeholder_aws_creds", "", 1)
}
}

// Replace secret_access_key if placeholder exists and the actual key is not empty
if strings.Contains(arg, "secret_access_key=harness_placeholder_aws_creds") && build.HarnessSelfHostedS3SecretKey != "" {
arg = strings.Replace(arg, "secret_access_key=harness_placeholder_aws_creds", "secret_access_key="+build.HarnessSelfHostedS3SecretKey, 1)
// Handle secret_access_key placeholder
if strings.Contains(arg, "secret_access_key=harness_placeholder_aws_creds") {
if build.HarnessSelfHostedS3SecretKey != "" {
arg = strings.Replace(arg, "secret_access_key=harness_placeholder_aws_creds", "secret_access_key="+build.HarnessSelfHostedS3SecretKey, 1)
} else {
arg = strings.Replace(arg, ",secret_access_key=harness_placeholder_aws_creds", "", 1)
arg = strings.Replace(arg, "secret_access_key=harness_placeholder_aws_creds,", "", 1)
arg = strings.Replace(arg, "secret_access_key=harness_placeholder_aws_creds", "", 1)
}
}

// Handle gcp_json_key
Expand Down
11 changes: 11 additions & 0 deletions docker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,17 @@ func TestSanitizeCacheCommand(t *testing.T) {
expectedCacheFrom: []string{"type=gcs"},
expectedCacheTo: []string{"type=gcs,bucket=test,prefix=dlc"},
},
{
name: "Remove AWS placeholders when keys are empty",
build: Build{
CacheFrom: []string{"type=s3,bucket=test,access_key_id=harness_placeholder_aws_creds,secret_access_key=harness_placeholder_aws_creds,prefix=dlc"},
CacheTo: []string{"type=s3,bucket=test,access_key_id=harness_placeholder_aws_creds,secret_access_key=harness_placeholder_aws_creds,mode=max,ignore-error=true"},
HarnessSelfHostedS3AccessKey: "",
HarnessSelfHostedS3SecretKey: "",
},
expectedCacheFrom: []string{"type=s3,bucket=test,prefix=dlc"},
expectedCacheTo: []string{"type=s3,bucket=test,mode=max,ignore-error=true"},
},
{
name: "Multiple placeholders in CacheFrom",
build: Build{
Expand Down