Skip to content

Commit

Permalink
WIP print the state of relevant aws resources during validation
Browse files Browse the repository at this point in the history
  • Loading branch information
rifelpet committed Nov 4, 2020
1 parent 7fa0251 commit 1d24b56
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 0 deletions.
4 changes: 4 additions & 0 deletions cmd/kops/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,11 @@ go_library(
"//util/pkg/vfs:go_default_library",
"//vendor/github.com/aws/amazon-ec2-instance-selector/v2/pkg/cli:go_default_library",
"//vendor/github.com/aws/amazon-ec2-instance-selector/v2/pkg/selector:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/service/elbv2:go_default_library",
"//vendor/github.com/blang/semver/v4:go_default_library",
"//vendor/github.com/davecgh/go-spew/spew:go_default_library",
"//vendor/github.com/ghodss/yaml:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra/doc:go_default_library",
Expand Down
75 changes: 75 additions & 0 deletions cmd/kops/validate_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,14 @@ import (
"time"

"k8s.io/kops/upup/pkg/fi/cloudup"
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
"k8s.io/kubectl/pkg/util/i18n"
"k8s.io/kubectl/pkg/util/templates"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/elbv2"
"github.com/davecgh/go-spew/spew"
"github.com/ghodss/yaml"
"github.com/spf13/cobra"
v1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -166,6 +171,75 @@ func RunValidateCluster(ctx context.Context, f *util.Factory, cmd *cobra.Command
return nil, fmt.Errorf("wait time exceeded during validation")
}

awsCloud := cloud.(awsup.AWSCloud)
fmt.Println("LoadBalancers and Listeners:")
awsCloud.ELBV2().DescribeLoadBalancersPages(&elbv2.DescribeLoadBalancersInput{}, func(p *elbv2.DescribeLoadBalancersOutput, b bool) bool {
if len(p.LoadBalancers) == 0 {
return false
}
for _, lb := range p.LoadBalancers {
spew.Dump(lb)

awsCloud.ELBV2().DescribeListenersPages(&elbv2.DescribeListenersInput{
LoadBalancerArn: lb.LoadBalancerArn,
}, func(p *elbv2.DescribeListenersOutput, b bool) bool {
if len(p.Listeners) == 0 {
return false
}
spew.Dump(p.Listeners)
return true
})

}

return true
})
fmt.Println("TargetGroups:")
awsCloud.ELBV2().DescribeTargetGroupsPages(&elbv2.DescribeTargetGroupsInput{}, func(p *elbv2.DescribeTargetGroupsOutput, b bool) bool {
if len(p.TargetGroups) == 0 {
return false
}
for _, tg := range p.TargetGroups {
spew.Dump(tg)
resp, err := awsCloud.ELBV2().DescribeTargetHealth(&elbv2.DescribeTargetHealthInput{TargetGroupArn: tg.TargetGroupArn})
if err != nil {
return false
}
spew.Dump(resp)
}
return true
})
fmt.Println("SecurityGroups:")
awsCloud.EC2().DescribeSecurityGroupsPages(&ec2.DescribeSecurityGroupsInput{
Filters: []*ec2.Filter{
{
Name: aws.String("tag:KubernetesCluster"),
Values: []*string{aws.String(cluster.ObjectMeta.Name)},
},
},
}, func(p *ec2.DescribeSecurityGroupsOutput, b bool) bool {
if len(p.SecurityGroups) == 0 {
return false
}
spew.Dump(p.SecurityGroups)
return true
})
fmt.Println("Instances:")
awsCloud.EC2().DescribeInstancesPages(&ec2.DescribeInstancesInput{
Filters: []*ec2.Filter{
{
Name: aws.String("tag:KubernetesCluster"),
Values: []*string{aws.String(cluster.ObjectMeta.Name)},
},
},
}, func(p *ec2.DescribeInstancesOutput, b bool) bool {
if len(p.Reservations) == 0 {
return false
}
spew.Dump(p.Reservations)
return true
})

result, err := validator.Validate()
if err != nil {
consecutive = 0
Expand Down Expand Up @@ -225,6 +299,7 @@ func RunValidateCluster(ctx context.Context, f *util.Factory, cmd *cobra.Command
return nil, fmt.Errorf("cluster not yet healthy")
}
}

}
}

Expand Down
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ require (
github.com/chai2010/gettext-go v0.0.0-20170215093142-bf70f2a70fb1 // indirect
github.com/client9/misspell v0.3.4
github.com/coreos/etcd v3.3.17+incompatible
github.com/davecgh/go-spew v1.1.1
github.com/denverdino/aliyungo v0.0.0-20191128015008-acd8035bbb1d
github.com/digitalocean/godo v1.19.0
github.com/docker/engine-api v0.0.0-20160509170047-dea108d3aa0c
Expand Down
9 changes: 9 additions & 0 deletions pkg/model/awsmodel/api_loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,15 @@ func (b *APILoadBalancerBuilder) Build(c *fi.ModelBuilderContext) error {
ToPort: fi.Int64(443),
CIDR: fi.String(b.Cluster.Spec.NetworkCIDR),
})
c.AddTask(&awstasks.SecurityGroupRule{
Name: fi.String(fmt.Sprintf("tcp-elb-to-master%s", suffix)),
Lifecycle: b.SecurityLifecycle,
FromPort: fi.Int64(8443),
Protocol: fi.String("tcp"),
SecurityGroup: masterGroup.Task,
ToPort: fi.Int64(8443),
CIDR: fi.String(b.Cluster.Spec.NetworkCIDR),
})
for _, cidr := range b.Cluster.Spec.AdditionalNetworkCIDRs {
c.AddTask(&awstasks.SecurityGroupRule{
Name: fi.String(fmt.Sprintf("https-lb-to-master%s-%s", suffix, cidr)),
Expand Down
1 change: 1 addition & 0 deletions vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ github.com/coreos/go-semver/semver
# github.com/cpuguy83/go-md2man/v2 v2.0.0
github.com/cpuguy83/go-md2man/v2/md2man
# github.com/davecgh/go-spew v1.1.1
## explicit
github.com/davecgh/go-spew/spew
# github.com/denverdino/aliyungo v0.0.0-20191128015008-acd8035bbb1d
## explicit
Expand Down

0 comments on commit 1d24b56

Please sign in to comment.