Exclude the namespace from AppMesh object names

ref: https://github.com/aws/aws-app-mesh-controller-for-k8s/issues/14
This commit is contained in:
stefanprodan
2019-03-23 11:25:39 +02:00
parent 941be15762
commit ae0351ddad
2 changed files with 13 additions and 13 deletions
+11 -11
View File
@@ -37,21 +37,21 @@ func (ar *AppMeshRouter) Sync(canary *flaggerv1.Canary) error {
// sync virtual node e.g. app-namespace
// DNS app.namespace
err := ar.syncVirtualNode(canary, fmt.Sprintf("%s-%s", targetName, canary.Namespace), primaryHost)
err := ar.syncVirtualNode(canary, targetName, primaryHost)
if err != nil {
return err
}
// sync virtual node e.g. app-primary-namespace
// DNS app-primary.namespace
err = ar.syncVirtualNode(canary, fmt.Sprintf("%s-%s", primaryName, canary.Namespace), primaryHost)
err = ar.syncVirtualNode(canary, primaryName, primaryHost)
if err != nil {
return err
}
// sync virtual node e.g. app-canary-namespace
// DNS app-canary.namespace
err = ar.syncVirtualNode(canary, fmt.Sprintf("%s-%s", canaryName, canary.Namespace), canaryHost)
err = ar.syncVirtualNode(canary, canaryName, canaryHost)
if err != nil {
return err
}
@@ -150,8 +150,8 @@ func (ar *AppMeshRouter) syncVirtualNode(canary *flaggerv1.Canary, name string,
// syncVirtualService creates or updates a virtual service
func (ar *AppMeshRouter) syncVirtualService(canary *flaggerv1.Canary, name string) error {
targetName := canary.Spec.TargetRef.Name
canaryVirtualNode := fmt.Sprintf("%s-canary-%s", targetName, canary.Namespace)
primaryVirtualNode := fmt.Sprintf("%s-primary-%s", targetName, canary.Namespace)
canaryVirtualNode := fmt.Sprintf("%s-canary", targetName)
primaryVirtualNode := fmt.Sprintf("%s-primary", targetName)
// App Mesh supports only URI prefix
routePrefix := "/"
@@ -164,11 +164,11 @@ func (ar *AppMeshRouter) syncVirtualService(canary *flaggerv1.Canary, name strin
vsSpec := &appmeshv1alpha1.VirtualServiceSpec{
MeshName: canary.Spec.Service.MeshName,
VirtualRouter: &appmeshv1alpha1.VirtualRouter{
Name: fmt.Sprintf("%s-%s-router", targetName, canary.Namespace),
Name: fmt.Sprintf("%s-router", targetName),
},
Routes: []appmeshv1alpha1.Route{
{
Name: fmt.Sprintf("%s-%s-route", targetName, canary.Namespace),
Name: fmt.Sprintf("%s-route", targetName),
Http: appmeshv1alpha1.HttpRoute{
Match: appmeshv1alpha1.HttpRouteMatch{
Prefix: routePrefix,
@@ -265,10 +265,10 @@ func (ar *AppMeshRouter) GetRoutes(canary *flaggerv1.Canary) (
targets := vs.Spec.Routes[0].Http.Action.WeightedTargets
for _, t := range targets {
if t.VirtualNodeName == fmt.Sprintf("%s-canary-%s", targetName, canary.Namespace) {
if t.VirtualNodeName == fmt.Sprintf("%s-canary", targetName) {
canaryWeight = int(t.Weight)
}
if t.VirtualNodeName == fmt.Sprintf("%s-primary-%s", targetName, canary.Namespace) {
if t.VirtualNodeName == fmt.Sprintf("%s-primary", targetName) {
primaryWeight = int(t.Weight)
}
}
@@ -301,11 +301,11 @@ func (ar *AppMeshRouter) SetRoutes(
vsClone.Spec.Routes[0].Http.Action = appmeshv1alpha1.HttpRouteAction{
WeightedTargets: []appmeshv1alpha1.WeightedTarget{
{
VirtualNodeName: fmt.Sprintf("%s-canary-%s", targetName, canary.Namespace),
VirtualNodeName: fmt.Sprintf("%s-canary", targetName),
Weight: int64(canaryWeight),
},
{
VirtualNodeName: fmt.Sprintf("%s-primary-%s", targetName, canary.Namespace),
VirtualNodeName: fmt.Sprintf("%s-primary", targetName),
Weight: int64(primaryWeight),
},
},
+2 -2
View File
@@ -38,7 +38,7 @@ func TestAppmeshRouter_Sync(t *testing.T) {
}
// check virtual node
vnName := fmt.Sprintf("%s-%s", mocks.appmeshCanary.Spec.TargetRef.Name, mocks.appmeshCanary.Namespace)
vnName := mocks.appmeshCanary.Spec.TargetRef.Name
vn, err := router.appmeshClient.AppmeshV1alpha1().VirtualNodes("default").Get(vnName, metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())
@@ -72,7 +72,7 @@ func TestAppmeshRouter_Sync(t *testing.T) {
}
// verify
vnCanaryName := fmt.Sprintf("%s-canary-%s", mocks.appmeshCanary.Spec.TargetRef.Name, mocks.appmeshCanary.Namespace)
vnCanaryName := fmt.Sprintf("%s-canary", mocks.appmeshCanary.Spec.TargetRef.Name)
vnCanary, err := router.appmeshClient.AppmeshV1alpha1().VirtualNodes("default").Get(vnCanaryName, metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())