diff --git a/kubernetes/provider.go b/kubernetes/provider.go index a5828651dc..5e9f58b667 100644 --- a/kubernetes/provider.go +++ b/kubernetes/provider.go @@ -13,6 +13,7 @@ import ( apimachineryschema "k8s.io/apimachinery/pkg/runtime/schema" kubernetes "k8s.io/client-go/kubernetes" _ "k8s.io/client-go/plugin/pkg/client/auth" + "k8s.io/client-go/rest" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" @@ -186,9 +187,43 @@ func Provider() terraform.ResourceProvider { return p } -type KubeClientsets struct { - MainClientset *kubernetes.Clientset - AggregatorClientset *aggregator.Clientset +type KubeClientsets interface { + MainClientset() (*kubernetes.Clientset, error) + AggregatorClientset() (*aggregator.Clientset, error) +} + +type kubeClientsets struct { + config *rest.Config + mainClientset *kubernetes.Clientset + aggregatorClientset *aggregator.Clientset +} + +func (k kubeClientsets) MainClientset() (*kubernetes.Clientset, error) { + if k.mainClientset != nil { + return k.mainClientset, nil + } + if k.config != nil { + kc, err := kubernetes.NewForConfig(k.config) + if err != nil { + return nil, fmt.Errorf("Failed to configure client: %s", err) + } + k.mainClientset = kc + } + return k.mainClientset, nil +} + +func (k kubeClientsets) AggregatorClientset() (*aggregator.Clientset, error) { + if k.aggregatorClientset != nil { + return k.aggregatorClientset, nil + } + if k.config != nil { + ac, err := aggregator.NewForConfig(k.config) + if err != nil { + return nil, fmt.Errorf("Failed to configure client: %s", err) + } + k.aggregatorClientset = ac + } + return k.aggregatorClientset, nil } func providerConfigure(d *schema.ResourceData, terraformVersion string) (interface{}, error) { @@ -199,7 +234,11 @@ func providerConfigure(d *schema.ResourceData, terraformVersion string) (interfa return nil, err } if cfg == nil { - return nil, fmt.Errorf("Failed to initialize config") + // This is a TEMPORARY measure to work around https://github.com/hashicorp/terraform/issues/24055 + // IMPORTANT: this will NOT enable a workaround of issue: https://github.com/hashicorp/terraform/issues/4149 + // IMPORTANT: if the supplied configuration is incomplete or invalid + ///IMPORTANT: provider operations will fail or attempt to connect to localhost endpoints + cfg = &restclient.Config{} } cfg.UserAgent = fmt.Sprintf("HashiCorp/1.0 Terraform/%s", terraformVersion) @@ -211,17 +250,12 @@ func providerConfigure(d *schema.ResourceData, terraformVersion string) (interfa } } - k, err := kubernetes.NewForConfig(cfg) - if err != nil { - return nil, fmt.Errorf("Failed to configure: %s", err) + m := kubeClientsets{ + config: cfg, + mainClientset: nil, + aggregatorClientset: nil, } - - a, err := aggregator.NewForConfig(cfg) - if err != nil { - return nil, fmt.Errorf("Failed to configure: %s", err) - } - - return &KubeClientsets{k, a}, nil + return m, nil } func initializeConfiguration(d *schema.ResourceData) (*restclient.Config, error) { @@ -321,7 +355,8 @@ func initializeConfiguration(d *schema.ResourceData) (*restclient.Config, error) cc := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loader, overrides) cfg, err := cc.ClientConfig() if err != nil { - return nil, fmt.Errorf("Failed to initialize config: %s", err) + log.Printf("[WARN] Invalid provider configuration was supplied. Provider operations likely to fail.") + return nil, nil } log.Printf("[INFO] Successfully initialized config") diff --git a/kubernetes/provider_test.go b/kubernetes/provider_test.go index 69fbd6069f..6ebdcbd847 100644 --- a/kubernetes/provider_test.go +++ b/kubernetes/provider_test.go @@ -158,12 +158,11 @@ func testAccPreCheck(t *testing.T) { os.Getenv("KUBE_CTX") != "" || os.Getenv("KUBECONFIG") != "" || os.Getenv("KUBE_CONFIG") != "" + hasUserCredentials := os.Getenv("KUBE_USER") != "" && os.Getenv("KUBE_PASSWORD") != "" + hasClientCert := os.Getenv("KUBE_CLIENT_CERT_DATA") != "" && os.Getenv("KUBE_CLIENT_KEY_DATA") != "" hasStaticCfg := (os.Getenv("KUBE_HOST") != "" && - os.Getenv("KUBE_USER") != "" && - os.Getenv("KUBE_PASSWORD") != "" && - os.Getenv("KUBE_CLIENT_CERT_DATA") != "" && - os.Getenv("KUBE_CLIENT_KEY_DATA") != "" && - os.Getenv("KUBE_CLUSTER_CA_CERT_DATA") != "") + os.Getenv("KUBE_CLUSTER_CA_CERT_DATA") != "") && + (hasUserCredentials || hasClientCert || os.Getenv("KUBE_TOKEN") != "") if !hasFileCfg && !hasStaticCfg { t.Fatalf("File config (KUBE_CTX_AUTH_INFO and KUBE_CTX_CLUSTER) or static configuration"+ @@ -205,7 +204,10 @@ func getClusterVersion() (*gversion.Version, error) { return nil, fmt.Errorf("Provider not initialized, unable to check cluster version") } - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return nil, err + } serverVersion, err := conn.ServerVersion() if err != nil { @@ -306,7 +308,11 @@ func getFirstNode() (api.Node, error) { if meta == nil { return api.Node{}, errors.New("Provider not initialized, unable to get cluster node") } - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return api.Node{}, err + } + resp, err := conn.CoreV1().Nodes().List(metav1.ListOptions{}) if err != nil { return api.Node{}, err diff --git a/kubernetes/resource_kubernetes_api_service.go b/kubernetes/resource_kubernetes_api_service.go index 7b1452e53a..faafe0e247 100644 --- a/kubernetes/resource_kubernetes_api_service.go +++ b/kubernetes/resource_kubernetes_api_service.go @@ -101,7 +101,10 @@ func resourceKubernetesAPIService() *schema.Resource { } func resourceKubernetesAPIServiceCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).AggregatorClientset + conn, err := meta.(KubeClientsets).AggregatorClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) svc := v1.APIService{ @@ -120,7 +123,10 @@ func resourceKubernetesAPIServiceCreate(d *schema.ResourceData, meta interface{} } func resourceKubernetesAPIServiceRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).AggregatorClientset + conn, err := meta.(KubeClientsets).AggregatorClientset() + if err != nil { + return err + } name := d.Id() @@ -147,7 +153,10 @@ func resourceKubernetesAPIServiceRead(d *schema.ResourceData, meta interface{}) } func resourceKubernetesAPIServiceUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).AggregatorClientset + conn, err := meta.(KubeClientsets).AggregatorClientset() + if err != nil { + return err + } name := d.Id() @@ -174,12 +183,15 @@ func resourceKubernetesAPIServiceUpdate(d *schema.ResourceData, meta interface{} } func resourceKubernetesAPIServiceDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).AggregatorClientset + conn, err := meta.(KubeClientsets).AggregatorClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Deleting API service: %#v", name) - err := conn.ApiregistrationV1().APIServices().Delete(name, &meta_v1.DeleteOptions{}) + err = conn.ApiregistrationV1().APIServices().Delete(name, &meta_v1.DeleteOptions{}) if err != nil { return err } @@ -191,12 +203,15 @@ func resourceKubernetesAPIServiceDelete(d *schema.ResourceData, meta interface{} } func resourceKubernetesAPIServiceExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).AggregatorClientset + conn, err := meta.(KubeClientsets).AggregatorClientset() + if err != nil { + return false, err + } name := d.Id() log.Printf("[INFO] Checking API service %s", name) - _, err := conn.ApiregistrationV1().APIServices().Get(name, meta_v1.GetOptions{}) + _, err = conn.ApiregistrationV1().APIServices().Get(name, meta_v1.GetOptions{}) if err != nil { if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 { return false, nil diff --git a/kubernetes/resource_kubernetes_api_service_test.go b/kubernetes/resource_kubernetes_api_service_test.go index 2f0ab0c921..4b4cc2d76c 100644 --- a/kubernetes/resource_kubernetes_api_service_test.go +++ b/kubernetes/resource_kubernetes_api_service_test.go @@ -136,7 +136,10 @@ func TestAccKubernetesAPIService_importBasic(t *testing.T) { } func testAccCheckKubernetesAPIServiceDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).AggregatorClientset + conn, err := testAccProvider.Meta().(KubeClientsets).AggregatorClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_api_service" { @@ -163,11 +166,14 @@ func testAccCheckKubernetesAPIServiceExists(n string) resource.TestCheckFunc { return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).AggregatorClientset + conn, err := testAccProvider.Meta().(KubeClientsets).AggregatorClientset() + if err != nil { + return err + } name := rs.Primary.ID - _, err := conn.ApiregistrationV1().APIServices().Get(name, meta_v1.GetOptions{}) + _, err = conn.ApiregistrationV1().APIServices().Get(name, meta_v1.GetOptions{}) if err != nil { return err } diff --git a/kubernetes/resource_kubernetes_cluster_role.go b/kubernetes/resource_kubernetes_cluster_role.go index 1a9e4bd8f5..ad6d7bea41 100644 --- a/kubernetes/resource_kubernetes_cluster_role.go +++ b/kubernetes/resource_kubernetes_cluster_role.go @@ -38,7 +38,10 @@ func resourceKubernetesClusterRole() *schema.Resource { } func resourceKubernetesClusterRoleCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) cRole := api.ClusterRole{ @@ -57,7 +60,10 @@ func resourceKubernetesClusterRoleCreate(d *schema.ResourceData, meta interface{ } func resourceKubernetesClusterRoleUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() ops := patchMetadata("metadata.0.", "/metadata/", d) @@ -81,7 +87,10 @@ func resourceKubernetesClusterRoleUpdate(d *schema.ResourceData, meta interface{ } func resourceKubernetesClusterRoleRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Reading cluster role %s", name) @@ -105,11 +114,14 @@ func resourceKubernetesClusterRoleRead(d *schema.ResourceData, meta interface{}) } func resourceKubernetesClusterRoleDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Deleting cluster role: %#v", name) - err := conn.RbacV1().ClusterRoles().Delete(name, &metav1.DeleteOptions{}) + err = conn.RbacV1().ClusterRoles().Delete(name, &metav1.DeleteOptions{}) if err != nil { return err } @@ -120,11 +132,14 @@ func resourceKubernetesClusterRoleDelete(d *schema.ResourceData, meta interface{ } func resourceKubernetesClusterRoleExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } name := d.Id() log.Printf("[INFO] Checking cluster role %s", name) - _, err := conn.RbacV1().ClusterRoles().Get(name, metav1.GetOptions{}) + _, err = conn.RbacV1().ClusterRoles().Get(name, metav1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { return false, nil diff --git a/kubernetes/resource_kubernetes_cluster_role_binding.go b/kubernetes/resource_kubernetes_cluster_role_binding.go index 3e3c126d52..e53a993f98 100644 --- a/kubernetes/resource_kubernetes_cluster_role_binding.go +++ b/kubernetes/resource_kubernetes_cluster_role_binding.go @@ -48,7 +48,10 @@ func resourceKubernetesClusterRoleBinding() *schema.Resource { } func resourceKubernetesClusterRoleBindingCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) binding := &api.ClusterRoleBinding{ @@ -57,7 +60,7 @@ func resourceKubernetesClusterRoleBindingCreate(d *schema.ResourceData, meta int Subjects: expandRBACSubjects(d.Get("subject").([]interface{})), } log.Printf("[INFO] Creating new ClusterRoleBinding: %#v", binding) - binding, err := conn.RbacV1().ClusterRoleBindings().Create(binding) + binding, err = conn.RbacV1().ClusterRoleBindings().Create(binding) if err != nil { return err @@ -69,7 +72,10 @@ func resourceKubernetesClusterRoleBindingCreate(d *schema.ResourceData, meta int } func resourceKubernetesClusterRoleBindingRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Reading ClusterRoleBinding %s", name) @@ -103,7 +109,10 @@ func resourceKubernetesClusterRoleBindingRead(d *schema.ResourceData, meta inter } func resourceKubernetesClusterRoleBindingUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() @@ -128,11 +137,14 @@ func resourceKubernetesClusterRoleBindingUpdate(d *schema.ResourceData, meta int } func resourceKubernetesClusterRoleBindingDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Deleting ClusterRoleBinding: %#v", name) - err := conn.RbacV1().ClusterRoleBindings().Delete(name, &meta_v1.DeleteOptions{}) + err = conn.RbacV1().ClusterRoleBindings().Delete(name, &meta_v1.DeleteOptions{}) if err != nil { return err } @@ -143,11 +155,14 @@ func resourceKubernetesClusterRoleBindingDelete(d *schema.ResourceData, meta int } func resourceKubernetesClusterRoleBindingExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } name := d.Id() log.Printf("[INFO] Checking ClusterRoleBinding %s", name) - _, err := conn.RbacV1().ClusterRoleBindings().Get(name, meta_v1.GetOptions{}) + _, err = conn.RbacV1().ClusterRoleBindings().Get(name, meta_v1.GetOptions{}) if err != nil { if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 { return false, nil diff --git a/kubernetes/resource_kubernetes_cluster_role_binding_test.go b/kubernetes/resource_kubernetes_cluster_role_binding_test.go index f0ba72a81e..87c481d18f 100644 --- a/kubernetes/resource_kubernetes_cluster_role_binding_test.go +++ b/kubernetes/resource_kubernetes_cluster_role_binding_test.go @@ -299,7 +299,10 @@ func TestAccKubernetesClusterRoleBindingUpdatePatchOperationsOrderWithRemovals(t } func testAccCheckKubernetesClusterRoleBindingDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_cluster_role_binding" { @@ -324,7 +327,11 @@ func testAccCheckKubernetesClusterRoleBindingExists(n string, obj *api.ClusterRo return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + name := rs.Primary.ID resp, err := conn.RbacV1().ClusterRoleBindings().Get(name, meta_v1.GetOptions{}) if err != nil { diff --git a/kubernetes/resource_kubernetes_cluster_role_test.go b/kubernetes/resource_kubernetes_cluster_role_test.go index a04557019f..15fab2e35f 100644 --- a/kubernetes/resource_kubernetes_cluster_role_test.go +++ b/kubernetes/resource_kubernetes_cluster_role_test.go @@ -151,7 +151,11 @@ func TestAccKubernetesClusterRoleUpdatePatchOperationsOrderWithRemovals(t *testi } func testAccCheckKubernetesClusterRoleDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_cluster_role" { continue @@ -172,7 +176,11 @@ func testAccCheckKubernetesClusterRoleExists(n string, obj *api.ClusterRole) res if !ok { return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + out, err := conn.RbacV1().ClusterRoles().Get(rs.Primary.ID, meta_v1.GetOptions{}) if err != nil { return err diff --git a/kubernetes/resource_kubernetes_config_map.go b/kubernetes/resource_kubernetes_config_map.go index 12dc1872aa..8f552d37c3 100644 --- a/kubernetes/resource_kubernetes_config_map.go +++ b/kubernetes/resource_kubernetes_config_map.go @@ -40,7 +40,10 @@ func resourceKubernetesConfigMap() *schema.Resource { } func resourceKubernetesConfigMapCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) cfgMap := api.ConfigMap{ @@ -60,7 +63,10 @@ func resourceKubernetesConfigMapCreate(d *schema.ResourceData, meta interface{}) } func resourceKubernetesConfigMapRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -85,7 +91,10 @@ func resourceKubernetesConfigMapRead(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesConfigMapUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -122,7 +131,10 @@ func resourceKubernetesConfigMapUpdate(d *schema.ResourceData, meta interface{}) } func resourceKubernetesConfigMapDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -141,7 +153,10 @@ func resourceKubernetesConfigMapDelete(d *schema.ResourceData, meta interface{}) } func resourceKubernetesConfigMapExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_config_map_test.go b/kubernetes/resource_kubernetes_config_map_test.go index 07777a0740..6fa136d938 100644 --- a/kubernetes/resource_kubernetes_config_map_test.go +++ b/kubernetes/resource_kubernetes_config_map_test.go @@ -235,7 +235,10 @@ func testAccCheckConfigMapData(m *api.ConfigMap, expected map[string]string) res } func testAccCheckKubernetesConfigMapDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_config_map" { @@ -263,7 +266,11 @@ func testAccCheckKubernetesConfigMapExists(n string, obj *api.ConfigMap) resourc return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + namespace, name, err := idParts(rs.Primary.ID) if err != nil { return err diff --git a/kubernetes/resource_kubernetes_cron_job.go b/kubernetes/resource_kubernetes_cron_job.go index 3ec9ade31d..0225b9a9b0 100644 --- a/kubernetes/resource_kubernetes_cron_job.go +++ b/kubernetes/resource_kubernetes_cron_job.go @@ -43,7 +43,10 @@ func resourceKubernetesCronJob() *schema.Resource { } func resourceKubernetesCronJobCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandCronJobSpec(d.Get("spec").([]interface{})) @@ -70,7 +73,10 @@ func resourceKubernetesCronJobCreate(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesCronJobUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, _, err := idParts(d.Id()) if err != nil { @@ -102,7 +108,10 @@ func resourceKubernetesCronJobUpdate(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesCronJobRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -158,7 +167,10 @@ func resourceKubernetesCronJobRead(d *schema.ResourceData, meta interface{}) err } func resourceKubernetesCronJobDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -194,7 +206,10 @@ func resourceKubernetesCronJobDelete(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesCronJobExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_cron_job_test.go b/kubernetes/resource_kubernetes_cron_job_test.go index 0bb86e7299..fc05a52f24 100644 --- a/kubernetes/resource_kubernetes_cron_job_test.go +++ b/kubernetes/resource_kubernetes_cron_job_test.go @@ -112,7 +112,10 @@ func TestAccKubernetesCronJob_extra(t *testing.T) { } func testAccCheckKubernetesCronJobDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_cron_job" { @@ -142,7 +145,10 @@ func testAccCheckKubernetesCronJobExists(n string, obj *v1beta1.CronJob) resourc return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_daemonset.go b/kubernetes/resource_kubernetes_daemonset.go index 25aab7b6fb..32d935a95b 100644 --- a/kubernetes/resource_kubernetes_daemonset.go +++ b/kubernetes/resource_kubernetes_daemonset.go @@ -117,7 +117,10 @@ func resourceKubernetesDaemonSet() *schema.Resource { } func resourceKubernetesDaemonSetCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandDaemonSetSpec(d.Get("spec").([]interface{})) @@ -145,7 +148,10 @@ func resourceKubernetesDaemonSetCreate(d *schema.ResourceData, meta interface{}) } func resourceKubernetesDaemonSetUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -187,7 +193,10 @@ func resourceKubernetesDaemonSetUpdate(d *schema.ResourceData, meta interface{}) } func resourceKubernetesDaemonSetRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -225,7 +234,10 @@ func resourceKubernetesDaemonSetRead(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesDaemonSetDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -245,7 +257,10 @@ func resourceKubernetesDaemonSetDelete(d *schema.ResourceData, meta interface{}) } func resourceKubernetesDaemonSetExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_daemonset_test.go b/kubernetes/resource_kubernetes_daemonset_test.go index 66a78538ee..e710d61946 100644 --- a/kubernetes/resource_kubernetes_daemonset_test.go +++ b/kubernetes/resource_kubernetes_daemonset_test.go @@ -266,7 +266,10 @@ func TestAccKubernetesDaemonSet_with_tolerations_unset_toleration_seconds(t *tes } func testAccCheckKubernetesDaemonSetDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_daemonset" { @@ -296,7 +299,10 @@ func testAccCheckKubernetesDaemonSetExists(n string, obj *appsv1.DaemonSet) reso return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_deployment.go b/kubernetes/resource_kubernetes_deployment.go index c1772a4fef..92e246be20 100644 --- a/kubernetes/resource_kubernetes_deployment.go +++ b/kubernetes/resource_kubernetes_deployment.go @@ -195,7 +195,10 @@ func resourceKubernetesDeployment() *schema.Resource { } func resourceKubernetesDeploymentCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandDeploymentSpec(d.Get("spec").([]interface{})) @@ -231,7 +234,10 @@ func resourceKubernetesDeploymentCreate(d *schema.ResourceData, meta interface{} } func resourceKubernetesDeploymentUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -272,7 +278,10 @@ func resourceKubernetesDeploymentUpdate(d *schema.ResourceData, meta interface{} } func resourceKubernetesDeploymentRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -306,7 +315,10 @@ func resourceKubernetesDeploymentRead(d *schema.ResourceData, meta interface{}) } func resourceKubernetesDeploymentDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -327,7 +339,10 @@ func resourceKubernetesDeploymentDelete(d *schema.ResourceData, meta interface{} } func resourceKubernetesDeploymentExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_deployment_test.go b/kubernetes/resource_kubernetes_deployment_test.go index ec2c55d9a6..e208e32d07 100644 --- a/kubernetes/resource_kubernetes_deployment_test.go +++ b/kubernetes/resource_kubernetes_deployment_test.go @@ -849,7 +849,10 @@ func TestAccKubernetesDeployment_config_with_automount_service_account_token(t * } func testAccCheckKubernetesDeploymentDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_deployment" { @@ -879,7 +882,10 @@ func testAccCheckKubernetesDeploymentExists(n string, obj *api.Deployment) resou return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_endpoints.go b/kubernetes/resource_kubernetes_endpoints.go index f351e401ad..f387561559 100644 --- a/kubernetes/resource_kubernetes_endpoints.go +++ b/kubernetes/resource_kubernetes_endpoints.go @@ -36,7 +36,10 @@ func resourceKubernetesEndpoints() *schema.Resource { } func resourceKubernetesEndpointsCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) ep := api.Endpoints{ @@ -55,7 +58,10 @@ func resourceKubernetesEndpointsCreate(d *schema.ResourceData, meta interface{}) } func resourceKubernetesEndpointsRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -85,7 +91,10 @@ func resourceKubernetesEndpointsRead(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesEndpointsUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -116,7 +125,10 @@ func resourceKubernetesEndpointsUpdate(d *schema.ResourceData, meta interface{}) } func resourceKubernetesEndpointsDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -134,7 +146,10 @@ func resourceKubernetesEndpointsDelete(d *schema.ResourceData, meta interface{}) } func resourceKubernetesEndpointsExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_endpoints_test.go b/kubernetes/resource_kubernetes_endpoints_test.go index 442212e619..135c568056 100644 --- a/kubernetes/resource_kubernetes_endpoints_test.go +++ b/kubernetes/resource_kubernetes_endpoints_test.go @@ -275,7 +275,10 @@ func testAccCheckEndpointSubsets(svc *api.Endpoints, expected []api.EndpointSubs } func testAccCheckKubernetesEndpointDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_endpoints" { @@ -305,7 +308,10 @@ func testAccCheckKubernetesEndpointExists(n string, obj *api.Endpoints) resource return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go b/kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go index 62a965cd52..f2b7366942 100644 --- a/kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go +++ b/kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go @@ -81,7 +81,10 @@ func resourceKubernetesHorizontalPodAutoscaler() *schema.Resource { } func resourceKubernetesHorizontalPodAutoscalerCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandHorizontalPodAutoscalerSpec(d.Get("spec").([]interface{})) @@ -106,7 +109,10 @@ func resourceKubernetesHorizontalPodAutoscalerCreate(d *schema.ResourceData, met } func resourceKubernetesHorizontalPodAutoscalerRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -135,7 +141,10 @@ func resourceKubernetesHorizontalPodAutoscalerRead(d *schema.ResourceData, meta } func resourceKubernetesHorizontalPodAutoscalerUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -163,7 +172,10 @@ func resourceKubernetesHorizontalPodAutoscalerUpdate(d *schema.ResourceData, met } func resourceKubernetesHorizontalPodAutoscalerDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -182,7 +194,10 @@ func resourceKubernetesHorizontalPodAutoscalerDelete(d *schema.ResourceData, met } func resourceKubernetesHorizontalPodAutoscalerExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_horizontal_pod_autoscaler_test.go b/kubernetes/resource_kubernetes_horizontal_pod_autoscaler_test.go index 504a352813..656c5730dd 100644 --- a/kubernetes/resource_kubernetes_horizontal_pod_autoscaler_test.go +++ b/kubernetes/resource_kubernetes_horizontal_pod_autoscaler_test.go @@ -154,7 +154,10 @@ func TestAccKubernetesHorizontalPodAutoscaler_importBasic(t *testing.T) { } func testAccCheckKubernetesHorizontalPodAutoscalerDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_horizontal_pod_autoscaler" { @@ -184,7 +187,10 @@ func testAccCheckKubernetesHorizontalPodAutoscalerExists(n string, obj *api.Hori return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_ingress.go b/kubernetes/resource_kubernetes_ingress.go index 0df710a278..1c1ede9a94 100644 --- a/kubernetes/resource_kubernetes_ingress.go +++ b/kubernetes/resource_kubernetes_ingress.go @@ -114,7 +114,10 @@ func resourceKubernetesIngress() *schema.Resource { } func resourceKubernetesIngressCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) ing := &v1beta1.Ingress{ @@ -133,7 +136,10 @@ func resourceKubernetesIngressCreate(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesIngressRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -168,7 +174,10 @@ func resourceKubernetesIngressRead(d *schema.ResourceData, meta interface{}) err } func resourceKubernetesIngressUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, _, err := idParts(d.Id()) if err != nil { @@ -197,7 +206,10 @@ func resourceKubernetesIngressUpdate(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesIngressDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -217,7 +229,10 @@ func resourceKubernetesIngressDelete(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesIngressExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_ingress_test.go b/kubernetes/resource_kubernetes_ingress_test.go index b72a117f37..d107b94835 100644 --- a/kubernetes/resource_kubernetes_ingress_test.go +++ b/kubernetes/resource_kubernetes_ingress_test.go @@ -148,7 +148,10 @@ func TestAccKubernetesIngress_InternalKey(t *testing.T) { } func testAccCheckKubernetesIngressDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_ingress" { @@ -178,7 +181,10 @@ func testAccCheckKubernetesIngressExists(n string, obj *api.Ingress) resource.Te return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_job.go b/kubernetes/resource_kubernetes_job.go index d159e79c73..fb15eedec8 100644 --- a/kubernetes/resource_kubernetes_job.go +++ b/kubernetes/resource_kubernetes_job.go @@ -47,7 +47,10 @@ func resourceKubernetesJob() *schema.Resource { } func resourceKubernetesJobCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandJobSpec(d.Get("spec").([]interface{})) @@ -74,7 +77,10 @@ func resourceKubernetesJobCreate(d *schema.ResourceData, meta interface{}) error } func resourceKubernetesJobUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -101,7 +107,10 @@ func resourceKubernetesJobUpdate(d *schema.ResourceData, meta interface{}) error } func resourceKubernetesJobRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -154,7 +163,10 @@ func resourceKubernetesJobRead(d *schema.ResourceData, meta interface{}) error { } func resourceKubernetesJobDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -190,7 +202,10 @@ func resourceKubernetesJobDelete(d *schema.ResourceData, meta interface{}) error } func resourceKubernetesJobExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_job_test.go b/kubernetes/resource_kubernetes_job_test.go index 9cb67ef444..108b4519df 100644 --- a/kubernetes/resource_kubernetes_job_test.go +++ b/kubernetes/resource_kubernetes_job_test.go @@ -65,7 +65,10 @@ func TestAccKubernetesJob_basic(t *testing.T) { } func testAccCheckKubernetesJobDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_job" { @@ -95,7 +98,10 @@ func testAccCheckKubernetesJobExists(n string, obj *api.Job) resource.TestCheckF return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_limit_range.go b/kubernetes/resource_kubernetes_limit_range.go index d7bcbef50f..5bc7a17901 100644 --- a/kubernetes/resource_kubernetes_limit_range.go +++ b/kubernetes/resource_kubernetes_limit_range.go @@ -79,7 +79,10 @@ func resourceKubernetesLimitRange() *schema.Resource { } func resourceKubernetesLimitRangeCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandLimitRangeSpec(d.Get("spec").([]interface{}), d.IsNewResource()) @@ -102,7 +105,10 @@ func resourceKubernetesLimitRangeCreate(d *schema.ResourceData, meta interface{} } func resourceKubernetesLimitRangeRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -129,7 +135,10 @@ func resourceKubernetesLimitRangeRead(d *schema.ResourceData, meta interface{}) } func resourceKubernetesLimitRangeUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -163,7 +172,10 @@ func resourceKubernetesLimitRangeUpdate(d *schema.ResourceData, meta interface{} } func resourceKubernetesLimitRangeDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -183,7 +195,10 @@ func resourceKubernetesLimitRangeDelete(d *schema.ResourceData, meta interface{} } func resourceKubernetesLimitRangeExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_limit_range_test.go b/kubernetes/resource_kubernetes_limit_range_test.go index 799f8d658f..a146b60b09 100644 --- a/kubernetes/resource_kubernetes_limit_range_test.go +++ b/kubernetes/resource_kubernetes_limit_range_test.go @@ -287,7 +287,10 @@ func TestAccKubernetesLimitRange_importBasic(t *testing.T) { } func testAccCheckKubernetesLimitRangeDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_limit_range" { @@ -317,7 +320,10 @@ func testAccCheckKubernetesLimitRangeExists(n string, obj *api.LimitRange) resou return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_namespace.go b/kubernetes/resource_kubernetes_namespace.go index 38dbc863fa..b71bf6f746 100644 --- a/kubernetes/resource_kubernetes_namespace.go +++ b/kubernetes/resource_kubernetes_namespace.go @@ -34,7 +34,10 @@ func resourceKubernetesNamespace() *schema.Resource { } func resourceKubernetesNamespaceCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) namespace := api.Namespace{ @@ -52,7 +55,10 @@ func resourceKubernetesNamespaceCreate(d *schema.ResourceData, meta interface{}) } func resourceKubernetesNamespaceRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Reading namespace %s", name) @@ -71,7 +77,10 @@ func resourceKubernetesNamespaceRead(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesNamespaceUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } ops := patchMetadata("metadata.0.", "/metadata/", d) data, err := ops.MarshalJSON() @@ -91,11 +100,14 @@ func resourceKubernetesNamespaceUpdate(d *schema.ResourceData, meta interface{}) } func resourceKubernetesNamespaceDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Deleting namespace: %#v", name) - err := conn.CoreV1().Namespaces().Delete(name, &meta_v1.DeleteOptions{}) + err = conn.CoreV1().Namespaces().Delete(name, &meta_v1.DeleteOptions{}) if err != nil { return err } @@ -130,11 +142,14 @@ func resourceKubernetesNamespaceDelete(d *schema.ResourceData, meta interface{}) } func resourceKubernetesNamespaceExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } name := d.Id() log.Printf("[INFO] Checking namespace %s", name) - _, err := conn.CoreV1().Namespaces().Get(name, meta_v1.GetOptions{}) + _, err = conn.CoreV1().Namespaces().Get(name, meta_v1.GetOptions{}) if err != nil { if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 { return false, nil diff --git a/kubernetes/resource_kubernetes_namespace_test.go b/kubernetes/resource_kubernetes_namespace_test.go index 4eea40f8b2..d703d7393b 100644 --- a/kubernetes/resource_kubernetes_namespace_test.go +++ b/kubernetes/resource_kubernetes_namespace_test.go @@ -299,7 +299,10 @@ func testAccCheckMetaLabels(om *meta_v1.ObjectMeta, expected map[string]string) } func testAccCheckKubernetesNamespaceDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_namespace" { @@ -324,7 +327,11 @@ func testAccCheckKubernetesNamespaceExists(n string, obj *api.Namespace) resourc return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + out, err := conn.CoreV1().Namespaces().Get(rs.Primary.ID, meta_v1.GetOptions{}) if err != nil { return err diff --git a/kubernetes/resource_kubernetes_network_policy.go b/kubernetes/resource_kubernetes_network_policy.go index 8232735c9a..655a452aa7 100644 --- a/kubernetes/resource_kubernetes_network_policy.go +++ b/kubernetes/resource_kubernetes_network_policy.go @@ -235,7 +235,10 @@ func resourceKubernetesNetworkPolicy() *schema.Resource { } func resourceKubernetesNetworkPolicyCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandNetworkPolicySpec(d.Get("spec").([]interface{})) @@ -260,7 +263,10 @@ func resourceKubernetesNetworkPolicyCreate(d *schema.ResourceData, meta interfac } func resourceKubernetesNetworkPolicyRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -289,7 +295,10 @@ func resourceKubernetesNetworkPolicyRead(d *schema.ResourceData, meta interface{ } func resourceKubernetesNetworkPolicyUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -320,7 +329,10 @@ func resourceKubernetesNetworkPolicyUpdate(d *schema.ResourceData, meta interfac } func resourceKubernetesNetworkPolicyDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -338,7 +350,10 @@ func resourceKubernetesNetworkPolicyDelete(d *schema.ResourceData, meta interfac } func resourceKubernetesNetworkPolicyExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_network_policy_test.go b/kubernetes/resource_kubernetes_network_policy_test.go index e34c7e8390..6c9d45c0ff 100644 --- a/kubernetes/resource_kubernetes_network_policy_test.go +++ b/kubernetes/resource_kubernetes_network_policy_test.go @@ -364,7 +364,10 @@ func TestAccKubernetesNetworkPolicy_importBasic(t *testing.T) { } func testAccCheckKubernetesNetworkPolicyDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_network_policy" { @@ -394,7 +397,10 @@ func testAccCheckKubernetesNetworkPolicyExists(n string, obj *api.NetworkPolicy) return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_persistent_volume.go b/kubernetes/resource_kubernetes_persistent_volume.go index fcee9c8366..a21121463d 100644 --- a/kubernetes/resource_kubernetes_persistent_volume.go +++ b/kubernetes/resource_kubernetes_persistent_volume.go @@ -37,7 +37,10 @@ func resourceKubernetesPersistentVolume() *schema.Resource { // Mutation of PersistentVolumeSource after creation is no longer allowed in 1.9+ // See https://github.com/kubernetes/kubernetes/blob/v1.9.3/CHANGELOG-1.9.md#storage-3 - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } serverVersion, err := conn.ServerVersion() if err != nil { return err @@ -149,7 +152,10 @@ func resourceKubernetesPersistentVolume() *schema.Resource { } func resourceKubernetesPersistentVolumeCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandPersistentVolumeSpec(d.Get("spec").([]interface{})) @@ -196,7 +202,10 @@ func resourceKubernetesPersistentVolumeCreate(d *schema.ResourceData, meta inter } func resourceKubernetesPersistentVolumeRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Reading persistent volume %s", name) @@ -219,7 +228,10 @@ func resourceKubernetesPersistentVolumeRead(d *schema.ResourceData, meta interfa } func resourceKubernetesPersistentVolumeUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } ops := patchMetadata("metadata.0.", "/metadata/", d) if d.HasChange("spec") { @@ -246,11 +258,14 @@ func resourceKubernetesPersistentVolumeUpdate(d *schema.ResourceData, meta inter } func resourceKubernetesPersistentVolumeDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Deleting persistent volume: %#v", name) - err := conn.CoreV1().PersistentVolumes().Delete(name, &meta_v1.DeleteOptions{}) + err = conn.CoreV1().PersistentVolumes().Delete(name, &meta_v1.DeleteOptions{}) if err != nil { return err } @@ -279,11 +294,14 @@ func resourceKubernetesPersistentVolumeDelete(d *schema.ResourceData, meta inter } func resourceKubernetesPersistentVolumeExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } name := d.Id() log.Printf("[INFO] Checking persistent volume %s", name) - _, err := conn.CoreV1().PersistentVolumes().Get(name, meta_v1.GetOptions{}) + _, err = conn.CoreV1().PersistentVolumes().Get(name, meta_v1.GetOptions{}) if err != nil { if errors.IsNotFound(err) { return false, nil diff --git a/kubernetes/resource_kubernetes_persistent_volume_claim.go b/kubernetes/resource_kubernetes_persistent_volume_claim.go index 3bd400bedc..4594daf0e3 100644 --- a/kubernetes/resource_kubernetes_persistent_volume_claim.go +++ b/kubernetes/resource_kubernetes_persistent_volume_claim.go @@ -45,7 +45,10 @@ func resourceKubernetesPersistentVolumeClaim() *schema.Resource { } func resourceKubernetesPersistentVolumeClaimCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } claim, err := expandPersistenVolumeClaim(map[string]interface{}{ "metadata": d.Get("metadata"), @@ -109,7 +112,10 @@ func resourceKubernetesPersistentVolumeClaimCreate(d *schema.ResourceData, meta } func resourceKubernetesPersistentVolumeClaimRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -136,7 +142,10 @@ func resourceKubernetesPersistentVolumeClaimRead(d *schema.ResourceData, meta in } func resourceKubernetesPersistentVolumeClaimUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -161,7 +170,10 @@ func resourceKubernetesPersistentVolumeClaimUpdate(d *schema.ResourceData, meta } func resourceKubernetesPersistentVolumeClaimDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -181,7 +193,10 @@ func resourceKubernetesPersistentVolumeClaimDelete(d *schema.ResourceData, meta } func resourceKubernetesPersistentVolumeClaimExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_persistent_volume_claim_test.go b/kubernetes/resource_kubernetes_persistent_volume_claim_test.go index 6f7444c46e..e99687ff32 100644 --- a/kubernetes/resource_kubernetes_persistent_volume_claim_test.go +++ b/kubernetes/resource_kubernetes_persistent_volume_claim_test.go @@ -447,7 +447,10 @@ func TestAccKubernetesPersistentVolumeClaim_googleCloud_storageClass(t *testing. } func testAccCheckKubernetesPersistentVolumeClaimDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_persistent_volume_claim" { @@ -488,7 +491,10 @@ func testAccCheckKubernetesPersistentVolumeClaimExists(n string, obj *api.Persis return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_persistent_volume_test.go b/kubernetes/resource_kubernetes_persistent_volume_test.go index 622176de00..3c5119cee5 100644 --- a/kubernetes/resource_kubernetes_persistent_volume_test.go +++ b/kubernetes/resource_kubernetes_persistent_volume_test.go @@ -586,7 +586,11 @@ func TestAccKubernetesPersistentVolume_hostPath_mountOptions(t *testing.T) { } func waitForPersistenceVolumeDeleted(pvName string, poll, timeout time.Duration) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + for start := time.Now(); time.Since(start) < timeout; time.Sleep(poll) { _, err := conn.CoreV1().PersistentVolumes().Get(pvName, meta_v1.GetOptions{}) if err != nil && apierrs.IsNotFound(err) { @@ -597,7 +601,11 @@ func waitForPersistenceVolumeDeleted(pvName string, poll, timeout time.Duration) } func testAccCheckKubernetesPersistentVolumeDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + timeout := 5 * time.Second poll := 1 * time.Second @@ -624,7 +632,11 @@ func testAccCheckKubernetesPersistentVolumeExists(n string, obj *api.PersistentV return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + name := rs.Primary.ID out, err := conn.CoreV1().PersistentVolumes().Get(name, meta_v1.GetOptions{}) if err != nil { diff --git a/kubernetes/resource_kubernetes_pod.go b/kubernetes/resource_kubernetes_pod.go index 76d7ac131e..be077fdb89 100644 --- a/kubernetes/resource_kubernetes_pod.go +++ b/kubernetes/resource_kubernetes_pod.go @@ -49,7 +49,10 @@ func resourceKubernetesPod() *schema.Resource { } } func resourceKubernetesPodCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandPodSpec(d.Get("spec").([]interface{})) @@ -102,7 +105,10 @@ func resourceKubernetesPodCreate(d *schema.ResourceData, meta interface{}) error } func resourceKubernetesPodUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -135,7 +141,10 @@ func resourceKubernetesPodUpdate(d *schema.ResourceData, meta interface{}) error } func resourceKubernetesPodRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -169,7 +178,10 @@ func resourceKubernetesPodRead(d *schema.ResourceData, meta interface{}) error { } func resourceKubernetesPodDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -206,7 +218,10 @@ func resourceKubernetesPodDelete(d *schema.ResourceData, meta interface{}) error } func resourceKubernetesPodExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_pod_disruption_budget.go b/kubernetes/resource_kubernetes_pod_disruption_budget.go index 4be022f4e6..24e611decb 100644 --- a/kubernetes/resource_kubernetes_pod_disruption_budget.go +++ b/kubernetes/resource_kubernetes_pod_disruption_budget.go @@ -75,7 +75,10 @@ func resourceKubernetesPodDisruptionBudget() *schema.Resource { } func resourceKubernetesPodDisruptionBudgetUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -101,7 +104,10 @@ func resourceKubernetesPodDisruptionBudgetUpdate(d *schema.ResourceData, meta in } func resourceKubernetesPodDisruptionBudgetCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandPodDisruptionBudgetSpec(d.Get("spec").([]interface{})) @@ -126,7 +132,10 @@ func resourceKubernetesPodDisruptionBudgetCreate(d *schema.ResourceData, meta in } func resourceKubernetesPodDisruptionBudgetRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -155,7 +164,10 @@ func resourceKubernetesPodDisruptionBudgetRead(d *schema.ResourceData, meta inte } func resourceKubernetesPodDisruptionBudgetDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -176,7 +188,10 @@ func resourceKubernetesPodDisruptionBudgetDelete(d *schema.ResourceData, meta in } func resourceKubernetesPodDisruptionBudgetExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_pod_disruption_budget_test.go b/kubernetes/resource_kubernetes_pod_disruption_budget_test.go index 54ae9edd4f..cda658d650 100644 --- a/kubernetes/resource_kubernetes_pod_disruption_budget_test.go +++ b/kubernetes/resource_kubernetes_pod_disruption_budget_test.go @@ -103,7 +103,10 @@ func TestAccKubernetesPodDisruptionBudget_importBasic(t *testing.T) { } func testAccCheckKubernetesPodDisruptionBudgetDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_pod_disruption_budget" { @@ -133,7 +136,10 @@ func testAccCheckKubernetesPodDisruptionBudgetExists(n string, obj *api.PodDisru return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_pod_test.go b/kubernetes/resource_kubernetes_pod_test.go index ffaf4cca1b..2b258c0ee5 100644 --- a/kubernetes/resource_kubernetes_pod_test.go +++ b/kubernetes/resource_kubernetes_pod_test.go @@ -723,7 +723,10 @@ func TestAccKubernetesPod_config_container_startup_probe(t *testing.T) { } func testAccCheckKubernetesPodDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_pod" { @@ -753,7 +756,10 @@ func testAccCheckKubernetesPodExists(n string, obj *api.Pod) resource.TestCheckF return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_priority_class.go b/kubernetes/resource_kubernetes_priority_class.go index 99ae1dd1dd..416b2023db 100644 --- a/kubernetes/resource_kubernetes_priority_class.go +++ b/kubernetes/resource_kubernetes_priority_class.go @@ -47,7 +47,10 @@ func resourceKubernetesPriorityClass() *schema.Resource { } func resourceKubernetesPriorityClassCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) value := d.Get("value").(int) @@ -73,7 +76,10 @@ func resourceKubernetesPriorityClassCreate(d *schema.ResourceData, meta interfac } func resourceKubernetesPriorityClassRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() @@ -109,7 +115,10 @@ func resourceKubernetesPriorityClassRead(d *schema.ResourceData, meta interface{ } func resourceKubernetesPriorityClassUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() @@ -147,12 +156,15 @@ func resourceKubernetesPriorityClassUpdate(d *schema.ResourceData, meta interfac } func resourceKubernetesPriorityClassDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Deleting priority class: %#v", name) - err := conn.SchedulingV1().PriorityClasses().Delete(name, &meta_v1.DeleteOptions{}) + err = conn.SchedulingV1().PriorityClasses().Delete(name, &meta_v1.DeleteOptions{}) if err != nil { return err } @@ -164,12 +176,15 @@ func resourceKubernetesPriorityClassDelete(d *schema.ResourceData, meta interfac } func resourceKubernetesPriorityClassExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } name := d.Id() log.Printf("[INFO] Checking priority class %s", name) - _, err := conn.SchedulingV1().PriorityClasses().Get(name, meta_v1.GetOptions{}) + _, err = conn.SchedulingV1().PriorityClasses().Get(name, meta_v1.GetOptions{}) if err != nil { if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 { return false, nil diff --git a/kubernetes/resource_kubernetes_priority_class_test.go b/kubernetes/resource_kubernetes_priority_class_test.go index 67243dfb5d..7588964c19 100644 --- a/kubernetes/resource_kubernetes_priority_class_test.go +++ b/kubernetes/resource_kubernetes_priority_class_test.go @@ -137,7 +137,10 @@ func TestAccKubernetesPriorityClass_importBasic(t *testing.T) { } func testAccCheckKubernetesPriorityClassDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_priority_class" { @@ -164,7 +167,10 @@ func testAccCheckKubernetesPriorityClassExists(n string, obj *api.PriorityClass) return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } name := rs.Primary.ID diff --git a/kubernetes/resource_kubernetes_replication_controller.go b/kubernetes/resource_kubernetes_replication_controller.go index 6bd31bb74a..e9b4beb031 100644 --- a/kubernetes/resource_kubernetes_replication_controller.go +++ b/kubernetes/resource_kubernetes_replication_controller.go @@ -110,7 +110,10 @@ func useDeprecatedSpecFields(d *schema.ResourceData) (deprecatedSpecFieldsExist } func resourceKubernetesReplicationControllerCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) @@ -150,7 +153,10 @@ func resourceKubernetesReplicationControllerCreate(d *schema.ResourceData, meta } func resourceKubernetesReplicationControllerRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -184,7 +190,10 @@ func resourceKubernetesReplicationControllerRead(d *schema.ResourceData, meta in } func resourceKubernetesReplicationControllerUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -225,7 +234,10 @@ func resourceKubernetesReplicationControllerUpdate(d *schema.ResourceData, meta } func resourceKubernetesReplicationControllerDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -268,7 +280,10 @@ func resourceKubernetesReplicationControllerDelete(d *schema.ResourceData, meta } func resourceKubernetesReplicationControllerExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_replication_controller_test.go b/kubernetes/resource_kubernetes_replication_controller_test.go index 9fa123f56b..3cf8350549 100644 --- a/kubernetes/resource_kubernetes_replication_controller_test.go +++ b/kubernetes/resource_kubernetes_replication_controller_test.go @@ -461,7 +461,10 @@ func TestAccKubernetesReplicationController_with_empty_dir_volume(t *testing.T) } func testAccCheckKubernetesReplicationControllerDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_replication_controller" { @@ -491,7 +494,10 @@ func testAccCheckKubernetesReplicationControllerExists(n string, obj *api.Replic return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_resource_quota.go b/kubernetes/resource_kubernetes_resource_quota.go index 6cebf1d0d1..f31f2e90f0 100644 --- a/kubernetes/resource_kubernetes_resource_quota.go +++ b/kubernetes/resource_kubernetes_resource_quota.go @@ -61,7 +61,10 @@ func resourceKubernetesResourceQuota() *schema.Resource { } func resourceKubernetesResourceQuotaCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandResourceQuotaSpec(d.Get("spec").([]interface{})) @@ -100,7 +103,10 @@ func resourceKubernetesResourceQuotaCreate(d *schema.ResourceData, meta interfac } func resourceKubernetesResourceQuotaRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -136,7 +142,10 @@ func resourceKubernetesResourceQuotaRead(d *schema.ResourceData, meta interface{ } func resourceKubernetesResourceQuotaUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -191,7 +200,10 @@ func resourceKubernetesResourceQuotaUpdate(d *schema.ResourceData, meta interfac } func resourceKubernetesResourceQuotaDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -211,7 +223,10 @@ func resourceKubernetesResourceQuotaDelete(d *schema.ResourceData, meta interfac } func resourceKubernetesResourceQuotaExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_resource_quota_test.go b/kubernetes/resource_kubernetes_resource_quota_test.go index e05951161d..a2ee0726bc 100644 --- a/kubernetes/resource_kubernetes_resource_quota_test.go +++ b/kubernetes/resource_kubernetes_resource_quota_test.go @@ -199,7 +199,10 @@ func TestAccKubernetesResourceQuota_importBasic(t *testing.T) { } func testAccCheckKubernetesResourceQuotaDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_resource_quota" { @@ -229,7 +232,10 @@ func testAccCheckKubernetesResourceQuotaExists(n string, obj *api.ResourceQuota) return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_role.go b/kubernetes/resource_kubernetes_role.go index 90948e147f..4e400b591f 100644 --- a/kubernetes/resource_kubernetes_role.go +++ b/kubernetes/resource_kubernetes_role.go @@ -66,7 +66,10 @@ func resourceKubernetesRole() *schema.Resource { } func resourceKubernetesRoleCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) rules := expandRules(d.Get("rule").([]interface{})) @@ -88,7 +91,10 @@ func resourceKubernetesRoleCreate(d *schema.ResourceData, meta interface{}) erro } func resourceKubernetesRoleRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -117,7 +123,10 @@ func resourceKubernetesRoleRead(d *schema.ResourceData, meta interface{}) error } func resourceKubernetesRoleUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -150,7 +159,10 @@ func resourceKubernetesRoleUpdate(d *schema.ResourceData, meta interface{}) erro } func resourceKubernetesRoleDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -169,7 +181,10 @@ func resourceKubernetesRoleDelete(d *schema.ResourceData, meta interface{}) erro } func resourceKubernetesRoleExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_role_binding.go b/kubernetes/resource_kubernetes_role_binding.go index fd422890fb..228e4b59d7 100644 --- a/kubernetes/resource_kubernetes_role_binding.go +++ b/kubernetes/resource_kubernetes_role_binding.go @@ -48,7 +48,10 @@ func resourceKubernetesRoleBinding() *schema.Resource { } func resourceKubernetesRoleBindingCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) binding := &api.RoleBinding{ @@ -69,7 +72,10 @@ func resourceKubernetesRoleBindingCreate(d *schema.ResourceData, meta interface{ } func resourceKubernetesRoleBindingRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -107,7 +113,10 @@ func resourceKubernetesRoleBindingRead(d *schema.ResourceData, meta interface{}) } func resourceKubernetesRoleBindingUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -135,7 +144,10 @@ func resourceKubernetesRoleBindingUpdate(d *schema.ResourceData, meta interface{ } func resourceKubernetesRoleBindingDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -153,7 +165,10 @@ func resourceKubernetesRoleBindingDelete(d *schema.ResourceData, meta interface{ } func resourceKubernetesRoleBindingExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_role_binding_test.go b/kubernetes/resource_kubernetes_role_binding_test.go index 14ddb65b1e..f9ffe3606b 100644 --- a/kubernetes/resource_kubernetes_role_binding_test.go +++ b/kubernetes/resource_kubernetes_role_binding_test.go @@ -300,7 +300,10 @@ func TestAccKubernetesRoleBindingBug(t *testing.T) { } func testAccCheckKubernetesRoleBindingDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_role_binding" { @@ -330,7 +333,10 @@ func testAccCheckKubernetesRoleBindingExists(n string, obj *api.RoleBinding) res return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_role_test.go b/kubernetes/resource_kubernetes_role_test.go index ff4e3c13a4..800e0a31a3 100644 --- a/kubernetes/resource_kubernetes_role_test.go +++ b/kubernetes/resource_kubernetes_role_test.go @@ -283,7 +283,10 @@ func testAccCheckKubernetesRoleExists(n string, obj *api.Role) resource.TestChec return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { @@ -301,7 +304,10 @@ func testAccCheckKubernetesRoleExists(n string, obj *api.Role) resource.TestChec } func testAccCheckKubernetesRoleDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_role" { diff --git a/kubernetes/resource_kubernetes_secret.go b/kubernetes/resource_kubernetes_secret.go index 44a13556d9..db3e0740b4 100644 --- a/kubernetes/resource_kubernetes_secret.go +++ b/kubernetes/resource_kubernetes_secret.go @@ -42,7 +42,10 @@ func resourceKubernetesSecret() *schema.Resource { } func resourceKubernetesSecretCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) secret := api.Secret{ @@ -67,7 +70,10 @@ func resourceKubernetesSecretCreate(d *schema.ResourceData, meta interface{}) er } func resourceKubernetesSecretRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -93,7 +99,10 @@ func resourceKubernetesSecretRead(d *schema.ResourceData, meta interface{}) erro } func resourceKubernetesSecretUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -130,7 +139,10 @@ func resourceKubernetesSecretUpdate(d *schema.ResourceData, meta interface{}) er } func resourceKubernetesSecretDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -151,7 +163,10 @@ func resourceKubernetesSecretDelete(d *schema.ResourceData, meta interface{}) er } func resourceKubernetesSecretExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_secret_test.go b/kubernetes/resource_kubernetes_secret_test.go index d53f70cbd4..d7e863d5c5 100644 --- a/kubernetes/resource_kubernetes_secret_test.go +++ b/kubernetes/resource_kubernetes_secret_test.go @@ -278,7 +278,10 @@ func testAccCheckSecretData(m *api.Secret, expected map[string]string) resource. } func testAccCheckKubernetesSecretDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_secret" { @@ -308,7 +311,10 @@ func testAccCheckKubernetesSecretExists(n string, obj *api.Secret) resource.Test return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_service.go b/kubernetes/resource_kubernetes_service.go index 0544bc2a2e..670cefe75f 100644 --- a/kubernetes/resource_kubernetes_service.go +++ b/kubernetes/resource_kubernetes_service.go @@ -161,7 +161,10 @@ func resourceKubernetesService() *schema.Resource { } func resourceKubernetesServiceCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) svc := api.Service{ @@ -209,7 +212,10 @@ func resourceKubernetesServiceCreate(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesServiceRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -244,7 +250,10 @@ func resourceKubernetesServiceRead(d *schema.ResourceData, meta interface{}) err } func resourceKubernetesServiceUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -279,7 +288,10 @@ func resourceKubernetesServiceUpdate(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesServiceDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -299,7 +311,10 @@ func resourceKubernetesServiceDelete(d *schema.ResourceData, meta interface{}) e } func resourceKubernetesServiceExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_service_account.go b/kubernetes/resource_kubernetes_service_account.go index 7c4a2a8c74..53a178c484 100644 --- a/kubernetes/resource_kubernetes_service_account.go +++ b/kubernetes/resource_kubernetes_service_account.go @@ -74,7 +74,10 @@ func resourceKubernetesServiceAccount() *schema.Resource { } func resourceKubernetesServiceAccountCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) svcAcc := api.ServiceAccount{ @@ -154,7 +157,10 @@ func diffObjectReferences(origOrs []api.ObjectReference, ors []api.ObjectReferen } func resourceKubernetesServiceAccountRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -196,7 +202,10 @@ func resourceKubernetesServiceAccountRead(d *schema.ResourceData, meta interface } func resourceKubernetesServiceAccountUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -243,7 +252,10 @@ func resourceKubernetesServiceAccountUpdate(d *schema.ResourceData, meta interfa } func resourceKubernetesServiceAccountDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -263,7 +275,10 @@ func resourceKubernetesServiceAccountDelete(d *schema.ResourceData, meta interfa } func resourceKubernetesServiceAccountExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -282,7 +297,10 @@ func resourceKubernetesServiceAccountExists(d *schema.ResourceData, meta interfa } func resourceKubernetesServiceAccountImportState(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return nil, err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_service_account_test.go b/kubernetes/resource_kubernetes_service_account_test.go index b7495df11c..55ca101637 100644 --- a/kubernetes/resource_kubernetes_service_account_test.go +++ b/kubernetes/resource_kubernetes_service_account_test.go @@ -312,7 +312,10 @@ func matchObjectReferenceName(lor []api.ObjectReference, expected []*regexp.Rege } func testAccCheckKubernetesServiceAccountDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_service_account" { @@ -342,7 +345,10 @@ func testAccCheckKubernetesServiceAccountExists(n string, obj *api.ServiceAccoun return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_service_test.go b/kubernetes/resource_kubernetes_service_test.go index e41c4ce802..73cd6806ac 100644 --- a/kubernetes/resource_kubernetes_service_test.go +++ b/kubernetes/resource_kubernetes_service_test.go @@ -546,7 +546,10 @@ func testAccCheckServicePorts(svc *api.Service, expected []api.ServicePort) reso } func testAccCheckKubernetesServiceDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_service" { @@ -576,7 +579,10 @@ func testAccCheckKubernetesServiceExists(n string, obj *api.Service) resource.Te return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_stateful_set.go b/kubernetes/resource_kubernetes_stateful_set.go index 14563594f8..bbdd7c3e99 100644 --- a/kubernetes/resource_kubernetes_stateful_set.go +++ b/kubernetes/resource_kubernetes_stateful_set.go @@ -40,7 +40,10 @@ func resourceKubernetesStatefulSet() *schema.Resource { } func resourceKubernetesStatefulSetCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) spec, err := expandStatefulSetSpec(d.Get("spec").([]interface{})) if err != nil { @@ -68,7 +71,10 @@ func resourceKubernetesStatefulSetCreate(d *schema.ResourceData, meta interface{ } func resourceKubernetesStatefulSetExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } namespace, name, err := idParts(d.Id()) if err != nil { @@ -87,7 +93,10 @@ func resourceKubernetesStatefulSetExists(d *schema.ResourceData, meta interface{ } func resourceKubernetesStatefulSetRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } id := d.Id() namespace, name, err := idParts(id) @@ -123,7 +132,10 @@ func resourceKubernetesStatefulSetRead(d *schema.ResourceData, meta interface{}) } func resourceKubernetesStatefulSetUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { return fmt.Errorf("Error parsing resource ID: %#v", err) @@ -154,7 +166,10 @@ func resourceKubernetesStatefulSetUpdate(d *schema.ResourceData, meta interface{ } func resourceKubernetesStatefulSetDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(d.Id()) if err != nil { diff --git a/kubernetes/resource_kubernetes_stateful_set_test.go b/kubernetes/resource_kubernetes_stateful_set_test.go index 9f9e62f0a1..8dd4dad346 100644 --- a/kubernetes/resource_kubernetes_stateful_set_test.go +++ b/kubernetes/resource_kubernetes_stateful_set_test.go @@ -311,7 +311,10 @@ func TestAccKubernetesStatefulSet_update_pod_template(t *testing.T) { } func testAccCheckKubernetesStatefulSetDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_stateful_set" { @@ -341,7 +344,10 @@ func testAccCheckKubernetesStatefulSetExists(n string, obj *api.StatefulSet) res return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } namespace, name, err := idParts(rs.Primary.ID) if err != nil { diff --git a/kubernetes/resource_kubernetes_storage_class.go b/kubernetes/resource_kubernetes_storage_class.go index 5402532c85..18a2cf506d 100644 --- a/kubernetes/resource_kubernetes_storage_class.go +++ b/kubernetes/resource_kubernetes_storage_class.go @@ -68,7 +68,10 @@ func resourceKubernetesStorageClass() *schema.Resource { } func resourceKubernetesStorageClassCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } metadata := expandMetadata(d.Get("metadata").([]interface{})) reclaimPolicy := v1.PersistentVolumeReclaimPolicy(d.Get("reclaim_policy").(string)) @@ -102,7 +105,10 @@ func resourceKubernetesStorageClassCreate(d *schema.ResourceData, meta interface } func resourceKubernetesStorageClassRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Reading storage class %s", name) @@ -129,7 +135,10 @@ func resourceKubernetesStorageClassRead(d *schema.ResourceData, meta interface{} } func resourceKubernetesStorageClassUpdate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() ops := patchMetadata("metadata.0.", "/metadata/", d) @@ -149,11 +158,14 @@ func resourceKubernetesStorageClassUpdate(d *schema.ResourceData, meta interface } func resourceKubernetesStorageClassDelete(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return err + } name := d.Id() log.Printf("[INFO] Deleting storage class: %#v", name) - err := conn.StorageV1().StorageClasses().Delete(name, &deleteOptions) + err = conn.StorageV1().StorageClasses().Delete(name, &deleteOptions) if err != nil { return err } @@ -165,11 +177,14 @@ func resourceKubernetesStorageClassDelete(d *schema.ResourceData, meta interface } func resourceKubernetesStorageClassExists(d *schema.ResourceData, meta interface{}) (bool, error) { - conn := meta.(*KubeClientsets).MainClientset + conn, err := meta.(KubeClientsets).MainClientset() + if err != nil { + return false, err + } name := d.Id() log.Printf("[INFO] Checking storage class %s", name) - _, err := conn.StorageV1().StorageClasses().Get(name, metav1.GetOptions{}) + _, err = conn.StorageV1().StorageClasses().Get(name, metav1.GetOptions{}) if err != nil { if statusErr, ok := err.(*errors.StatusError); ok && statusErr.ErrStatus.Code == 404 { return false, nil diff --git a/kubernetes/resource_kubernetes_storage_class_test.go b/kubernetes/resource_kubernetes_storage_class_test.go index 8c84b610ba..6a20c7a84b 100644 --- a/kubernetes/resource_kubernetes_storage_class_test.go +++ b/kubernetes/resource_kubernetes_storage_class_test.go @@ -198,7 +198,10 @@ func testAccCheckStorageClassParameters(m *api.StorageClass, expected map[string } func testAccCheckKubernetesStorageClassDestroy(s *terraform.State) error { - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } for _, rs := range s.RootModule().Resources { if rs.Type != "kubernetes_storage_class" { @@ -223,7 +226,11 @@ func testAccCheckKubernetesStorageClassExists(n string, obj *api.StorageClass) r return fmt.Errorf("Not found: %s", n) } - conn := testAccProvider.Meta().(*KubeClientsets).MainClientset + conn, err := testAccProvider.Meta().(KubeClientsets).MainClientset() + if err != nil { + return err + } + name := rs.Primary.ID out, err := conn.StorageV1().StorageClasses().Get(name, meta_v1.GetOptions{}) if err != nil { diff --git a/website/docs/index.html.markdown b/website/docs/index.html.markdown index a3c5010683..7c2cf4cf85 100644 --- a/website/docs/index.html.markdown +++ b/website/docs/index.html.markdown @@ -38,6 +38,17 @@ Below are versions of the library bundled with given versions of Terraform. * Terraform `0.9.7` (prior to provider split) `< 1.1` (provider version) - Kubernetes `1.6.1` * `1.1+` - Kubernetes `1.7` +## Stacking with managed Kubernetes cluster resources + +Terraform providers for various cloud providers feature resources to spin up managed Kubernetes clusters on services such as EKS, AKS and GKE. Such resources (or data-sources) will have attributes that expose the credentials needed for the Kubernetes provider to connect to these clusters. + +To use these credentials with the Kubernetes provider, they can be interpolated into the respective attributes of the Kubernetes provider configuration block. + +**IMPORTANT WARNING** +*When using interpolation to pass credentials to the Kubernetes provider from other resources, these resources SHOULD NOT be created in the same `apply` operation where Kubernetes provider resources are also used. This will lead to intermittent and unpredictable errors which are hard to debug and diagnose. The root issue lies with the order in which Terraform itself evaluates the provider blocks vs. actual resources. Please refer to [this section of Terraform docs](https://www.terraform.io/docs/configuration/providers.html#provider-configuration) for further explanation.* + +The best-practice in this case is to ensure that the cluster itself and the Kubernetes provider resources are managed with separate `apply` operations. Data-sources can be used to convey values between the two stages as needed. + ## Authentication There are generally two ways to configure the Kubernetes provider.