mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
128 lines
2.6 KiB
Go
128 lines
2.6 KiB
Go
// Copyright 2022 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package krusty_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
|
)
|
|
|
|
func TestGkeGenerator(t *testing.T) {
|
|
th := kusttest_test.MakeEnhancedHarness(t)
|
|
defer th.Reset()
|
|
|
|
th.WriteK(".", `
|
|
generators:
|
|
- |-
|
|
apiVersion: builtin
|
|
kind: IAMPolicyGenerator
|
|
metadata:
|
|
name: my-gke-generator
|
|
cloud: gke
|
|
kubernetesService:
|
|
name: k8s-sa-name
|
|
serviceAccount:
|
|
name: gsa-name
|
|
projectId: project-id
|
|
`)
|
|
expected := `
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
annotations:
|
|
iam.gke.io/gcp-service-account: gsa-name@project-id.iam.gserviceaccount.com
|
|
name: k8s-sa-name
|
|
`
|
|
m := th.Run(".", th.MakeDefaultOptions())
|
|
th.AssertActualEqualsExpected(m, expected)
|
|
}
|
|
|
|
func TestGkeGeneratorWithNamespace(t *testing.T) {
|
|
th := kusttest_test.MakeEnhancedHarness(t)
|
|
defer th.Reset()
|
|
|
|
th.WriteK(".", `
|
|
generators:
|
|
- |-
|
|
apiVersion: builtin
|
|
kind: IAMPolicyGenerator
|
|
metadata:
|
|
name: my-gke-generator
|
|
cloud: gke
|
|
kubernetesService:
|
|
namespace: k8s-namespace
|
|
name: k8s-sa-name
|
|
serviceAccount:
|
|
name: gsa-name
|
|
projectId: project-id
|
|
`)
|
|
expected := `
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
annotations:
|
|
iam.gke.io/gcp-service-account: gsa-name@project-id.iam.gserviceaccount.com
|
|
name: k8s-sa-name
|
|
namespace: k8s-namespace
|
|
`
|
|
m := th.Run(".", th.MakeDefaultOptions())
|
|
th.AssertActualEqualsExpected(m, expected)
|
|
}
|
|
|
|
func TestGkeGeneratorWithTwo(t *testing.T) {
|
|
th := kusttest_test.MakeEnhancedHarness(t)
|
|
defer th.Reset()
|
|
|
|
th.WriteK(".", `
|
|
generators:
|
|
- gkegenerator1.yaml
|
|
- gkegenerator2.yaml
|
|
`)
|
|
|
|
th.WriteF("gkegenerator1.yaml", `
|
|
apiVersion: builtin
|
|
kind: IAMPolicyGenerator
|
|
metadata:
|
|
name: my-gke-generator1
|
|
cloud: gke
|
|
kubernetesService:
|
|
namespace: k8s-namespace-1
|
|
name: k8s-sa-name-1
|
|
serviceAccount:
|
|
name: gsa-name-1
|
|
projectId: project-id-1
|
|
`)
|
|
th.WriteF("gkegenerator2.yaml", `
|
|
apiVersion: builtin
|
|
kind: IAMPolicyGenerator
|
|
metadata:
|
|
name: my-gke-generator2
|
|
cloud: gke
|
|
kubernetesService:
|
|
name: k8s-sa-name-2
|
|
serviceAccount:
|
|
name: gsa-name-2
|
|
projectId: project-id-2
|
|
`)
|
|
expected := `
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
annotations:
|
|
iam.gke.io/gcp-service-account: gsa-name-1@project-id-1.iam.gserviceaccount.com
|
|
name: k8s-sa-name-1
|
|
namespace: k8s-namespace-1
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
annotations:
|
|
iam.gke.io/gcp-service-account: gsa-name-2@project-id-2.iam.gserviceaccount.com
|
|
name: k8s-sa-name-2
|
|
`
|
|
m := th.Run(".", th.MakeDefaultOptions())
|
|
th.AssertActualEqualsExpected(m, expected)
|
|
}
|