mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Merge pull request #3483 from msk-/master
Bug: configMapRefs in patches are not resolved correctly in diamond structure
This commit is contained in:
228
api/krusty/diamondpatchref_test.go
Normal file
228
api/krusty/diamondpatchref_test.go
Normal file
@@ -0,0 +1,228 @@
|
||||
// Copyright 2019 The Kubernetes Authors.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package krusty_test
|
||||
|
||||
// In the following structure `top` patches `left-deploy` and `right-deploy` to reference the
|
||||
// configMap in `bottom`. This test verifies `configMapRef.name` in `left-deploy` and
|
||||
// `right-deploy` is modified correctly.
|
||||
//
|
||||
// top
|
||||
// / \
|
||||
// left right
|
||||
// / \ / \
|
||||
// left-service bottom bottom right-service
|
||||
// | \ / |
|
||||
// left-deploy bottom right-deploy
|
||||
// |
|
||||
// configMap
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
||||
)
|
||||
|
||||
func TestConfMapNameResolutionInDiamondWithPatches(t *testing.T) {
|
||||
th := kusttest_test.MakeHarness(t)
|
||||
|
||||
th.WriteK("bottom", `
|
||||
configMapGenerator:
|
||||
- name: bottom
|
||||
literals:
|
||||
- KEY=value
|
||||
`)
|
||||
|
||||
th.WriteK("left-service", `
|
||||
resources:
|
||||
- deployment.yaml
|
||||
`)
|
||||
|
||||
th.WriteF("left-service/deployment.yaml", `
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: left-deploy
|
||||
labels:
|
||||
app.kubernetes.io/name: left-deploy
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: left-pod
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: left-pod
|
||||
spec:
|
||||
containers:
|
||||
- image: left-image:v1.0
|
||||
name: service
|
||||
`)
|
||||
|
||||
th.WriteK("right-service", `
|
||||
resources:
|
||||
- deployment.yaml
|
||||
`)
|
||||
|
||||
th.WriteF("right-service/deployment.yaml", `
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: right-deploy
|
||||
labels:
|
||||
app.kubernetes.io/name: right-deploy
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: right-pod
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: right-pod
|
||||
spec:
|
||||
containers:
|
||||
- image: right-image:v1.0
|
||||
name: service
|
||||
`)
|
||||
|
||||
th.WriteK("top", `
|
||||
resources:
|
||||
- ./left
|
||||
- ./right
|
||||
`)
|
||||
|
||||
th.WriteK("top/left", `
|
||||
resources:
|
||||
- ../../left-service
|
||||
- ./bottom
|
||||
|
||||
patches:
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: left-deploy
|
||||
patch: |-
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ignored-by-kustomize
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: service
|
||||
env:
|
||||
- name: MAPPED_CONFIG_ITEM
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: left-bottom
|
||||
key: KEY
|
||||
`)
|
||||
|
||||
th.WriteK("top/left/bottom", `
|
||||
namePrefix: left-
|
||||
|
||||
resources:
|
||||
- ../../../bottom
|
||||
`)
|
||||
|
||||
th.WriteK("top/right", `
|
||||
resources:
|
||||
- ../../right-service
|
||||
- ./bottom
|
||||
|
||||
patches:
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: right-deploy
|
||||
patch: |-
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ignored-by-kustomize
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: service
|
||||
env:
|
||||
- name: MAPPED_CONFIG_ITEM
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: right-bottom
|
||||
key: KEY
|
||||
`)
|
||||
|
||||
th.WriteK("top/right/bottom", `
|
||||
namePrefix: right-
|
||||
|
||||
resources:
|
||||
- ../../../bottom
|
||||
`)
|
||||
|
||||
m := th.Run("top", th.MakeDefaultOptions())
|
||||
// Desired behaviour: configMapKeyRef should reference ConfigMap names.
|
||||
th.AssertActualEqualsExpected(m, `apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: left-deploy
|
||||
name: left-deploy
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: left-pod
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: left-pod
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: MAPPED_CONFIG_ITEM
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: KEY
|
||||
name: left-bottom
|
||||
image: left-image:v1.0
|
||||
name: service
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
KEY: value
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: left-bottom-9f2t6f5h6d
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: right-deploy
|
||||
name: right-deploy
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: right-pod
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: right-pod
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: MAPPED_CONFIG_ITEM
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
key: KEY
|
||||
name: right-bottom
|
||||
image: right-image:v1.0
|
||||
name: service
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
KEY: value
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: right-bottom-9f2t6f5h6d
|
||||
`)
|
||||
}
|
||||
Reference in New Issue
Block a user