mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
876 lines
26 KiB
Go
876 lines
26 KiB
Go
/*
|
|
Copyright 2018 The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package transformers
|
|
|
|
import (
|
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
)
|
|
|
|
// defaultNameReferencePathConfigs is the default configuration for updating
|
|
// the fields reference the name of other resources.
|
|
var defaultNameReferencePathConfigs = []ReferencePathConfig{
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "HorizontalPodAutoscaler",
|
|
},
|
|
Path: []string{"spec", "scaleTargetRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Kind: "ReplicationController",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "HorizontalPodAutoscaler",
|
|
},
|
|
Path: []string{"spec", "scaleTargetRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "HorizontalPodAutoscaler",
|
|
},
|
|
Path: []string{"spec", "scaleTargetRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "ConfigMap",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "volumes", "configMap", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "containers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "initContainers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "containers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "initContainers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "configMap", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "configMap", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "configMap", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "configMap", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "configMap", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "volumes", "configMap", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "containers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "initContainers", "env", "valueFrom", "configMapKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "containers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "initContainers", "envFrom", "configMapRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Secret",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "volumes", "secret", "secretName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "containers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "initContainers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "containers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "initContainers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "imagePullSecrets", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "secret", "secretName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "imagePullSecrets", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "secret", "secretName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicaSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "imagePullSecrets", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "secret", "secretName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "imagePullSecrets", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "secret", "secretName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "imagePullSecrets", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "secret", "secretName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "containers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "initContainers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "imagePullSecrets", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "volumes", "secret", "secretName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "containers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "initContainers", "env", "valueFrom", "secretKeyRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "containers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "initContainers", "envFrom", "secretRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "imagePullSecrets", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Ingress",
|
|
},
|
|
Path: []string{"spec", "tls", "secretName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ServiceAccount",
|
|
},
|
|
Path: []string{"imagePullSecrets", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
// StatefulSet references headless service, so need to update the references.
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "Service",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Group: "apps",
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "serviceName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Ingress",
|
|
},
|
|
Path: []string{"spec", "rules", "http", "paths", "backend", "serviceName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Ingress",
|
|
},
|
|
Path: []string{"spec", "backend", "serviceName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Group: "rbac.authorization.k8s.io",
|
|
Kind: "Role",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Group: "rbac.authorization.k8s.io",
|
|
Kind: "RoleBinding",
|
|
},
|
|
Path: []string{"roleRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Group: "rbac.authorization.k8s.io",
|
|
Kind: "ClusterRole",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Group: "rbac.authorization.k8s.io",
|
|
Kind: "RoleBinding",
|
|
},
|
|
Path: []string{"roleRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Group: "rbac.authorization.k8s.io",
|
|
Kind: "ClusterRoleBinding",
|
|
},
|
|
Path: []string{"roleRef", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "ServiceAccount",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Group: "rbac.authorization.k8s.io",
|
|
Kind: "RoleBinding",
|
|
},
|
|
Path: []string{"subjects", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Group: "rbac.authorization.k8s.io",
|
|
Kind: "ClusterRoleBinding",
|
|
},
|
|
Path: []string{"subjects", "name"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "serviceAccountName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "serviceAccountName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "serviceAccountName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicationController",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "serviceAccountName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "serviceAccountName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "serviceAccountName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "serviceAccountName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
referencedGVK: schema.GroupVersionKind{
|
|
Version: "v1",
|
|
Kind: "PersistentVolumeClaim",
|
|
},
|
|
pathConfigs: []PathConfig{
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Pod",
|
|
},
|
|
Path: []string{"spec", "volumes", "persistentVolumeClaim", "claimName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "StatefulSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "persistentVolumeClaim", "claimName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Deployment",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "persistentVolumeClaim", "claimName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "ReplicationController",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "persistentVolumeClaim", "claimName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "CronJob",
|
|
},
|
|
Path: []string{"spec", "jobTemplate", "spec", "template", "spec", "volumes", "persistentVolumeClaim", "claimName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "Job",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "persistentVolumeClaim", "claimName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
{
|
|
GroupVersionKind: &schema.GroupVersionKind{
|
|
Kind: "DaemonSet",
|
|
},
|
|
Path: []string{"spec", "template", "spec", "volumes", "persistentVolumeClaim", "claimName"},
|
|
CreateIfNotPresent: false,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
// AddNameReferencePathConfigs adds extra reference path configs to the default one
|
|
func AddNameReferencePathConfigs(r []ReferencePathConfig) {
|
|
for _, p := range r {
|
|
defaultNameReferencePathConfigs = MergeNameReferencePathConfigs(defaultNameReferencePathConfigs, p)
|
|
}
|
|
}
|
|
|
|
// MergeNameReferencePathConfigs merges one ReferencePathConfig into a slice of ReferencePathConfig
|
|
func MergeNameReferencePathConfigs(configs []ReferencePathConfig, config ReferencePathConfig) []ReferencePathConfig {
|
|
result := []ReferencePathConfig{}
|
|
|
|
found := false
|
|
for _, c := range configs {
|
|
if c.referencedGVK == config.referencedGVK {
|
|
c.pathConfigs = append(c.pathConfigs, config.pathConfigs...)
|
|
found = true
|
|
}
|
|
result = append(result, c)
|
|
}
|
|
|
|
if !found {
|
|
result = append(result, config)
|
|
}
|
|
return result
|
|
}
|