mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-10 08:20:59 +00:00
Add test for issue 3489 and improve error messages.
This commit is contained in:
@@ -1,11 +1,194 @@
|
||||
package krusty_test
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
||||
)
|
||||
|
||||
func TestIssue3489(t *testing.T) {
|
||||
const assets = `{
|
||||
"tenantId": "XXXXX-XXXXXX-XXXXX-XXXXXX-XXXXXX",
|
||||
"subscriptionId": "XXXXX-XXXXXX-XXXXX-XXXXXX-XXXXXX",
|
||||
"resourceGroup": "DNS-EUW-XXX-RG",
|
||||
"useManagedIdentityExtension": true,
|
||||
"userAssignedIdentityID": "XXXXX-XXXXXX-XXXXX-XXXXXX-XXXXXX"
|
||||
}
|
||||
`
|
||||
th := kusttest_test.MakeHarness(t)
|
||||
th.WriteK(".", `
|
||||
namespace: kube-system
|
||||
resources:
|
||||
- external-dns
|
||||
- external-dns-private
|
||||
`)
|
||||
th.WriteK("external-dns", `
|
||||
resources:
|
||||
- ../base
|
||||
commonLabels:
|
||||
app: external-dns
|
||||
instance: public
|
||||
images:
|
||||
- name: k8s.gcr.io/external-dns/external-dns
|
||||
newName: xxx.azurecr.io/external-dns
|
||||
newTag: v0.7.4_sylr.1
|
||||
- name: quay.io/sylr/external-dns
|
||||
newName: xxx.azurecr.io/external-dns
|
||||
newTag: v0.7.4_sylr.1
|
||||
secretGenerator:
|
||||
- name: azure-config-file
|
||||
behavior: replace
|
||||
files:
|
||||
- assets/azure.json
|
||||
patches:
|
||||
- target:
|
||||
group: apps
|
||||
version: v1
|
||||
kind: Deployment
|
||||
name: external-dns
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/args
|
||||
value:
|
||||
- --txt-owner-id="aks"
|
||||
- --txt-prefix=external-dns-
|
||||
- --source=service
|
||||
- --provider=azure
|
||||
- --registry=txt
|
||||
- --domain-filter=dev.company.com
|
||||
`)
|
||||
|
||||
th.WriteF("external-dns/assets/azure.json", assets)
|
||||
th.WriteK("external-dns-private", `
|
||||
resources:
|
||||
- ../base
|
||||
nameSuffix: -private
|
||||
commonLabels:
|
||||
app: external-dns
|
||||
instance: private
|
||||
images:
|
||||
- name: k8s.gcr.io/external-dns/external-dns
|
||||
newName: xxx.azurecr.io/external-dns
|
||||
newTag: v0.7.4_sylr.1
|
||||
- name: quay.io/sylr/external-dns
|
||||
newName: xxx.azurecr.io/external-dns
|
||||
newTag: v0.7.4_sylr.1
|
||||
secretGenerator:
|
||||
- name: azure-config-file
|
||||
behavior: replace
|
||||
files:
|
||||
- assets/azure.json
|
||||
patches:
|
||||
- target:
|
||||
group: apps
|
||||
version: v1
|
||||
kind: Deployment
|
||||
name: external-dns
|
||||
patch: |-
|
||||
- op: replace
|
||||
path: /spec/template/spec/containers/0/args
|
||||
value:
|
||||
- --txt-owner-id="aks"
|
||||
- --txt-prefix=external-dns-private-
|
||||
- --source=service
|
||||
- --provider=azure-private-dns
|
||||
- --registry=txt
|
||||
- --domain-filter=static.company.az
|
||||
`)
|
||||
th.WriteF("external-dns-private/assets/azure.json", assets)
|
||||
th.WriteK("base", `
|
||||
resources:
|
||||
- clusterrole.yaml
|
||||
- clusterrolebinding.yaml
|
||||
- deployment.yaml
|
||||
- serviceaccount.yaml
|
||||
commonLabels:
|
||||
app: external-dns
|
||||
instance: public
|
||||
images:
|
||||
- name: k8s.gcr.io/external-dns/external-dns
|
||||
newName: quay.io/sylr/external-dns
|
||||
newTag: v0.7.4-73-g00a9a0c7
|
||||
secretGenerator:
|
||||
- name: azure-config-file
|
||||
files:
|
||||
- assets/azure.json
|
||||
`)
|
||||
th.WriteF("base/assets/azure.json", assets)
|
||||
th.WriteF("base/clusterrolebinding.yaml", `
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: external-dns-viewer
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: external-dns
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: external-dns
|
||||
`)
|
||||
th.WriteF("base/clusterrole.yaml", `
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: external-dns
|
||||
rules:
|
||||
- apiGroups: ['']
|
||||
resources: ['endpoints', 'pods', 'services', 'nodes']
|
||||
verbs: ['get', 'watch', 'list']
|
||||
- apiGroups: ['extensions', 'networking.k8s.io']
|
||||
resources: ['ingresses']
|
||||
verbs: ['get', 'watch', 'list']
|
||||
`)
|
||||
th.WriteF("base/deployment.yaml", `
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: external-dns
|
||||
spec:
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels: {}
|
||||
template:
|
||||
metadata: {}
|
||||
spec:
|
||||
serviceAccountName: external-dns
|
||||
containers:
|
||||
- name: external-dns
|
||||
image: k8s.gcr.io/external-dns/external-dns
|
||||
args:
|
||||
- --domain-filter=""
|
||||
- --txt-owner-id=""
|
||||
- --txt-prefix=external-dns-
|
||||
- --source=service
|
||||
- --provider=azure
|
||||
- --registry=txt
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- name: azure-config-file
|
||||
mountPath: /etc/kubernetes
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: azure-config-file
|
||||
secret:
|
||||
secretName: azure-config-file
|
||||
`)
|
||||
th.WriteF("base/serviceaccount.yaml", `
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: external-dns
|
||||
`)
|
||||
// TODO(3489): This shouldn't be an error.
|
||||
err := th.RunWithErr(".", th.MakeDefaultOptions())
|
||||
if !strings.Contains(err.Error(), "found multiple possible referrals") {
|
||||
t.Fatalf("unexpected error: %q", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEmptyFieldSpecValue(t *testing.T) {
|
||||
th := kusttest_test.MakeHarness(t)
|
||||
th.WriteK("/app", `
|
||||
|
||||
Reference in New Issue
Block a user