mirror of
https://github.com/drone/drone-kaniko.git
synced 2026-06-04 18:23:50 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ed9f5bd964 | |||
| eeed435199 | |||
| f8c678fcde |
@@ -64,8 +64,10 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
// Excluded variables
|
||||
var excludeList = []string{"PLUGIN_PIPELINE", "PLUGIN_USERNAME", "PLUGIN_PASSWORD", "PLUGIN_TAGS", "PLUGIN_REGISTRY", "PLUGIN_ARTIFACT_FILE", "PLUGIN_REPO", "PLUGIN_BUILD_ARGS"}
|
||||
const kanikoArgsEnabled = "DRONE_KANIKO_ADDIONAL_ARGS_ENABLED"
|
||||
|
||||
// Allowed variables
|
||||
var allowList = []string{"PLUGIN_BUILD_ARG", "PLUGIN_CACHE", "PLUGIN_CACHE_DIR", "PLUGIN_CACHE_REPO", "PLUGIN_CACHE_COPY_LAYERS", "PLUGIN_CACHE_RUN_LAYERS", "PLUGIN_CACHE_TTL", "PLUGIN_CLEANUP", "PLUGIN_COMPRESSED_CACHING", "PLUGIN_CONTEXT_SUB_PATH", "PLUGIN_CUSTOM_PLATFORM", "PLUGIN_DIGEST_FILE", "PLUGIN_DOCKERFILE", "PLUGIN_FORCE", "PLUGIN_GIT", "PLUGIN_IMAGE_NAME_WITH_DIGEST_FILE", "PLUGIN_IMAGE_NAME_TAG_WITH_DIGEST_FILE", "PLUGIN_INSECURE", "PLUGIN_INSECURE_PULL", "PLUGIN_INSECURE_REGISTRY", "PLUGIN_LABEL", "PLUGIN_LOG_FORMAT", "PLUGIN_LOG_TIMESTAMP", "PLUGIN_NO_PUSH", "PLUGIN_OCI_LAYOUT_PATH", "PLUGIN_PUSH_RETRY", "PLUGIN_REGISTRY_CERTIFICATE", "PLUGIN_REGISTRY_CLIENT_CERT", "PLUGIN_REGISTRY_MIRROR", "PLUGIN_SKIP_DEFAULT_REGISTRY_FALLBACK", "PLUGIN_REPRODUCIBLE", "PLUGIN_SINGLE_SNAPSHOT", "PLUGIN_SKIP_TLS_VERIFY", "PLUGIN_SKIP_PUSH_PERMISSION_CHECK", "PLUGIN_SKIP_TLS_VERIFY_PULL", "PLUGIN_SKIP_TLS_VERIFY_REGISTRY", "PLUGIN_SKIP_UNUSED_STAGES", "PLUGIN_SNAPSHOT_MODE", "PLUGIN_TAR_PATH", "PLUGIN_TARGET", "PLUGIN_USE_NEW_RUN", "PLUGIN_VERBOSITY", "PLUGIN_IGNORE_VAR_RUN", "PLUGIN_IGNORE_PATH", "PLUGIN_IMAGE_FS_EXTRACT_RETRY", "PLUGIN_IMAGE_DOWNLOAD_RETRY"}
|
||||
|
||||
// labelsForTag returns the labels to use for the given tag, subject to the value of ExpandTag.
|
||||
//
|
||||
@@ -228,10 +230,16 @@ func (p Plugin) Exec() error {
|
||||
cmdArgs = append(cmdArgs, fmt.Sprintf("--tar-path=%s", p.Build.TarPath))
|
||||
}
|
||||
|
||||
//Read all PLUGIN_ env vars
|
||||
//Read all PLUGIN_ env vars if FF is enabled
|
||||
//parse them such that PLUGIN_ENV_ARG is set to the value of --env-arg
|
||||
//Add the value of --env-arg to cmdArgs if it does not exist
|
||||
cmdArgs = getPluginEnvVars(cmdArgs)
|
||||
argsEnabled, ok := os.LookupEnv(kanikoArgsEnabled)
|
||||
if ok {
|
||||
fmt.Fprintf(os.Stdout, "%s env is set with value: %s ", kanikoArgsEnabled, argsEnabled)
|
||||
}
|
||||
if argsEnabled == "true" {
|
||||
cmdArgs = getPluginEnvVars(cmdArgs)
|
||||
}
|
||||
|
||||
cmd := exec.Command("/kaniko/executor", cmdArgs...)
|
||||
cmd.Stdout = os.Stdout
|
||||
@@ -279,7 +287,7 @@ func getPluginEnvVars(cmdArgs []string) []string {
|
||||
// Iterate through environment variables
|
||||
for _, envVar := range envVars {
|
||||
// Check if the variable starts with PLUGIN_
|
||||
if strings.HasPrefix(envVar, "PLUGIN_") && !contains(excludeList, envVar) {
|
||||
if strings.HasPrefix(envVar, "PLUGIN_") && contains(allowList, envVar) {
|
||||
// Split the variable into key and value
|
||||
parts := strings.SplitN(envVar, "=", 2)
|
||||
if len(parts) != 2 {
|
||||
|
||||
Reference in New Issue
Block a user