Skip to content

Commit

Permalink
Merge pull request #3484 from kubernetes-sigs/issue3377
Browse files Browse the repository at this point in the history
Demonstrate issue #3377 is fixed.
  • Loading branch information
monopole committed Jan 27, 2021
2 parents a8278b6 + 3d17503 commit 8d4508a
Showing 1 changed file with 283 additions and 0 deletions.
283 changes: 283 additions & 0 deletions api/krusty/issue3377_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,283 @@
// Copyright 2021 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0

package krusty_test

import (
"testing"

kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
)

func TestIssue3377(t *testing.T) {
th := kusttest_test.MakeHarness(t)
opts := th.MakeDefaultOptions()
th.WriteK(".", `
resources:
- service-a.yaml
- service-b.yaml
patchesJson6902:
- path: service-a-patch.yaml
target:
version: v1
group: networking.k8s.io
kind: Ingress
name: service-a
- path: service-b-patch.yaml
target:
version: v1
group: networking.k8s.io
kind: Ingress
name: service-b
vars:
- name: SERVICE_A_DNS_NAME
objref:
apiVersion: networking.k8s.io/v1
kind: Ingress
name: service-a
fieldref:
fieldpath: spec.rules[0].host
- name: SERVICE_B_DNS_NAME
objref:
apiVersion: networking.k8s.io/v1
kind: Ingress
name: service-b
fieldref:
fieldpath: spec.rules[0].host
`)

th.WriteF("service-a.yaml", `
apiVersion: apps/v1
kind: Deployment
metadata:
name: service-a
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: service-a
template:
metadata:
labels:
app.kubernetes.io/component: service-a
spec:
containers:
- image: repository/service-a:v1
imagePullPolicy: Always
name: service-b
ports:
- containerPort: 8080
env:
- name: REDIRECT_URI
value: "http://$(SERVICE_B_DNS_NAME):80/oauth_redir"
---
apiVersion: v1
kind: Service
metadata:
name: service-a
labels:
app.kubernetes.io/component: service-a
spec:
type: LoadBalancer
ports:
- port: 8080
selector:
app.kubernetes.io/component: service-a
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: service-a
spec:
rules:
- host: service-a.k8s.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-a
port:
number: 8080
`)

th.WriteF("service-a-patch.yaml", `
- op: replace
path: /spec/rules/0/host
value: new-service-a.k8s.com
`)

th.WriteF("service-b.yaml", `
apiVersion: apps/v1
kind: Deployment
metadata:
name: service-b
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: service-b
template:
metadata:
labels:
app.kubernetes.io/component: service-b
spec:
containers:
- image: repository/service-b:v1
imagePullPolicy: Always
name: service-b
ports:
- containerPort: 8080
env:
- name: REDIRECT_URI
value: "http://$(SERVICE_A_DNS_NAME):80/oauth_redir"
---
apiVersion: v1
kind: Service
metadata:
name: service-b
labels:
app.kubernetes.io/component: service-b
spec:
type: LoadBalancer
ports:
- port: 8080
selector:
app.kubernetes.io/component: service-b
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: service-b
spec:
rules:
- host: service-b.k8s.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-b
port:
number: 8080
`)
th.WriteF("service-b-patch.yaml", `
- op: replace
path: /spec/rules/0/host
value: new-service-b.k8s.com
`)
m := th.Run(".", opts)
th.AssertActualEqualsExpected(
m, `
apiVersion: apps/v1
kind: Deployment
metadata:
name: service-a
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: service-a
template:
metadata:
labels:
app.kubernetes.io/component: service-a
spec:
containers:
- env:
- name: REDIRECT_URI
value: http://new-service-b.k8s.com:80/oauth_redir
image: repository/service-a:v1
imagePullPolicy: Always
name: service-b
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: service-a
name: service-a
spec:
ports:
- port: 8080
selector:
app.kubernetes.io/component: service-a
type: LoadBalancer
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: service-a
spec:
rules:
- host: new-service-a.k8s.com
http:
paths:
- backend:
service:
name: service-a
port:
number: 8080
path: /
pathType: Prefix
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: service-b
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: service-b
template:
metadata:
labels:
app.kubernetes.io/component: service-b
spec:
containers:
- env:
- name: REDIRECT_URI
value: http://new-service-a.k8s.com:80/oauth_redir
image: repository/service-b:v1
imagePullPolicy: Always
name: service-b
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: service-b
name: service-b
spec:
ports:
- port: 8080
selector:
app.kubernetes.io/component: service-b
type: LoadBalancer
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: service-b
spec:
rules:
- host: new-service-b.k8s.com
http:
paths:
- backend:
service:
name: service-b
port:
number: 8080
path: /
pathType: Prefix
`)
}

0 comments on commit 8d4508a

Please sign in to comment.