Skip to content

Commit cc0ee59

Browse files
jasonhawkharrisjhchabranjacjdpleiness
authored
src validation for ebs-csi drivers and VPCs (#939)
* validate ebs-csi drivers on EKS clusters * add condition for failed config * add validation for vpcs * Adds tests for validate VPC * formatting, add comment for EksVpc * fix formatting in kube test * add test for ebs-csi validation and refactor * formatting * remove commented out function signature * checks current context when using --eks flag - Before, validation ran regardless of whether current kubectl context was set to an EKS cluster or not - Now, if --eks flag is added to the command, src checks that an EKS cluster is already configured * formatting * fix ineffectual append that linter flagged * refactor * formatting * retab * Adds more robust testing for ebs csi drivers * remove test copies from kube_test * formatting * retab * add tests and refactor * improve naming conventions to be less confusing and more informative * Update internal/validate/kube/kube.go Co-authored-by: James Cotter <35706755+jac@users.noreply.github.com> * retab * more retabbing * Update internal/validate/kube/eks.go Co-authored-by: Jacob Pleiness <jdpleiness@users.noreply.github.com> * Moved/renamed Eks() function to eks file * formatting --------- Co-authored-by: Jean-Hadrien Chabran <jh@chabran.fr> Co-authored-by: James Cotter <35706755+jac@users.noreply.github.com> Co-authored-by: Jacob Pleiness <jdpleiness@users.noreply.github.com>
1 parent f7f5b1d commit cc0ee59

File tree

6 files changed

+815
-11
lines changed

6 files changed

+815
-11
lines changed

cmd/src/validate_kube.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ Examples:
4444
kubeConfig *string
4545
namespace = flagSet.String("namespace", "", "(optional) specify the kubernetes namespace to use")
4646
quiet = flagSet.Bool("quiet", false, "(optional) suppress output and return exit status only")
47+
eks = flagSet.Bool("eks", false, "(optional) check EKS cluster")
4748
)
4849

4950
if home := homedir.HomeDir(); home != "" {
@@ -79,6 +80,10 @@ Examples:
7980
options = append(options, kube.Quiet())
8081
}
8182

83+
if *eks {
84+
options = append(options, kube.GenerateAWSClients(context.Background()))
85+
}
86+
8287
return kube.Validate(context.Background(), clientSet, config, options...)
8388
}
8489

go.mod

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ go 1.18
44

55
require (
66
cloud.google.com/go/storage v1.28.0
7+
github.com/aws/aws-sdk-go-v2/config v1.18.13
8+
github.com/aws/aws-sdk-go-v2/service/eks v1.27.3
79
github.com/creack/goselect v0.1.2
810
github.com/derision-test/glock v0.0.0-20210316032053-f5b74334bb29
911
github.com/dineshappavoo/basex v0.0.0-20170425072625-481a6f6dc663
@@ -44,6 +46,19 @@ require (
4446
github.com/Masterminds/sprig v2.15.0+incompatible // indirect
4547
github.com/alecthomas/chroma v0.10.0 // indirect
4648
github.com/aokoli/goutils v1.0.1 // indirect
49+
github.com/aws/aws-sdk-go-v2 v1.17.5 // indirect
50+
github.com/aws/aws-sdk-go-v2/credentials v1.13.13 // indirect
51+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22 // indirect
52+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.29 // indirect
53+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.23 // indirect
54+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29 // indirect
55+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.86.0 // indirect
56+
github.com/aws/aws-sdk-go-v2/service/iam v1.19.3 // indirect
57+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22 // indirect
58+
github.com/aws/aws-sdk-go-v2/service/sso v1.12.2 // indirect
59+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.2 // indirect
60+
github.com/aws/aws-sdk-go-v2/service/sts v1.18.3 // indirect
61+
github.com/aws/smithy-go v1.13.5 // indirect
4762
github.com/aymerick/douceur v0.2.0 // indirect
4863
github.com/bufbuild/buf v1.4.0 // indirect
4964
github.com/charmbracelet/glamour v0.5.0 // indirect
@@ -81,6 +96,7 @@ require (
8196
github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a // indirect
8297
github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f // indirect
8398
github.com/jhump/protoreflect v1.12.1-0.20220417024638-438db461d753 // indirect
99+
github.com/jmespath/go-jmespath v0.4.0 // indirect
84100
github.com/josharian/intern v1.0.0 // indirect
85101
github.com/json-iterator/go v1.1.12 // indirect
86102
github.com/klauspost/compress v1.15.1 // indirect

go.sum

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,42 @@ github.com/aokoli/goutils v1.0.1 h1:7fpzNGoJ3VA8qcrm++XEE1QUe0mIwNeLa02Nwq7RDkg=
3131
github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
3232
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
3333
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
34+
github.com/aws/aws-sdk-go-v2 v1.17.4 h1:wyC6p9Yfq6V2y98wfDsj6OnNQa4w2BLGCLIxzNhwOGY=
35+
github.com/aws/aws-sdk-go-v2 v1.17.4/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
36+
github.com/aws/aws-sdk-go-v2 v1.17.5 h1:TzCUW1Nq4H8Xscph5M/skINUitxM5UBAyvm2s7XBzL4=
37+
github.com/aws/aws-sdk-go-v2 v1.17.5/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
38+
github.com/aws/aws-sdk-go-v2/config v1.18.13 h1:v0xlYqbO6/EVlM8tUn2QEOA7btQxcgidEq2JRDBPTho=
39+
github.com/aws/aws-sdk-go-v2/config v1.18.13/go.mod h1:r39wGSZB7wPDW1i54JyQXUpc5KsWjh5z/3S5D9eCqDg=
40+
github.com/aws/aws-sdk-go-v2/credentials v1.13.13 h1:zw1KAc1kl00NYd3ofVmFrb09qnYlSQMeh+fmlQRAihI=
41+
github.com/aws/aws-sdk-go-v2/credentials v1.13.13/go.mod h1:DW9nbIIF9MrIja0cBQrUpeWYQMSlNmP8fevLUyF9W38=
42+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22 h1:3aMfcTmoXtTZnaT86QlVaYh+BRMbvrrmZwIQ5jWqCZQ=
43+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22/go.mod h1:YGSIJyQ6D6FjKMQh16hVFSIUD54L4F7zTGePqYMYYJU=
44+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28 h1:r+XwaCLpIvCKjBIYy/HVZujQS9tsz5ohHG3ZIe0wKoE=
45+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28/go.mod h1:3lwChorpIM/BhImY/hy+Z6jekmN92cXGPI1QJasVPYY=
46+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.29 h1:9/aKwwus0TQxppPXFmf010DFrE+ssSbzroLVYINA+xE=
47+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.29/go.mod h1:Dip3sIGv485+xerzVv24emnjX5Sg88utCL8fwGmCeWg=
48+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22 h1:7AwGYXDdqRQYsluvKFmWoqpcOQJ4bH634SkYf3FNj/A=
49+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22/go.mod h1:EqK7gVrIGAHyZItrD1D8B0ilgwMD1GiWAmbU4u/JHNk=
50+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.23 h1:b/Vn141DBuLVgXbhRWIrl9g+ww7G+ScV5SzniWR13jQ=
51+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.23/go.mod h1:mr6c4cHC+S/MMkrjtSlG4QA36kOznDep+0fga5L/fGQ=
52+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29 h1:J4xhFd6zHhdF9jPP0FQJ6WknzBboGMBNjKOv4iTuw4A=
53+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29/go.mod h1:TwuqRBGzxjQJIwH16/fOZodwXt2Zxa9/cwJC5ke4j7s=
54+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.86.0 h1:4dt0Mg5veHbMLcA2JAR9LDxvqXjtG0ZLQdxZG/2wHy4=
55+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.86.0/go.mod h1:jK4MhMMe6HIe4qnjGaQqQQECcsxRZ0q86oCq06T8IEE=
56+
github.com/aws/aws-sdk-go-v2/service/eks v1.27.3 h1:jlh0AJVhauqSGaiwRJx4j0LNBGEAaGn46sA1XJyTj0E=
57+
github.com/aws/aws-sdk-go-v2/service/eks v1.27.3/go.mod h1:S30WtE6uWErcppqG9Rl03MATEFYsm0vnDyxPUKmmCqU=
58+
github.com/aws/aws-sdk-go-v2/service/iam v1.19.3 h1:vaDXu/p/5RNK++B2pqKS3hwsWGxsVjJJqPaAMg0OkiM=
59+
github.com/aws/aws-sdk-go-v2/service/iam v1.19.3/go.mod h1:F5Xt96+AfAiyMpRXHy9CKafE/KULVwj7MwgZ0a4row4=
60+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22 h1:LjFQf8hFuMO22HkV5VWGLBvmCLBCLPivUAmpdpnp4Vs=
61+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22/go.mod h1:xt0Au8yPIwYXf/GYPy/vl4K3CgwhfQMYbrH7DlUUIws=
62+
github.com/aws/aws-sdk-go-v2/service/sso v1.12.2 h1:EN102fWY7hI5u/2FPheTrwwMHkSXfl49RYkeEnJsrCU=
63+
github.com/aws/aws-sdk-go-v2/service/sso v1.12.2/go.mod h1:IgV8l3sj22nQDd5qcAGY0WenwCzCphqdbFOpfktZPrI=
64+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.2 h1:f1lmlce7r13CX1BPyPqt9oh/H+uqOWc9367lDoGGwNQ=
65+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.2/go.mod h1:O1YSOg3aekZibh2SngvCRRG+cRHKKlYgxf/JBF/Kr/k=
66+
github.com/aws/aws-sdk-go-v2/service/sts v1.18.3 h1:s49mSnsBZEXjfGBkRfmK+nPqzT7Lt3+t2SmAKNyHblw=
67+
github.com/aws/aws-sdk-go-v2/service/sts v1.18.3/go.mod h1:b+psTJn33Q4qGoDaM7ZiOVVG8uVjGI6HaZ8WBHdgDgU=
68+
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
69+
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
3470
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
3571
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
3672
github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g=
@@ -175,6 +211,7 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
175211
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
176212
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
177213
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
214+
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
178215
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
179216
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
180217
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
@@ -237,6 +274,10 @@ github.com/jhump/protoreflect v1.12.1-0.20220417024638-438db461d753 h1:uFlcJKZPL
237274
github.com/jhump/protoreflect v1.12.1-0.20220417024638-438db461d753/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
238275
github.com/jig/teereadcloser v0.0.0-20181016160506-953720c48e05 h1:dSwwtWuwMyarzsbVWOq4QJ8xVy9wgcNomvWyGtrKe+E=
239276
github.com/jig/teereadcloser v0.0.0-20181016160506-953720c48e05/go.mod h1:sRUFlj+HCejvoCRpuhU0EYnNw5FG+YJpz8UFfCf0F2U=
277+
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
278+
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
279+
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
280+
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
240281
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
241282
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
242283
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=

0 commit comments

Comments
 (0)