...

Source file src/sigs.k8s.io/kustomize/api/krusty/nameprefixsuffixpatch_test.go

Documentation: sigs.k8s.io/kustomize/api/krusty

     1  // Copyright 2019 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package krusty_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
    10  )
    11  
    12  // Coverage for issue #2609
    13  func TestNamePrefixSuffixPatch(t *testing.T) {
    14  	th := kusttest_test.MakeHarness(t)
    15  
    16  	th.WriteF("handlers/kustomization.yaml", `
    17  nameSuffix: -suffix
    18  resources:
    19  - deployment.yaml
    20  `)
    21  
    22  	th.WriteF("handlers/deployment.yaml", `
    23  apiVersion: apps/v1
    24  kind: Deployment
    25  metadata:
    26    name: short
    27  spec:
    28    template:
    29      spec:
    30        containers:
    31        - name: handler
    32  `)
    33  
    34  	th.WriteF("mysql/kustomization.yaml", `
    35  configMapGenerator:
    36  - name: mysql
    37    literals:
    38    - MYSQL_USER=default
    39    - MYSQL_DATABASE=default
    40    - HOST=everest
    41  `)
    42  
    43  	th.WriteK(".", `
    44  resources:
    45  - mysql
    46  - handlers
    47  
    48  configMapGenerator:
    49  - name: mysql
    50    behavior: merge
    51    literals:
    52    - MYSQL_DATABASE=db
    53    - MYSQL_USER=my-user
    54    - MYSQL_PASSWORD='correct horse battery staple'
    55  
    56  patches:
    57  - target:
    58      kind: Deployment
    59      name: s.*
    60    patch: |-
    61      kind: Deployment
    62      metadata:
    63        name: ignored
    64      spec:
    65        template:
    66          spec:
    67            containers:
    68            - name: handler
    69              envFrom:
    70              - configMapRef:
    71                  name: mysql
    72              env:
    73              - valueFrom:
    74                  configMapKeyRef:
    75                    name: mysql
    76                    key: MYSQL_DATABASE
    77  `)
    78  
    79  	m := th.Run(".", th.MakeDefaultOptions())
    80  	// Per #2609, the desired behavior is for configMapRef.name and configMapKeyRef.name to be "mysql-9792mdchtg" not "mysql"
    81  	th.AssertActualEqualsExpected(m, `
    82  apiVersion: v1
    83  data:
    84    HOST: everest
    85    MYSQL_DATABASE: db
    86    MYSQL_PASSWORD: correct horse battery staple
    87    MYSQL_USER: my-user
    88  kind: ConfigMap
    89  metadata:
    90    name: mysql-t7tt4cdbmf
    91  ---
    92  apiVersion: apps/v1
    93  kind: Deployment
    94  metadata:
    95    name: short-suffix
    96  spec:
    97    template:
    98      spec:
    99        containers:
   100        - env:
   101          - valueFrom:
   102              configMapKeyRef:
   103                key: MYSQL_DATABASE
   104                name: mysql-t7tt4cdbmf
   105          envFrom:
   106          - configMapRef:
   107              name: mysql-t7tt4cdbmf
   108          name: handler
   109  `)
   110  }
   111  

View as plain text