@@ -3,6 +3,7 @@ package cluster
33import (
44 "bytes"
55 "fmt"
6+ "github.com/mumoshu/terraform-provider-eksctl/pkg/sdk"
67 "github.com/mumoshu/terraform-provider-eksctl/pkg/sdk/api"
78 "io/ioutil"
89 "log"
@@ -12,8 +13,7 @@ import (
1213 "time"
1314
1415 "github.com/hashicorp/terraform-plugin-sdk/helper/schema"
15- "github.com/mumoshu/terraform-provider-eksctl/pkg/resource"
16- )
16+ )
1717
1818func (m * Manager ) createCluster (d * schema.ResourceData ) (* ClusterSet , error ) {
1919 id := newClusterID ()
@@ -27,6 +27,8 @@ func (m *Manager) createCluster(d *schema.ResourceData) (*ClusterSet, error) {
2727
2828 cluster := set .Cluster
2929
30+ ctx := mustNewContext (cluster )
31+
3032 if err := createVPCResourceTags (cluster , set .ClusterName ); err != nil {
3133 return nil , err
3234 }
@@ -38,27 +40,27 @@ func (m *Manager) createCluster(d *schema.ResourceData) (*ClusterSet, error) {
3840
3941 cmd .Stdin = bytes .NewReader (set .ClusterConfig )
4042
41- if err := resource .Create (cmd , d , id ); err != nil {
42- return nil , fmt .Errorf ("running `eksctl create cluster: %w: USED CLUSTER CONFIG:\n %s" , err , string (set .ClusterConfig ))
43+ if err := ctx .Create (cmd , d , id ); err != nil {
44+ return nil , fmt .Errorf ("running `eksctl create cluster` : %w: USED CLUSTER CONFIG:\n %s" , err , string (set .ClusterConfig ))
4345 }
4446
45- if err := doWriteKubeconfig (d , string (set .ClusterName ), cluster .Region ); err != nil {
47+ if err := doWriteKubeconfig (ctx , d , string (set .ClusterName ), cluster .Region ); err != nil {
4648 return nil , err
4749 }
4850
49- if err := doApplyKubernetesManifests (cluster , id ); err != nil {
51+ if err := doApplyKubernetesManifests (ctx , cluster , id ); err != nil {
5052 return nil , err
5153 }
5254
53- if err := doAttachAutoScalingGroupsToTargetGroups (set ); err != nil {
55+ if err := doAttachAutoScalingGroupsToTargetGroups (ctx , set ); err != nil {
5456 return nil , err
5557 }
5658
57- if err := doCheckPodsReadiness (cluster , id ); err != nil {
59+ if err := doCheckPodsReadiness (ctx , cluster , id ); err != nil {
5860 return nil , err
5961 }
6062
61- if err := createIAMIdentityMapping (d , cluster ); err != nil {
63+ if err := createIAMIdentityMapping (ctx , d , cluster ); err != nil {
6264 return nil , err
6365 }
6466
@@ -79,7 +81,7 @@ func (m *Manager) doPlanKubeconfig(d *DiffReadWrite) error {
7981 return nil
8082}
8183
82- func doWriteKubeconfig (d ReadWrite , clusterName , region string ) error {
84+ func doWriteKubeconfig (ctx * sdk. Context , d ReadWrite , clusterName , region string ) error {
8385 var path string
8486
8587 if v := d .Get (KeyKubeconfigPath ); v != nil {
@@ -106,8 +108,8 @@ func doWriteKubeconfig(d ReadWrite, clusterName, region string) error {
106108 cmd .Env = append (cmd .Env , os .Environ ()... )
107109 cmd .Env = append (cmd .Env , "KUBECONFIG=" + path )
108110
109- if out , err := cmd . CombinedOutput ( ); err != nil {
110- return fmt .Errorf ("failed running %s %s: %vw: COMBINED OUTPUT:\n %s" , cmd .Path , strings .Join (cmd .Args , " " ), err , string ( out ) )
111+ if out , err := ctx . Run ( cmd ); err != nil {
112+ return fmt .Errorf ("failed running %s %s: %vw: COMBINED OUTPUT:\n %s" , cmd .Path , strings .Join (cmd .Args , " " ), err , out . Output )
111113 }
112114
113115 log .Printf ("Ran `%s %s` with KUBECONFIG=%s" , cmd .Path , strings .Join (cmd .Args , " " ), path )
@@ -139,8 +141,8 @@ func doWriteKubeconfig(d ReadWrite, clusterName, region string) error {
139141 return nil
140142}
141143
142- func createIAMIdentityMapping (d ReadWrite , cluster * Cluster ) error {
143- iams , err := runGetIAMIdentityMapping (d , cluster )
144+ func createIAMIdentityMapping (ctx * sdk. Context , d ReadWrite , cluster * Cluster ) error {
145+ iams , err := runGetIAMIdentityMapping (ctx , d , cluster )
144146 if err != nil {
145147 return fmt .Errorf ("can not get iamidentitymapping from eks cluster: %w" , err )
146148 }
@@ -155,7 +157,7 @@ func createIAMIdentityMapping(d ReadWrite, cluster *Cluster) error {
155157
156158 if d .Get (KeyIAMIdentityMapping ) != nil {
157159 values := d .Get (KeyIAMIdentityMapping ).(* schema.Set )
158- if err := runCreateIAMIdentityMapping (d , values , cluster ); err != nil {
160+ if err := runCreateIAMIdentityMapping (ctx , d , values , cluster ); err != nil {
159161 return fmt .Errorf ("creating create imaidentitymapping command: %w" , err )
160162 }
161163
@@ -167,7 +169,7 @@ func createIAMIdentityMapping(d ReadWrite, cluster *Cluster) error {
167169 return nil
168170}
169171
170- func runCreateIAMIdentityMapping (d api.Getter , s * schema.Set , cluster * Cluster ) error {
172+ func runCreateIAMIdentityMapping (ctx * sdk. Context , d api.Getter , s * schema.Set , cluster * Cluster ) error {
171173 values := s .List ()
172174 for _ , v := range values {
173175 ele := v .(map [string ]interface {})
@@ -196,7 +198,7 @@ func runCreateIAMIdentityMapping(d api.Getter, s *schema.Set, cluster *Cluster)
196198 return fmt .Errorf ("creating create imaidentitymapping command: %w" , err )
197199 }
198200
199- res , err := resource .Run (cmd )
201+ res , err := ctx .Run (cmd )
200202 if err != nil {
201203 return fmt .Errorf ("running create imaidentitymapping command: %w" , err )
202204 }
@@ -206,7 +208,7 @@ func runCreateIAMIdentityMapping(d api.Getter, s *schema.Set, cluster *Cluster)
206208 return nil
207209}
208210
209- func runDeleteIAMIdentityMapping (d api.Getter , s * schema.Set , cluster * Cluster ) error {
211+ func runDeleteIAMIdentityMapping (ctx * sdk. Context , d api.Getter , s * schema.Set , cluster * Cluster ) error {
210212 values := s .List ()
211213 for _ , v := range values {
212214 ele := v .(map [string ]interface {})
@@ -225,7 +227,7 @@ func runDeleteIAMIdentityMapping(d api.Getter, s *schema.Set, cluster *Cluster)
225227 return fmt .Errorf ("creating create imaidentitymapping command: %w" , err )
226228 }
227229
228- res , err := resource .Run (cmd )
230+ res , err := ctx .Run (cmd )
229231 if err != nil {
230232 return fmt .Errorf ("creating create-iamidentitymapping command: %w" , err )
231233 }
0 commit comments