diff --git a/misc/rollout-transform.yaml b/misc/rollout-transform.yaml new file mode 100644 index 0000000..d93d5a3 --- /dev/null +++ b/misc/rollout-transform.yaml @@ -0,0 +1,275 @@ +# https://github.com/kubernetes-sigs/kustomize/blob/master/api/konfig/builtinpluginconsts/namereference.go +nameReference: +- kind: ConfigMap + version: v1 + fieldSpecs: + - path: spec/template/spec/volumes/configMap/name + kind: Rollout + - path: spec/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: Rollout + - path: spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: Rollout + - path: spec/template/spec/containers/envFrom/configMapRef/name + kind: Rollout + - path: spec/template/spec/initContainers/envFrom/configMapRef/name + kind: Rollout + - path: spec/template/spec/volumes/projected/sources/configMap/name + kind: Rollout + - path: spec/templates/template/spec/volumes/configMap/name + kind: Experiment + - path: spec/templates/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: Experiment + - path: spec/templates/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: Experiment + - path: spec/templates/template/spec/containers/envFrom/configMapRef/name + kind: Experiment + - path: spec/templates/template/spec/initContainers/envFrom/configMapRef/name + kind: Experiment + - path: spec/templates/template/spec/volumes/projected/sources/configMap/name + kind: Experiment + - path: spec/metrics/provider/job/spec/template/spec/volumes/configMap/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/containers/env/valueFrom/configMapKeyRef/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/initContainers/env/valueFrom/configMapKeyRef/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/containers/envFrom/configMapRef/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/initContainers/envFrom/configMapRef/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/volumes/projected/sources/configMap/name + kind: AnalysisTemplate +- kind: Secret + version: v1 + fieldSpecs: + - path: spec/template/spec/volumes/secret/secretName + kind: Rollout + - path: spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: Rollout + - path: spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: Rollout + - path: spec/template/spec/containers/envFrom/secretRef/name + kind: Rollout + - path: spec/template/spec/initContainers/envFrom/secretRef/name + kind: Rollout + - path: spec/template/spec/imagePullSecrets/name + kind: Rollout + - path: spec/template/spec/volumes/projected/sources/secret/name + kind: Rollout + - path: spec/templates/template/spec/volumes/secret/secretName + kind: Experiment + - path: spec/templates/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: Experiment + - path: spec/templates/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: Experiment + - path: spec/templates/template/spec/containers/envFrom/secretRef/name + kind: Experiment + - path: spec/templates/template/spec/initContainers/envFrom/secretRef/name + kind: Experiment + - path: spec/templates/template/spec/imagePullSecrets/name + kind: Experiment + - path: spec/templates/template/spec/volumes/projected/sources/secret/name + kind: Experiment + - path: spec/metrics/provider/job/spec/template/spec/volumes/secret/secretName + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/containers/env/valueFrom/secretKeyRef/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/initContainers/env/valueFrom/secretKeyRef/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/containers/envFrom/secretRef/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/initContainers/envFrom/secretRef/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/imagePullSecrets/name + kind: AnalysisTemplate + - path: spec/metrics/provider/job/spec/template/spec/volumes/projected/sources/secret/name + kind: AnalysisTemplate +- kind: ServiceAccount + version: v1 + fieldSpecs: + - path: spec/template/spec/serviceAccountName + kind: Rollout + - path: spec/templates/template/spec/serviceAccountName + kind: Experiment + - path: spec/metrics/provider/job/spec/template/spec/serviceAccountName + kind: AnalysisTemplate +- kind: PersistentVolumeClaim + version: v1 + fieldSpecs: + - path: spec/template/spec/volumes/persistentVolumeClaim/claimName + kind: Rollout + - path: spec/templates/template/spec/volumes/persistentVolumeClaim/claimName + kind: Experiment + - path: spec/metrics/provider/job/spec/template/spec/volumes/persistentVolumeClaim/claimName + kind: AnalysisTemplate +- kind: PriorityClass + version: v1 + group: scheduling.k8s.io + fieldSpecs: + - path: spec/template/spec/priorityClassName + kind: Rollout + - path: spec/templates/template/spec/priorityClassName + kind: Experiment + - path: spec/metrics/provider/job/spec/template/spec/priorityClassName + kind: AnalysisTemplate + +# The name references below are unique to Rollouts and not applicable to Deployment +- kind: Service + version: v1 + fieldSpecs: + - path: spec/strategy/blueGreen/activeService + kind: Rollout + - path: spec/strategy/blueGreen/previewService + kind: Rollout + - path: spec/strategy/canary/canaryService + kind: Rollout + - path: spec/strategy/canary/stableService + kind: Rollout + - path: spec/strategy/canary/trafficRouting/alb/rootService + kind: Rollout +- kind: VirtualService + group: networking.istio.io + fieldSpecs: + - path: spec/strategy/canary/trafficRouting/istio/virtualService/name + kind: Rollout +- kind: DestinationRule + group: networking.istio.io + fieldSpecs: + - path: spec/strategy/canary/trafficRouting/istio/destinationRule/name + kind: Rollout +- kind: Ingress + group: networking.k8s.io + fieldSpecs: + - path: spec/strategy/canary/trafficRouting/alb/ingress + kind: Rollout + - path: spec/strategy/canary/trafficRouting/nginx/stableIngress + kind: Rollout +- kind: Ingress + group: extensions + fieldSpecs: + - path: spec/strategy/canary/trafficRouting/alb/ingress + kind: Rollout + - path: spec/strategy/canary/trafficRouting/nginx/stableIngress + kind: Rollout +- kind: AnalysisTemplate + group: argoproj.io + fieldSpecs: + - path: spec/strategy/blueGreen/prePromotionAnalysis/templates/templateName + kind: Rollout + - path: spec/strategy/blueGreen/postPromotionAnalysis/templates/templateName + kind: Rollout + - path: spec/strategy/canary/analysis/templates/templateName + kind: Rollout + - path: spec/strategy/canary/steps/analysis/templates/templateName + kind: Rollout + - path: spec/strategy/canary/steps/experiment/analyses/templateName + kind: Rollout + - path: spec/analyses/templateName + kind: Experiment +- kind: Rollout + fieldSpecs: + - path: spec/scaleTargetRef/name + kind: HorizontalPodAutoscaler +- kind: Deployment + version: v1 + group: apps + fieldSpecs: + - path: spec/workloadRef/name + kind: Rollout +- kind: Mapping + group: getambassador.io + fieldSpecs: + - path: spec/strategy/canary/trafficRouting/ambassador/mappings + kind: Rollout + +# https://github.com/kubernetes-sigs/kustomize/blob/master/api/konfig/builtinpluginconsts/commonlabels.go +commonLabels: +- path: spec/selector/matchLabels + create: true + kind: Rollout +- path: spec/template/metadata/labels + create: true + kind: Rollout +- path: spec/template/spec/affinity/podAffinity/preferredDuringSchedulingIgnoredDuringExecution/podAffinityTerm/labelSelector/matchLabels + create: false + kind: Rollout +- path: spec/template/spec/affinity/podAffinity/requiredDuringSchedulingIgnoredDuringExecution/labelSelector/matchLabels + create: false + kind: Rollout +- path: spec/template/spec/affinity/podAntiAffinity/preferredDuringSchedulingIgnoredDuringExecution/podAffinityTerm/labelSelector/matchLabels + create: false + kind: Rollout +- path: spec/template/spec/affinity/podAntiAffinity/requiredDuringSchedulingIgnoredDuringExecution/labelSelector/matchLabels + create: false + kind: Rollout + +# https://github.com/kubernetes-sigs/kustomize/blob/master/api/konfig/builtinpluginconsts/commonannotations.go +commonAnnotations: +- path: spec/template/metadata/annotations + create: true + kind: Rollout + +# https://github.com/kubernetes-sigs/kustomize/blob/master/api/konfig/builtinpluginconsts/varreference.go +varReference: +- path: spec/template/spec/containers/args + kind: Rollout +- path: spec/template/spec/containers/command + kind: Rollout +- path: spec/template/spec/containers/env/value + kind: Rollout +- path: spec/template/spec/containers/volumeMounts/mountPath + kind: Rollout +- path: spec/template/spec/initContainers/args + kind: Rollout +- path: spec/template/spec/initContainers/command + kind: Rollout +- path: spec/template/spec/initContainers/env/value + kind: Rollout +- path: spec/template/spec/initContainers/volumeMounts/mountPath + kind: Rollout +- path: spec/templates/template/spec/containers/args + kind: Experiment +- path: spec/templates/template/spec/containers/command + kind: Experiment +- path: spec/templates/template/spec/containers/env/value + kind: Experiment +- path: spec/templates/template/spec/containers/volumeMounts/mountPath + kind: Experiment +- path: spec/templates/template/spec/initContainers/args + kind: Experiment +- path: spec/templates/template/spec/initContainers/command + kind: Experiment +- path: spec/templates/template/spec/initContainers/env/value + kind: Experiment +- path: spec/templates/template/spec/initContainers/volumeMounts/mountPath + kind: Experiment +- path: spec/metrics/provider/job/spec/template/spec/containers/args + kind: AnalysisTemplate +- path: spec/metrics/provider/job/spec/template/spec/containers/command + kind: AnalysisTemplate +- path: spec/metrics/provider/job/spec/template/spec/containers/env/value + kind: AnalysisTemplate +- path: spec/metrics/provider/job/spec/template/spec/containers/volumeMounts/mountPath + kind: AnalysisTemplate +- path: spec/metrics/provider/job/spec/template/spec/initContainers/args + kind: AnalysisTemplate +- path: spec/metrics/provider/job/spec/template/spec/initContainers/command + kind: AnalysisTemplate +- path: spec/metrics/provider/job/spec/template/spec/initContainers/env/value + kind: AnalysisTemplate +- path: spec/metrics/provider/job/spec/template/spec/initContainers/volumeMounts/mountPath + kind: AnalysisTemplate +- path: spec/metrics/provider/job/spec/template/spec/volumes/nfs/server + kind: AnalysisTemplate + +# https://github.com/kubernetes-sigs/kustomize/blob/master/api/konfig/builtinpluginconsts/replicas.go +replicas: +- path: spec/replicas + create: true + kind: Rollout + +# BEGIN PATCH +templateLabels: +- path: spec/template/metadata/labels + create: true + kind: Rollout