diff --git a/.changelog/2770.txt b/.changelog/2770.txt new file mode 100644 index 0000000000..6930eca289 --- /dev/null +++ b/.changelog/2770.txt @@ -0,0 +1,49 @@ +```release-note:deprecation +**Data Sources** +- `kubernetes_config_map` → use `kubernetes_config_map_v1` +- `kubernetes_namespace` → use `kubernetes_namespace_v1` +- `kubernetes_secret` → use `kubernetes_secret_v1` +- `kubernetes_service` → use `kubernetes_service_v1` +- `kubernetes_pod` → use `kubernetes_pod_v1` +- `kubernetes_service_account` → use `kubernetes_service_account_v1` +- `kubernetes_persistent_volume_claim` → use `kubernetes_persistent_volume_claim_v1` +- `kubernetes_storage_class` → use `kubernetes_storage_class_v1` +- `kubernetes_ingress` → use `kubernetes_ingress_v1` + +**Resources** +- `kubernetes_namespace` → use `kubernetes_namespace_v1` +- `kubernetes_service` → use `kubernetes_service_v1` +- `kubernetes_service_account` → use `kubernetes_service_account_v1` +- `kubernetes_default_service_account` → use `kubernetes_default_service_account_v1` +- `kubernetes_config_map` → use `kubernetes_config_map_v1` +- `kubernetes_secret` → use `kubernetes_secret_v1` +- `kubernetes_pod` → use `kubernetes_pod_v1` +- `kubernetes_endpoints` → use `kubernetes_endpoints_v1` +- `kubernetes_limit_range` → use `kubernetes_limit_range_v1` +- `kubernetes_persistent_volume` → use `kubernetes_persistent_volume_v1` +- `kubernetes_persistent_volume_claim` → use `kubernetes_persistent_volume_claim_v1` +- `kubernetes_replication_controller` → use `kubernetes_replication_controller_v1` +- `kubernetes_resource_quota` → use `kubernetes_resource_quota_v1` +- `kubernetes_api_service` → use `kubernetes_api_service_v1` +- `kubernetes_deployment` → use `kubernetes_deployment_v1` +- `kubernetes_daemonset` → use `kubernetes_daemon_set_v1` +- `kubernetes_stateful_set` → use `kubernetes_stateful_set_v1` +- `kubernetes_job` → use `kubernetes_job_v1` +- `kubernetes_cron_job` → use `kubernetes_cron_job_v1` +- `kubernetes_horizontal_pod_autoscaler` → use `kubernetes_horizontal_pod_autoscaler_v1` or `kubernetes_horizontal_pod_autoscaler_v2` +- `kubernetes_certificate_signing_request` → use `kubernetes_certificate_signing_request_v1` +- `kubernetes_role` → use `kubernetes_role_v1` +- `kubernetes_role_binding` → use `kubernetes_role_binding_v1` +- `kubernetes_cluster_role` → use `kubernetes_cluster_role_v1` +- `kubernetes_cluster_role_binding` → use `kubernetes_cluster_role_binding_v1` +- `kubernetes_ingress` → use `kubernetes_ingress_v1` +- `kubernetes_ingress_class` → use `kubernetes_ingress_class_v1` +- `kubernetes_network_policy` → use `kubernetes_network_policy_v1` +- `kubernetes_pod_disruption_budget` → use `kubernetes_pod_disruption_budget_v1` +- `kubernetes_pod_security_policy` → removed upstream; use Pod Security Admission instead +- `kubernetes_priority_class` → use `kubernetes_priority_class_v1` +- `kubernetes_validating_webhook_configuration` → use `kubernetes_validating_webhook_configuration_v1` +- `kubernetes_mutating_webhook_configuration` → use `kubernetes_mutating_webhook_configuration_v1` +- `kubernetes_storage_class` → use `kubernetes_storage_class_v1` +- `kubernetes_csi_driver` → use `kubernetes_csi_driver_v1` +``` \ No newline at end of file diff --git a/kubernetes/data_source_kubernetes_config_map_v1.go b/kubernetes/data_source_kubernetes_config_map_v1.go index 01e920a07d..8f4561d93a 100644 --- a/kubernetes/data_source_kubernetes_config_map_v1.go +++ b/kubernetes/data_source_kubernetes_config_map_v1.go @@ -13,10 +13,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func dataSourceKubernetesConfigMapV1() *schema.Resource { +func dataSourceKubernetesConfigMapV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Config Maps are key-value pairs containing configuration data. The Config Map data source provides a mechanism for extracting these key-value pairs.", - ReadContext: dataSourceKubernetesConfigMapV1Read, + Description: "Config Maps are key-value pairs containing configuration data. The Config Map data source provides a mechanism for extracting these key-value pairs.", + ReadContext: dataSourceKubernetesConfigMapV1Read, + DeprecationMessage: deprecationMessage, Schema: map[string]*schema.Schema{ "metadata": namespacedMetadataSchema("config_map", false), diff --git a/kubernetes/data_source_kubernetes_ingress.go b/kubernetes/data_source_kubernetes_ingress.go index 2b95b0a2d4..eeae23e59d 100644 --- a/kubernetes/data_source_kubernetes_ingress.go +++ b/kubernetes/data_source_kubernetes_ingress.go @@ -23,8 +23,9 @@ func dataSourceKubernetesIngress() *schema.Resource { docIngressSpec := networking.IngressSpec{}.SwaggerDoc() return &schema.Resource{ - Description: "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. This data source allows you to pull data about such ingress.", - ReadContext: dataSourceKubernetesIngressRead, + DeprecationMessage: "Deprecated: this data source will be removed in the next major version of the provider. Use kubernetes_ingress_v1 instead.", + Description: "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. This data source allows you to pull data about such ingress.", + ReadContext: dataSourceKubernetesIngressRead, Schema: map[string]*schema.Schema{ "metadata": namespacedMetadataSchema("ingress", false), "spec": { diff --git a/kubernetes/data_source_kubernetes_namespace_v1.go b/kubernetes/data_source_kubernetes_namespace_v1.go index 613ad49cdc..9604cb9ca4 100644 --- a/kubernetes/data_source_kubernetes_namespace_v1.go +++ b/kubernetes/data_source_kubernetes_namespace_v1.go @@ -14,10 +14,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func dataSourceKubernetesNamespaceV1() *schema.Resource { +func dataSourceKubernetesNamespaceV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "This data source provides a mechanism to query attributes of any specific namespace within a Kubernetes cluster. In Kubernetes, namespaces provide a scope for names and are intended as a way to divide cluster resources between multiple users.", - ReadContext: dataSourceKubernetesNamespaceV1Read, + Description: "This data source provides a mechanism to query attributes of any specific namespace within a Kubernetes cluster. In Kubernetes, namespaces provide a scope for names and are intended as a way to divide cluster resources between multiple users.", + ReadContext: dataSourceKubernetesNamespaceV1Read, + DeprecationMessage: deprecationMessage, Schema: map[string]*schema.Schema{ "metadata": metadataSchema("namespace", false), diff --git a/kubernetes/data_source_kubernetes_persistent_volume_claim_v1.go b/kubernetes/data_source_kubernetes_persistent_volume_claim_v1.go index 9f44fc5f03..d08335b9d3 100644 --- a/kubernetes/data_source_kubernetes_persistent_volume_claim_v1.go +++ b/kubernetes/data_source_kubernetes_persistent_volume_claim_v1.go @@ -13,10 +13,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func dataSourceKubernetesPersistentVolumeClaimV1() *schema.Resource { +func dataSourceKubernetesPersistentVolumeClaimV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A PersistentVolumeClaim (PVC) is a request for storage by a user. This data source retrieves information about the specified PVC.", - ReadContext: dataSourceKubernetesPersistentVolumeClaimV1Read, + Description: "A PersistentVolumeClaim (PVC) is a request for storage by a user. This data source retrieves information about the specified PVC.", + ReadContext: dataSourceKubernetesPersistentVolumeClaimV1Read, + DeprecationMessage: deprecationMessage, Schema: map[string]*schema.Schema{ "metadata": namespacedMetadataSchema("persistent volume claim", true), diff --git a/kubernetes/data_source_kubernetes_pod_v1.go b/kubernetes/data_source_kubernetes_pod_v1.go index a0bc6f418b..fc12c6b999 100644 --- a/kubernetes/data_source_kubernetes_pod_v1.go +++ b/kubernetes/data_source_kubernetes_pod_v1.go @@ -13,14 +13,15 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func dataSourceKubernetesPodV1() *schema.Resource { +func dataSourceKubernetesPodV1(deprecationMessage string) *schema.Resource { podSpecFields := podSpecFields(false, false) // Setting this default to false prevents a perpetual diff caused by volume_mounts // being mutated on the server side as Kubernetes automatically adds a mount // for the service account token return &schema.Resource{ - Description: "A pod is a group of one or more containers, the shared storage for those containers, and options about how to run the containers. Pods are always co-located and co-scheduled, and run in a shared context. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod/.", - ReadContext: dataSourceKubernetesPodV1Read, + Description: "A pod is a group of one or more containers, the shared storage for those containers, and options about how to run the containers. Pods are always co-located and co-scheduled, and run in a shared context. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod/.", + ReadContext: dataSourceKubernetesPodV1Read, + DeprecationMessage: deprecationMessage, Schema: map[string]*schema.Schema{ "metadata": namespacedMetadataSchema("pod", true), diff --git a/kubernetes/data_source_kubernetes_secret_v1.go b/kubernetes/data_source_kubernetes_secret_v1.go index 8cba1989a7..c8d46625bd 100644 --- a/kubernetes/data_source_kubernetes_secret_v1.go +++ b/kubernetes/data_source_kubernetes_secret_v1.go @@ -13,10 +13,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func dataSourceKubernetesSecretV1() *schema.Resource { +func dataSourceKubernetesSecretV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "The resource provides mechanisms to inject containers with sensitive information, such as passwords, while keeping containers agnostic of Kubernetes. Secrets can be used to store sensitive information either as individual properties or coarse-grained entries like entire files or JSON blobs. The resource will by default create a secret which is available to any pod in the specified (or default) namespace.", - ReadContext: dataSourceKubernetesSecretV1Read, + Description: "The resource provides mechanisms to inject containers with sensitive information, such as passwords, while keeping containers agnostic of Kubernetes. Secrets can be used to store sensitive information either as individual properties or coarse-grained entries like entire files or JSON blobs. The resource will by default create a secret which is available to any pod in the specified (or default) namespace.", + ReadContext: dataSourceKubernetesSecretV1Read, + DeprecationMessage: deprecationMessage, Schema: map[string]*schema.Schema{ "metadata": namespacedMetadataSchema("secret", true), diff --git a/kubernetes/data_source_kubernetes_service_account_v1.go b/kubernetes/data_source_kubernetes_service_account_v1.go index 8a4fb3cd5b..bb4cbb292a 100644 --- a/kubernetes/data_source_kubernetes_service_account_v1.go +++ b/kubernetes/data_source_kubernetes_service_account_v1.go @@ -13,10 +13,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func dataSourceKubernetesServiceAccountV1() *schema.Resource { +func dataSourceKubernetesServiceAccountV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A service account provides an identity for processes that run in a Pod. This data source reads the service account and makes specific attributes available to Terraform. More info: https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/.", - ReadContext: dataSourceKubernetesServiceAccountV1Read, + Description: "A service account provides an identity for processes that run in a Pod. This data source reads the service account and makes specific attributes available to Terraform. More info: https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/.", + ReadContext: dataSourceKubernetesServiceAccountV1Read, + DeprecationMessage: deprecationMessage, Schema: map[string]*schema.Schema{ "metadata": namespacedMetadataSchema("service account", false), diff --git a/kubernetes/data_source_kubernetes_service_v1.go b/kubernetes/data_source_kubernetes_service_v1.go index 634f9f658f..41092f83ef 100644 --- a/kubernetes/data_source_kubernetes_service_v1.go +++ b/kubernetes/data_source_kubernetes_service_v1.go @@ -15,10 +15,12 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func dataSourceKubernetesServiceV1() *schema.Resource { +func dataSourceKubernetesServiceV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A Service is an abstraction which defines a logical set of pods and a policy by which to access them - sometimes called a micro-service. This data source allows you to pull data about such service.", - ReadContext: dataSourceKubernetesServiceV1Read, + Description: "A Service is an abstraction which defines a logical set of pods and a policy by which to access them - sometimes called a micro-service. This data source allows you to pull data about such service.", + ReadContext: dataSourceKubernetesServiceV1Read, + DeprecationMessage: deprecationMessage, + Schema: map[string]*schema.Schema{ "metadata": namespacedMetadataSchema("service", false), "spec": { diff --git a/kubernetes/data_source_kubernetes_storage_class_v1.go b/kubernetes/data_source_kubernetes_storage_class_v1.go index 04ea88a353..8112aae80a 100644 --- a/kubernetes/data_source_kubernetes_storage_class_v1.go +++ b/kubernetes/data_source_kubernetes_storage_class_v1.go @@ -13,10 +13,12 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func dataSourceKubernetesStorageClassV1() *schema.Resource { +func dataSourceKubernetesStorageClassV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Storage class is the foundation of dynamic provisioning, allowing cluster administrators to define abstractions for the underlying storage platform.Read more at https://kubernetes.io/blog/2017/03/dynamic-provisioning-and-storage-classes-kubernetes/", - ReadContext: dataSourceKubernetesStorageClassV1Read, + Description: "Storage class is the foundation of dynamic provisioning, allowing cluster administrators to define abstractions for the underlying storage platform.Read more at https://kubernetes.io/blog/2017/03/dynamic-provisioning-and-storage-classes-kubernetes/", + ReadContext: dataSourceKubernetesStorageClassV1Read, + DeprecationMessage: deprecationMessage, + Schema: map[string]*schema.Schema{ "metadata": metadataSchema("storage class", false), "parameters": { diff --git a/kubernetes/provider.go b/kubernetes/provider.go index 398b0d24ca..e7bac91bdd 100644 --- a/kubernetes/provider.go +++ b/kubernetes/provider.go @@ -217,23 +217,23 @@ func Provider() *schema.Provider { DataSourcesMap: map[string]*schema.Resource{ // core - "kubernetes_config_map": dataSourceKubernetesConfigMapV1(), - "kubernetes_config_map_v1": dataSourceKubernetesConfigMapV1(), - "kubernetes_namespace": dataSourceKubernetesNamespaceV1(), - "kubernetes_namespace_v1": dataSourceKubernetesNamespaceV1(), + "kubernetes_config_map": dataSourceKubernetesConfigMapV1("Deprecated; use kubernetes_config_map_v1."), + "kubernetes_config_map_v1": dataSourceKubernetesConfigMapV1(""), + "kubernetes_namespace": dataSourceKubernetesNamespaceV1("Deprecated; use kubernetes_namespace_v1."), + "kubernetes_namespace_v1": dataSourceKubernetesNamespaceV1(""), "kubernetes_all_namespaces": dataSourceKubernetesAllNamespaces(), - "kubernetes_secret": dataSourceKubernetesSecretV1(), - "kubernetes_secret_v1": dataSourceKubernetesSecretV1(), + "kubernetes_secret": dataSourceKubernetesSecretV1("Deprecated; use kubernetes_secret_v1."), + "kubernetes_secret_v1": dataSourceKubernetesSecretV1(""), "kubernetes_endpoints_v1": dataSourceKubernetesEndpointsV1(), - "kubernetes_service": dataSourceKubernetesServiceV1(), - "kubernetes_service_v1": dataSourceKubernetesServiceV1(), - "kubernetes_pod": dataSourceKubernetesPodV1(), - "kubernetes_pod_v1": dataSourceKubernetesPodV1(), - "kubernetes_service_account": dataSourceKubernetesServiceAccountV1(), - "kubernetes_service_account_v1": dataSourceKubernetesServiceAccountV1(), + "kubernetes_service": dataSourceKubernetesServiceV1("Deprecated; use kubernetes_service_v1."), + "kubernetes_service_v1": dataSourceKubernetesServiceV1(""), + "kubernetes_pod": dataSourceKubernetesPodV1("Deprecated; use kubernetes_pod_v1."), + "kubernetes_pod_v1": dataSourceKubernetesPodV1(""), + "kubernetes_service_account": dataSourceKubernetesServiceAccountV1("Deprecated; use kubernetes_service_account_v1."), + "kubernetes_service_account_v1": dataSourceKubernetesServiceAccountV1(""), "kubernetes_persistent_volume_v1": dataSourceKubernetesPersistentVolumeV1(), - "kubernetes_persistent_volume_claim": dataSourceKubernetesPersistentVolumeClaimV1(), - "kubernetes_persistent_volume_claim_v1": dataSourceKubernetesPersistentVolumeClaimV1(), + "kubernetes_persistent_volume_claim": dataSourceKubernetesPersistentVolumeClaimV1("Deprecated; use kubernetes_persistent_volume_claim_v1."), + "kubernetes_persistent_volume_claim_v1": dataSourceKubernetesPersistentVolumeClaimV1(""), "kubernetes_nodes": dataSourceKubernetesNodes(), "kubernetes_server_version": dataSourceKubernetesServerVersion(), @@ -242,8 +242,8 @@ func Provider() *schema.Provider { "kubernetes_ingress_v1": dataSourceKubernetesIngressV1(), // storage - "kubernetes_storage_class": dataSourceKubernetesStorageClassV1(), - "kubernetes_storage_class_v1": dataSourceKubernetesStorageClassV1(), + "kubernetes_storage_class": dataSourceKubernetesStorageClassV1("Deprecated; use kubernetes_storage_class_v1."), + "kubernetes_storage_class_v1": dataSourceKubernetesStorageClassV1(""), // admission control "kubernetes_mutating_webhook_configuration_v1": dataSourceKubernetesMutatingWebhookConfigurationV1(), @@ -251,55 +251,55 @@ func Provider() *schema.Provider { ResourcesMap: map[string]*schema.Resource{ // core - "kubernetes_namespace": resourceKubernetesNamespaceV1(), - "kubernetes_namespace_v1": resourceKubernetesNamespaceV1(), - "kubernetes_service": resourceKubernetesServiceV1(), - "kubernetes_service_v1": resourceKubernetesServiceV1(), - "kubernetes_service_account": resourceKubernetesServiceAccountV1(), - "kubernetes_service_account_v1": resourceKubernetesServiceAccountV1(), - "kubernetes_default_service_account": resourceKubernetesDefaultServiceAccountV1(), - "kubernetes_default_service_account_v1": resourceKubernetesDefaultServiceAccountV1(), - "kubernetes_config_map": resourceKubernetesConfigMapV1(), - "kubernetes_config_map_v1": resourceKubernetesConfigMapV1(), + "kubernetes_namespace": resourceKubernetesNamespaceV1("Deprecated; use kubernetes_namespace_v1."), + "kubernetes_namespace_v1": resourceKubernetesNamespaceV1(""), + "kubernetes_service": resourceKubernetesServiceV1("Deprecated; use kubernetes_service_v1."), + "kubernetes_service_v1": resourceKubernetesServiceV1(""), + "kubernetes_service_account": resourceKubernetesServiceAccountV1("Deprecated; use kubernetes_service_account_v1."), + "kubernetes_service_account_v1": resourceKubernetesServiceAccountV1(""), + "kubernetes_default_service_account": resourceKubernetesDefaultServiceAccountV1("Deprecated; use kubernetes_default_service_account_v1."), + "kubernetes_default_service_account_v1": resourceKubernetesDefaultServiceAccountV1(""), + "kubernetes_config_map": resourceKubernetesConfigMapV1("Deprecated; use kubernetes_config_map_v1."), + "kubernetes_config_map_v1": resourceKubernetesConfigMapV1(""), "kubernetes_config_map_v1_data": resourceKubernetesConfigMapV1Data(), - "kubernetes_secret": resourceKubernetesSecretV1(), - "kubernetes_secret_v1": resourceKubernetesSecretV1(), + "kubernetes_secret": resourceKubernetesSecretV1("Deprecated; use kubernetes_secret_v1."), + "kubernetes_secret_v1": resourceKubernetesSecretV1(""), "kubernetes_secret_v1_data": resourceKubernetesSecretV1Data(), - "kubernetes_pod": resourceKubernetesPodV1(), - "kubernetes_pod_v1": resourceKubernetesPodV1(), - "kubernetes_endpoints": resourceKubernetesEndpointsV1(), - "kubernetes_endpoints_v1": resourceKubernetesEndpointsV1(), + "kubernetes_pod": resourceKubernetesPodV1("Deprecated; use kubernetes_pod_v1."), + "kubernetes_pod_v1": resourceKubernetesPodV1(""), + "kubernetes_endpoints": resourceKubernetesEndpointsV1("Deprecated; use kubernetes_endpoints_v1."), + "kubernetes_endpoints_v1": resourceKubernetesEndpointsV1(""), "kubernetes_endpoint_slice_v1": resourceKubernetesEndpointSliceV1(), "kubernetes_env": resourceKubernetesEnv(), - "kubernetes_limit_range": resourceKubernetesLimitRangeV1(), - "kubernetes_limit_range_v1": resourceKubernetesLimitRangeV1(), + "kubernetes_limit_range": resourceKubernetesLimitRangeV1("Deprecated; use kubernetes_limit_range_v1."), + "kubernetes_limit_range_v1": resourceKubernetesLimitRangeV1(""), "kubernetes_node_taint": resourceKubernetesNodeTaint(), - "kubernetes_persistent_volume": resourceKubernetesPersistentVolumeV1(), - "kubernetes_persistent_volume_v1": resourceKubernetesPersistentVolumeV1(), - "kubernetes_persistent_volume_claim": resourceKubernetesPersistentVolumeClaimV1(), - "kubernetes_persistent_volume_claim_v1": resourceKubernetesPersistentVolumeClaimV1(), - "kubernetes_replication_controller": resourceKubernetesReplicationControllerV1(), - "kubernetes_replication_controller_v1": resourceKubernetesReplicationControllerV1(), - "kubernetes_resource_quota": resourceKubernetesResourceQuotaV1(), - "kubernetes_resource_quota_v1": resourceKubernetesResourceQuotaV1(), + "kubernetes_persistent_volume": resourceKubernetesPersistentVolumeV1("Deprecated; use kubernetes_persistent_volume_v1."), + "kubernetes_persistent_volume_v1": resourceKubernetesPersistentVolumeV1(""), + "kubernetes_persistent_volume_claim": resourceKubernetesPersistentVolumeClaimV1("Deprecated; use kubernetes_persistent_volume_claim_v1."), + "kubernetes_persistent_volume_claim_v1": resourceKubernetesPersistentVolumeClaimV1(""), + "kubernetes_replication_controller": resourceKubernetesReplicationControllerV1("Deprecated; use kubernetes_replication_controller_v1."), + "kubernetes_replication_controller_v1": resourceKubernetesReplicationControllerV1(""), + "kubernetes_resource_quota": resourceKubernetesResourceQuotaV1("Deprecated; use kubernetes_resource_quota_v1."), + "kubernetes_resource_quota_v1": resourceKubernetesResourceQuotaV1(""), // api registration - "kubernetes_api_service": resourceKubernetesAPIServiceV1(), - "kubernetes_api_service_v1": resourceKubernetesAPIServiceV1(), + "kubernetes_api_service": resourceKubernetesAPIServiceV1("Deprecated; use kubernetes_api_service_v1."), + "kubernetes_api_service_v1": resourceKubernetesAPIServiceV1(""), // apps - "kubernetes_deployment": resourceKubernetesDeploymentV1(), - "kubernetes_deployment_v1": resourceKubernetesDeploymentV1(), - "kubernetes_daemonset": resourceKubernetesDaemonSetV1(), - "kubernetes_daemon_set_v1": resourceKubernetesDaemonSetV1(), - "kubernetes_stateful_set": resourceKubernetesStatefulSetV1(), - "kubernetes_stateful_set_v1": resourceKubernetesStatefulSetV1(), + "kubernetes_deployment": resourceKubernetesDeploymentV1("Deprecated; use kubernetes_deployment_v1."), + "kubernetes_deployment_v1": resourceKubernetesDeploymentV1(""), + "kubernetes_daemonset": resourceKubernetesDaemonSetV1("Deprecated; use kubernetes_daemon_set_v1."), + "kubernetes_daemon_set_v1": resourceKubernetesDaemonSetV1(""), + "kubernetes_stateful_set": resourceKubernetesStatefulSetV1("Deprecated; use kubernetes_stateful_set_v1."), + "kubernetes_stateful_set_v1": resourceKubernetesStatefulSetV1(""), // batch - "kubernetes_job": resourceKubernetesJobV1(), - "kubernetes_job_v1": resourceKubernetesJobV1(), - "kubernetes_cron_job": resourceKubernetesCronJobV1Beta1(), - "kubernetes_cron_job_v1": resourceKubernetesCronJobV1(), + "kubernetes_job": resourceKubernetesJobV1("Deprecated; use kubernetes_job_v1."), + "kubernetes_job_v1": resourceKubernetesJobV1(""), + "kubernetes_cron_job": resourceKubernetesCronJobV1Beta1("Deprecated; use kubernetes_cron_job_v1."), + "kubernetes_cron_job_v1": resourceKubernetesCronJobV1(""), // autoscaling "kubernetes_horizontal_pod_autoscaler": resourceKubernetesHorizontalPodAutoscaler(), @@ -312,42 +312,42 @@ func Provider() *schema.Provider { "kubernetes_certificate_signing_request_v1": resourceKubernetesCertificateSigningRequestV1(), // rbac - "kubernetes_role": resourceKubernetesRoleV1(), - "kubernetes_role_v1": resourceKubernetesRoleV1(), - "kubernetes_role_binding": resourceKubernetesRoleBindingV1(), - "kubernetes_role_binding_v1": resourceKubernetesRoleBindingV1(), - "kubernetes_cluster_role": resourceKubernetesClusterRoleV1(), - "kubernetes_cluster_role_v1": resourceKubernetesClusterRoleV1(), - "kubernetes_cluster_role_binding": resourceKubernetesClusterRoleBindingV1(), - "kubernetes_cluster_role_binding_v1": resourceKubernetesClusterRoleBindingV1(), + "kubernetes_role": resourceKubernetesRoleV1("Deprecated; use kubernetes_role_v1."), + "kubernetes_role_v1": resourceKubernetesRoleV1(""), + "kubernetes_role_binding": resourceKubernetesRoleBindingV1("Deprecated; use kubernetes_role_binding_v1."), + "kubernetes_role_binding_v1": resourceKubernetesRoleBindingV1(""), + "kubernetes_cluster_role": resourceKubernetesClusterRoleV1("Deprecated; use kubernetes_cluster_role_v1."), + "kubernetes_cluster_role_v1": resourceKubernetesClusterRoleV1(""), + "kubernetes_cluster_role_binding": resourceKubernetesClusterRoleBindingV1("Deprecated; use kubernetes_cluster_role_binding_v1."), + "kubernetes_cluster_role_binding_v1": resourceKubernetesClusterRoleBindingV1(""), // networking - "kubernetes_ingress": resourceKubernetesIngressV1Beta1(), - "kubernetes_ingress_v1": resourceKubernetesIngressV1(), - "kubernetes_ingress_class": resourceKubernetesIngressClassV1(), - "kubernetes_ingress_class_v1": resourceKubernetesIngressClassV1(), - "kubernetes_network_policy": resourceKubernetesNetworkPolicyV1(), - "kubernetes_network_policy_v1": resourceKubernetesNetworkPolicyV1(), + "kubernetes_ingress": resourceKubernetesIngressV1Beta1("Deprecated; use kubernetes_ingress_v1."), + "kubernetes_ingress_v1": resourceKubernetesIngressV1(""), + "kubernetes_ingress_class": resourceKubernetesIngressClassV1("Deprecated; use kubernetes_ingress_class_v1."), + "kubernetes_ingress_class_v1": resourceKubernetesIngressClassV1(""), + "kubernetes_network_policy": resourceKubernetesNetworkPolicyV1("Deprecated; use kubernetes_network_policy_v1."), + "kubernetes_network_policy_v1": resourceKubernetesNetworkPolicyV1(""), // policy "kubernetes_pod_disruption_budget": resourceKubernetesPodDisruptionBudget(), "kubernetes_pod_disruption_budget_v1": resourceKubernetesPodDisruptionBudgetV1(), // scheduling - "kubernetes_priority_class": resourceKubernetesPriorityClassV1(), - "kubernetes_priority_class_v1": resourceKubernetesPriorityClassV1(), + "kubernetes_priority_class": resourceKubernetesPriorityClassV1("Deprecated; use kubernetes_priority_class_v1."), + "kubernetes_priority_class_v1": resourceKubernetesPriorityClassV1(""), // admission control - "kubernetes_validating_webhook_configuration": resourceKubernetesValidatingWebhookConfigurationV1Beta1(), - "kubernetes_validating_webhook_configuration_v1": resourceKubernetesValidatingWebhookConfigurationV1(), + "kubernetes_validating_webhook_configuration": resourceKubernetesValidatingWebhookConfigurationV1Beta1("Deprecated; use kubernetes_validating_webhook_configuration_v1."), + "kubernetes_validating_webhook_configuration_v1": resourceKubernetesValidatingWebhookConfigurationV1(""), "kubernetes_mutating_webhook_configuration": resourceKubernetesMutatingWebhookConfiguration(), "kubernetes_mutating_webhook_configuration_v1": resourceKubernetesMutatingWebhookConfigurationV1(), // storage - "kubernetes_storage_class": resourceKubernetesStorageClassV1(), - "kubernetes_storage_class_v1": resourceKubernetesStorageClassV1(), - "kubernetes_csi_driver": resourceKubernetesCSIDriverV1Beta1(), - "kubernetes_csi_driver_v1": resourceKubernetesCSIDriverV1(), + "kubernetes_storage_class": resourceKubernetesStorageClassV1("Deprecated; use kubernetes_storage_class_v1."), + "kubernetes_storage_class_v1": resourceKubernetesStorageClassV1(""), + "kubernetes_csi_driver": resourceKubernetesCSIDriverV1Beta1("Deprecated; use kubernetes_csi_driver_v1."), + "kubernetes_csi_driver_v1": resourceKubernetesCSIDriverV1(""), // provider helper resources "kubernetes_labels": resourceKubernetesLabels(), diff --git a/kubernetes/resource_kubernetes_api_service_v1.go b/kubernetes/resource_kubernetes_api_service_v1.go index 9e1799a3ec..99762ebe9a 100644 --- a/kubernetes/resource_kubernetes_api_service_v1.go +++ b/kubernetes/resource_kubernetes_api_service_v1.go @@ -17,13 +17,14 @@ import ( v1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1" ) -func resourceKubernetesAPIServiceV1() *schema.Resource { +func resourceKubernetesAPIServiceV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "An API Service is an abstraction which defines for locating and communicating with servers.", - CreateContext: resourceKubernetesAPIServiceV1Create, - ReadContext: resourceKubernetesAPIServiceV1Read, - UpdateContext: resourceKubernetesAPIServiceV1Update, - DeleteContext: resourceKubernetesAPIServiceV1Delete, + Description: "An API Service is an abstraction which defines for locating and communicating with servers.", + CreateContext: resourceKubernetesAPIServiceV1Create, + ReadContext: resourceKubernetesAPIServiceV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesAPIServiceV1Update, + DeleteContext: resourceKubernetesAPIServiceV1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_certificate_signing_request.go b/kubernetes/resource_kubernetes_certificate_signing_request.go index e552230530..8d1cee8652 100644 --- a/kubernetes/resource_kubernetes_certificate_signing_request.go +++ b/kubernetes/resource_kubernetes_certificate_signing_request.go @@ -24,10 +24,11 @@ func resourceKubernetesCertificateSigningRequest() *schema.Resource { apiDocStatus := v1beta1.CertificateSigningRequestStatus{}.SwaggerDoc() return &schema.Resource{ - Description: "Use this resource to generate TLS certificates using Kubernetes. This is a *logical resource*, so it contributes only to the current Terraform state and does not persist any external managed resources. This resource enables automation of [X.509](https://www.itu.int/rec/T-REC-X.509) credential provisioning (including TLS/SSL certificates). It does this by creating a CertificateSigningRequest using the Kubernetes API, which generates a certificate from the Certificate Authority (CA) configured in the Kubernetes cluster. The CSR can be approved automatically by Terraform, or it can be approved by a custom controller running in Kubernetes. See [Kubernetes reference](https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/) for all available options pertaining to CertificateSigningRequests.", - CreateContext: resourceKubernetesCertificateSigningRequestCreate, - ReadContext: resourceKubernetesCertificateSigningRequestRead, - DeleteContext: resourceKubernetesCertificateSigningRequestDelete, + DeprecationMessage: "Deprecated: this resource will be removed in the next major version of the provider. Use kubernetes_certificate_signing_request_v1 instead.", + Description: "Use this resource to generate TLS certificates using Kubernetes. This is a *logical resource*, so it contributes only to the current Terraform state and does not persist any external managed resources. This resource enables automation of [X.509](https://www.itu.int/rec/T-REC-X.509) credential provisioning (including TLS/SSL certificates). It does this by creating a CertificateSigningRequest using the Kubernetes API, which generates a certificate from the Certificate Authority (CA) configured in the Kubernetes cluster. The CSR can be approved automatically by Terraform, or it can be approved by a custom controller running in Kubernetes. See [Kubernetes reference](https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/) for all available options pertaining to CertificateSigningRequests.", + CreateContext: resourceKubernetesCertificateSigningRequestCreate, + ReadContext: resourceKubernetesCertificateSigningRequestRead, + DeleteContext: resourceKubernetesCertificateSigningRequestDelete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_cluster_role_binding_v1.go b/kubernetes/resource_kubernetes_cluster_role_binding_v1.go index 08ad271551..781f5d191e 100644 --- a/kubernetes/resource_kubernetes_cluster_role_binding_v1.go +++ b/kubernetes/resource_kubernetes_cluster_role_binding_v1.go @@ -15,13 +15,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesClusterRoleBindingV1() *schema.Resource { +func resourceKubernetesClusterRoleBindingV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A ClusterRoleBinding may be used to grant permission at the cluster level and in all namespaces", - CreateContext: resourceKubernetesClusterRoleBindingV1Create, - ReadContext: resourceKubernetesClusterRoleBindingV1Read, - UpdateContext: resourceKubernetesClusterRoleBindingV1Update, - DeleteContext: resourceKubernetesClusterRoleBindingV1Delete, + Description: "A ClusterRoleBinding may be used to grant permission at the cluster level and in all namespaces", + CreateContext: resourceKubernetesClusterRoleBindingV1Create, + ReadContext: resourceKubernetesClusterRoleBindingV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesClusterRoleBindingV1Update, + DeleteContext: resourceKubernetesClusterRoleBindingV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNonNamespaced, }, diff --git a/kubernetes/resource_kubernetes_cluster_role_v1.go b/kubernetes/resource_kubernetes_cluster_role_v1.go index fb0806ea4e..22768fcc0b 100644 --- a/kubernetes/resource_kubernetes_cluster_role_v1.go +++ b/kubernetes/resource_kubernetes_cluster_role_v1.go @@ -15,13 +15,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesClusterRoleV1() *schema.Resource { +func resourceKubernetesClusterRoleV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A ClusterRole creates a role at the cluster level and in all namespaces.", - CreateContext: resourceKubernetesClusterRoleV1Create, - ReadContext: resourceKubernetesClusterRoleV1Read, - UpdateContext: resourceKubernetesClusterRoleV1Update, - DeleteContext: resourceKubernetesClusterRoleV1Delete, + Description: "A ClusterRole creates a role at the cluster level and in all namespaces.", + CreateContext: resourceKubernetesClusterRoleV1Create, + ReadContext: resourceKubernetesClusterRoleV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesClusterRoleV1Update, + DeleteContext: resourceKubernetesClusterRoleV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNonNamespaced, }, diff --git a/kubernetes/resource_kubernetes_config_map_v1.go b/kubernetes/resource_kubernetes_config_map_v1.go index 35ca7bb0b7..d775b65f2b 100644 --- a/kubernetes/resource_kubernetes_config_map_v1.go +++ b/kubernetes/resource_kubernetes_config_map_v1.go @@ -17,13 +17,14 @@ import ( "k8s.io/utils/ptr" ) -func resourceKubernetesConfigMapV1() *schema.Resource { +func resourceKubernetesConfigMapV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "The resource provides mechanisms to inject containers with configuration data while keeping containers agnostic of Kubernetes. Config Map can be used to store fine-grained information like individual properties or coarse-grained information like entire config files or JSON blobs.", - CreateContext: resourceKubernetesConfigMapV1Create, - ReadContext: resourceKubernetesConfigMapV1Read, - UpdateContext: resourceKubernetesConfigMapV1Update, - DeleteContext: resourceKubernetesConfigMapV1Delete, + Description: "The resource provides mechanisms to inject containers with configuration data while keeping containers agnostic of Kubernetes. Config Map can be used to store fine-grained information like individual properties or coarse-grained information like entire config files or JSON blobs.", + CreateContext: resourceKubernetesConfigMapV1Create, + ReadContext: resourceKubernetesConfigMapV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesConfigMapV1Update, + DeleteContext: resourceKubernetesConfigMapV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_cron_job_v1.go b/kubernetes/resource_kubernetes_cron_job_v1.go index dc26fd5819..d0bc7315a6 100644 --- a/kubernetes/resource_kubernetes_cron_job_v1.go +++ b/kubernetes/resource_kubernetes_cron_job_v1.go @@ -19,13 +19,14 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func resourceKubernetesCronJobV1() *schema.Resource { +func resourceKubernetesCronJobV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A Cron Job creates Jobs on a time-based schedule.One CronJob object is like one line of a crontab (cron table) file. It runs a job periodically on a given schedule, written in Cron format.Note: All CronJob `schedule` times are based on the timezone of the master where the job is initiated. For instructions on creating and working with cron jobs, and for an example of a spec file for a cron job, see [Kubernetes reference](https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/).", - CreateContext: resourceKubernetesCronJobV1Create, - ReadContext: resourceKubernetesCronJobV1Read, - UpdateContext: resourceKubernetesCronJobV1Update, - DeleteContext: resourceKubernetesCronJobV1Delete, + Description: "A Cron Job creates Jobs on a time-based schedule.One CronJob object is like one line of a crontab (cron table) file. It runs a job periodically on a given schedule, written in Cron format.Note: All CronJob `schedule` times are based on the timezone of the master where the job is initiated. For instructions on creating and working with cron jobs, and for an example of a spec file for a cron job, see [Kubernetes reference](https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/).", + CreateContext: resourceKubernetesCronJobV1Create, + ReadContext: resourceKubernetesCronJobV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesCronJobV1Update, + DeleteContext: resourceKubernetesCronJobV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_cron_job_v1beta1.go b/kubernetes/resource_kubernetes_cron_job_v1beta1.go index a30ed08b59..36c85c2d34 100644 --- a/kubernetes/resource_kubernetes_cron_job_v1beta1.go +++ b/kubernetes/resource_kubernetes_cron_job_v1beta1.go @@ -18,12 +18,13 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func resourceKubernetesCronJobV1Beta1() *schema.Resource { +func resourceKubernetesCronJobV1Beta1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - CreateContext: resourceKubernetesCronJobV1Beta1Create, - ReadContext: resourceKubernetesCronJobV1Beta1Read, - UpdateContext: resourceKubernetesCronJobV1Beta1Update, - DeleteContext: resourceKubernetesCronJobV1Beta1Delete, + CreateContext: resourceKubernetesCronJobV1Beta1Create, + ReadContext: resourceKubernetesCronJobV1Beta1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesCronJobV1Beta1Update, + DeleteContext: resourceKubernetesCronJobV1Beta1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_csi_driver_v1.go b/kubernetes/resource_kubernetes_csi_driver_v1.go index feb83b922b..4418625402 100644 --- a/kubernetes/resource_kubernetes_csi_driver_v1.go +++ b/kubernetes/resource_kubernetes_csi_driver_v1.go @@ -21,13 +21,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesCSIDriverV1() *schema.Resource { +func resourceKubernetesCSIDriverV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "The [Container Storage Interface](https://kubernetes-csi.github.io/docs/introduction.html) (CSI) is a standard for exposing arbitrary block and file storage systems to containerized workloads on Container Orchestration Systems (COs) like Kubernetes.", - CreateContext: resourceKubernetesCSIDriverV1Create, - ReadContext: resourceKubernetesCSIDriverV1Read, - UpdateContext: resourceKubernetesCSIDriverV1Update, - DeleteContext: resourceKubernetesCSIDriverV1Delete, + Description: "The [Container Storage Interface](https://kubernetes-csi.github.io/docs/introduction.html) (CSI) is a standard for exposing arbitrary block and file storage systems to containerized workloads on Container Orchestration Systems (COs) like Kubernetes.", + CreateContext: resourceKubernetesCSIDriverV1Create, + ReadContext: resourceKubernetesCSIDriverV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesCSIDriverV1Update, + DeleteContext: resourceKubernetesCSIDriverV1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_csi_driver_v1beta1.go b/kubernetes/resource_kubernetes_csi_driver_v1beta1.go index 14e65d2e80..9071a0756a 100644 --- a/kubernetes/resource_kubernetes_csi_driver_v1beta1.go +++ b/kubernetes/resource_kubernetes_csi_driver_v1beta1.go @@ -19,12 +19,13 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesCSIDriverV1Beta1() *schema.Resource { +func resourceKubernetesCSIDriverV1Beta1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - CreateContext: resourceKubernetesCSIDriverV1Beta1Create, - ReadContext: resourceKubernetesCSIDriverV1Beta1Read, - UpdateContext: resourceKubernetesCSIDriverV1Beta1Update, - DeleteContext: resourceKubernetesCSIDriverV1Beta1Delete, + CreateContext: resourceKubernetesCSIDriverV1Beta1Create, + ReadContext: resourceKubernetesCSIDriverV1Beta1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesCSIDriverV1Beta1Update, + DeleteContext: resourceKubernetesCSIDriverV1Beta1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_daemon_set_v1.go b/kubernetes/resource_kubernetes_daemon_set_v1.go index edbb17a105..2586568431 100644 --- a/kubernetes/resource_kubernetes_daemon_set_v1.go +++ b/kubernetes/resource_kubernetes_daemon_set_v1.go @@ -22,13 +22,14 @@ import ( "k8s.io/client-go/kubernetes" ) -func resourceKubernetesDaemonSetV1() *schema.Resource { +func resourceKubernetesDaemonSetV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A DaemonSet ensures that all (or some) Nodes run a copy of a Pod. As nodes are added to the cluster, Pods are added to them. As nodes are removed from the cluster, those Pods are garbage collected. Deleting a DaemonSet will clean up the Pods it created.", - CreateContext: resourceKubernetesDaemonSetV1Create, - ReadContext: resourceKubernetesDaemonSetV1Read, - UpdateContext: resourceKubernetesDaemonSetV1Update, - DeleteContext: resourceKubernetesDaemonSetV1Delete, + Description: "A DaemonSet ensures that all (or some) Nodes run a copy of a Pod. As nodes are added to the cluster, Pods are added to them. As nodes are removed from the cluster, those Pods are garbage collected. Deleting a DaemonSet will clean up the Pods it created.", + CreateContext: resourceKubernetesDaemonSetV1Create, + ReadContext: resourceKubernetesDaemonSetV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesDaemonSetV1Update, + DeleteContext: resourceKubernetesDaemonSetV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_default_service_account_v1.go b/kubernetes/resource_kubernetes_default_service_account_v1.go index 393492fd85..3bf66beabe 100644 --- a/kubernetes/resource_kubernetes_default_service_account_v1.go +++ b/kubernetes/resource_kubernetes_default_service_account_v1.go @@ -17,8 +17,8 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesDefaultServiceAccountV1() *schema.Resource { - serviceAccountResource := resourceKubernetesServiceAccountV1() +func resourceKubernetesDefaultServiceAccountV1(deprecationMessage string) *schema.Resource { + serviceAccountResource := resourceKubernetesServiceAccountV1(deprecationMessage) metaSchema := namespacedMetadataSchema("service account", false) diff --git a/kubernetes/resource_kubernetes_deployment_v1.go b/kubernetes/resource_kubernetes_deployment_v1.go index ab87dc1a18..98fa13b1aa 100644 --- a/kubernetes/resource_kubernetes_deployment_v1.go +++ b/kubernetes/resource_kubernetes_deployment_v1.go @@ -28,13 +28,14 @@ const ( TimedOutReason = "ProgressDeadlineExceeded" ) -func resourceKubernetesDeploymentV1() *schema.Resource { +func resourceKubernetesDeploymentV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A Deployment ensures that a specified number of pod “replicas” are running at any one time. In other words, a Deployment makes sure that a pod or homogeneous set of pods are always up and available. If there are too many pods, it will kill some. If there are too few, the Deployment will start more.", - CreateContext: resourceKubernetesDeploymentV1Create, - ReadContext: resourceKubernetesDeploymentV1Read, - UpdateContext: resourceKubernetesDeploymentV1Update, - DeleteContext: resourceKubernetesDeploymentV1Delete, + Description: "A Deployment ensures that a specified number of pod “replicas” are running at any one time. In other words, a Deployment makes sure that a pod or homogeneous set of pods are always up and available. If there are too many pods, it will kill some. If there are too few, the Deployment will start more.", + CreateContext: resourceKubernetesDeploymentV1Create, + ReadContext: resourceKubernetesDeploymentV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesDeploymentV1Update, + DeleteContext: resourceKubernetesDeploymentV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_endpoints_v1.go b/kubernetes/resource_kubernetes_endpoints_v1.go index 60f2f11c5b..414dfa7446 100644 --- a/kubernetes/resource_kubernetes_endpoints_v1.go +++ b/kubernetes/resource_kubernetes_endpoints_v1.go @@ -20,12 +20,12 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesEndpointsV1() *schema.Resource { +func resourceKubernetesEndpointsV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ Description: "An Endpoints resource is an abstraction, linked to a Service, which defines the list of endpoints that actually implement the service.", - DeprecationMessage: "The v1.Endpoints API has been deprecated as of Kubernetes v1.33. Please move to using the `kubernetes_endpoint_slice_v1` resource.", CreateContext: resourceKubernetesEndpointsV1Create, ReadContext: resourceKubernetesEndpointsV1Read, + DeprecationMessage: deprecationMessage, UpdateContext: resourceKubernetesEndpointsV1Update, DeleteContext: resourceKubernetesEndpointsV1Delete, Importer: &schema.ResourceImporter{ diff --git a/kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go b/kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go index ab057880d2..f3dc02f462 100644 --- a/kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go +++ b/kubernetes/resource_kubernetes_horizontal_pod_autoscaler.go @@ -18,11 +18,12 @@ import ( func resourceKubernetesHorizontalPodAutoscaler() *schema.Resource { return &schema.Resource{ - Description: "Horizontal Pod Autoscaler automatically scales the number of pods in a replication controller, deployment or replica set based on observed CPU utilization.", - CreateContext: resourceKubernetesHorizontalPodAutoscalerCreate, - ReadContext: resourceKubernetesHorizontalPodAutoscalerRead, - UpdateContext: resourceKubernetesHorizontalPodAutoscalerUpdate, - DeleteContext: resourceKubernetesHorizontalPodAutoscalerDelete, + DeprecationMessage: "Deprecated: this resource will be removed in the next major version of the provider. Use kubernetes_horizontal_pod_autoscaler_v2 (or _v1) instead.", + Description: "Horizontal Pod Autoscaler automatically scales the number of pods in a replication controller, deployment or replica set based on observed CPU utilization.", + CreateContext: resourceKubernetesHorizontalPodAutoscalerCreate, + ReadContext: resourceKubernetesHorizontalPodAutoscalerRead, + UpdateContext: resourceKubernetesHorizontalPodAutoscalerUpdate, + DeleteContext: resourceKubernetesHorizontalPodAutoscalerDelete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_ingress_class_v1.go b/kubernetes/resource_kubernetes_ingress_class_v1.go index 8ece78a952..f339e7110e 100644 --- a/kubernetes/resource_kubernetes_ingress_class_v1.go +++ b/kubernetes/resource_kubernetes_ingress_class_v1.go @@ -18,14 +18,15 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func resourceKubernetesIngressClassV1() *schema.Resource { +func resourceKubernetesIngressClassV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Ingresses can be implemented by different controllers, often with different configuration. Each Ingress should specify a class, a reference to an IngressClass resource that contains additional configuration including the name of the controller that should implement the class.", - CreateContext: resourceKubernetesIngressClassV1Create, - ReadContext: resourceKubernetesIngressClassV1Read, - UpdateContext: resourceKubernetesIngressClassV1Update, - DeleteContext: resourceKubernetesIngressClassV1Delete, - Schema: resourceKubernetesIngressClassV1Schema(), + Description: "Ingresses can be implemented by different controllers, often with different configuration. Each Ingress should specify a class, a reference to an IngressClass resource that contains additional configuration including the name of the controller that should implement the class.", + CreateContext: resourceKubernetesIngressClassV1Create, + ReadContext: resourceKubernetesIngressClassV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesIngressClassV1Update, + DeleteContext: resourceKubernetesIngressClassV1Delete, + Schema: resourceKubernetesIngressClassV1Schema(), Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNonNamespaced, }, diff --git a/kubernetes/resource_kubernetes_ingress_v1.go b/kubernetes/resource_kubernetes_ingress_v1.go index a0ed3c9100..4912ddcaad 100644 --- a/kubernetes/resource_kubernetes_ingress_v1.go +++ b/kubernetes/resource_kubernetes_ingress_v1.go @@ -19,14 +19,15 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func resourceKubernetesIngressV1() *schema.Resource { +func resourceKubernetesIngressV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - CreateContext: resourceKubernetesIngressV1Create, - ReadContext: resourceKubernetesIngressV1Read, - UpdateContext: resourceKubernetesIngressV1Update, - DeleteContext: resourceKubernetesIngressV1Delete, - Schema: resourceKubernetesIngressV1Schema(), + Description: "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", + CreateContext: resourceKubernetesIngressV1Create, + ReadContext: resourceKubernetesIngressV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesIngressV1Update, + DeleteContext: resourceKubernetesIngressV1Delete, + Schema: resourceKubernetesIngressV1Schema(), Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_ingress_v1beta1.go b/kubernetes/resource_kubernetes_ingress_v1beta1.go index e772aeeabc..e2db853237 100644 --- a/kubernetes/resource_kubernetes_ingress_v1beta1.go +++ b/kubernetes/resource_kubernetes_ingress_v1beta1.go @@ -18,12 +18,13 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func resourceKubernetesIngressV1Beta1() *schema.Resource { +func resourceKubernetesIngressV1Beta1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - CreateContext: resourceKubernetesIngressV1Beta1Create, - ReadContext: resourceKubernetesIngressV1Beta1Read, - UpdateContext: resourceKubernetesIngressV1Beta1Update, - DeleteContext: resourceKubernetesIngressV1Beta1Delete, + CreateContext: resourceKubernetesIngressV1Beta1Create, + ReadContext: resourceKubernetesIngressV1Beta1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesIngressV1Beta1Update, + DeleteContext: resourceKubernetesIngressV1Beta1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_job_v1.go b/kubernetes/resource_kubernetes_job_v1.go index dde582a830..4ac99e985f 100644 --- a/kubernetes/resource_kubernetes_job_v1.go +++ b/kubernetes/resource_kubernetes_job_v1.go @@ -21,13 +21,14 @@ import ( "k8s.io/client-go/kubernetes" ) -func resourceKubernetesJobV1() *schema.Resource { +func resourceKubernetesJobV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A Job creates one or more Pods and ensures that a specified number of them successfully terminate. As pods successfully complete, the Job tracks the successful completions. When a specified number of successful completions is reached, the task (ie, Job) is complete. Deleting a Job will clean up the Pods it created. A simple case is to create one Job object in order to reliably run one Pod to completion. The Job object will start a new Pod if the first Pod fails or is deleted (for example due to a node hardware failure or a node reboot. You can also use a Job to run multiple Pods in parallel. ", - CreateContext: resourceKubernetesJobV1Create, - ReadContext: resourceKubernetesJobV1Read, - UpdateContext: resourceKubernetesJobV1Update, - DeleteContext: resourceKubernetesJobV1Delete, + Description: "A Job creates one or more Pods and ensures that a specified number of them successfully terminate. As pods successfully complete, the Job tracks the successful completions. When a specified number of successful completions is reached, the task (ie, Job) is complete. Deleting a Job will clean up the Pods it created. A simple case is to create one Job object in order to reliably run one Pod to completion. The Job object will start a new Pod if the first Pod fails or is deleted (for example due to a node hardware failure or a node reboot. You can also use a Job to run multiple Pods in parallel. ", + CreateContext: resourceKubernetesJobV1Create, + ReadContext: resourceKubernetesJobV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesJobV1Update, + DeleteContext: resourceKubernetesJobV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_limit_range_v1.go b/kubernetes/resource_kubernetes_limit_range_v1.go index 1362ddcff3..522fd8eb45 100644 --- a/kubernetes/resource_kubernetes_limit_range_v1.go +++ b/kubernetes/resource_kubernetes_limit_range_v1.go @@ -16,13 +16,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesLimitRangeV1() *schema.Resource { +func resourceKubernetesLimitRangeV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Limit Range sets resource usage limits (e.g. memory, cpu, storage) for supported kinds of resources in a namespace. Read more in [the official docs](https://kubernetes.io/docs/concepts/policy/limit-range/).", - CreateContext: resourceKubernetesLimitRangeV1Create, - ReadContext: resourceKubernetesLimitRangeV1Read, - UpdateContext: resourceKubernetesLimitRangeV1Update, - DeleteContext: resourceKubernetesLimitRangeV1Delete, + Description: "Limit Range sets resource usage limits (e.g. memory, cpu, storage) for supported kinds of resources in a namespace. Read more in [the official docs](https://kubernetes.io/docs/concepts/policy/limit-range/).", + CreateContext: resourceKubernetesLimitRangeV1Create, + ReadContext: resourceKubernetesLimitRangeV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesLimitRangeV1Update, + DeleteContext: resourceKubernetesLimitRangeV1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_mutating_webhook_configuration.go b/kubernetes/resource_kubernetes_mutating_webhook_configuration.go index af4f3f470a..9b1862ef6c 100644 --- a/kubernetes/resource_kubernetes_mutating_webhook_configuration.go +++ b/kubernetes/resource_kubernetes_mutating_webhook_configuration.go @@ -24,11 +24,12 @@ func resourceKubernetesMutatingWebhookConfiguration() *schema.Resource { apiDoc := admissionregistrationv1.MutatingWebhookConfiguration{}.SwaggerDoc() webhookDoc := admissionregistrationv1.MutatingWebhook{}.SwaggerDoc() return &schema.Resource{ - Description: "Mutating Webhook Configuration configures a [mutating admission webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#what-are-admission-webhooks).", - CreateContext: resourceKubernetesMutatingWebhookConfigurationCreate, - ReadContext: resourceKubernetesMutatingWebhookConfigurationRead, - UpdateContext: resourceKubernetesMutatingWebhookConfigurationUpdate, - DeleteContext: resourceKubernetesMutatingWebhookConfigurationDelete, + DeprecationMessage: "Deprecated: this resource will be removed in the next major version of the provider. Use kubernetes_mutating_webhook_configuration_v1 instead.", + Description: "Mutating Webhook Configuration configures a [mutating admission webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#what-are-admission-webhooks).", + CreateContext: resourceKubernetesMutatingWebhookConfigurationCreate, + ReadContext: resourceKubernetesMutatingWebhookConfigurationRead, + UpdateContext: resourceKubernetesMutatingWebhookConfigurationUpdate, + DeleteContext: resourceKubernetesMutatingWebhookConfigurationDelete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_namespace_v1.go b/kubernetes/resource_kubernetes_namespace_v1.go index ef0ee306b0..cbb5d5d488 100644 --- a/kubernetes/resource_kubernetes_namespace_v1.go +++ b/kubernetes/resource_kubernetes_namespace_v1.go @@ -19,11 +19,13 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesNamespaceV1() *schema.Resource { +func resourceKubernetesNamespaceV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Kubernetes supports multiple virtual clusters backed by the same physical cluster. These virtual clusters are called namespaces. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/.", - CreateContext: resourceKubernetesNamespaceV1Create, - ReadContext: resourceKubernetesNamespaceV1Read, + Description: "Kubernetes supports multiple virtual clusters backed by the same physical cluster. These virtual clusters are called namespaces. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/.", + CreateContext: resourceKubernetesNamespaceV1Create, + ReadContext: resourceKubernetesNamespaceV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesNamespaceV1Update, DeleteContext: resourceKubernetesNamespaceV1Delete, Importer: &schema.ResourceImporter{ diff --git a/kubernetes/resource_kubernetes_network_policy_v1.go b/kubernetes/resource_kubernetes_network_policy_v1.go index 72ebbd09af..2edf8e51e0 100644 --- a/kubernetes/resource_kubernetes_network_policy_v1.go +++ b/kubernetes/resource_kubernetes_network_policy_v1.go @@ -36,13 +36,14 @@ var ( networkPolicyV1SpecPolicyTypesDoc = networking.NetworkPolicySpec{}.SwaggerDoc()["policyTypes"] ) -func resourceKubernetesNetworkPolicyV1() *schema.Resource { +func resourceKubernetesNetworkPolicyV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Kubernetes supports network policies to specify how groups of pods are allowed to communicate with each other and with other network endpoints. NetworkPolicy resources use labels to select pods and define rules which specify what traffic is allowed to the selected pods. Read more about network policies at https://kubernetes.io/docs/concepts/services-networking/network-policies/", - CreateContext: resourceKubernetesNetworkPolicyV1Create, - ReadContext: resourceKubernetesNetworkPolicyV1Read, - UpdateContext: resourceKubernetesNetworkPolicyV1Update, - DeleteContext: resourceKubernetesNetworkPolicyV1Delete, + Description: "Kubernetes supports network policies to specify how groups of pods are allowed to communicate with each other and with other network endpoints. NetworkPolicy resources use labels to select pods and define rules which specify what traffic is allowed to the selected pods. Read more about network policies at https://kubernetes.io/docs/concepts/services-networking/network-policies/", + CreateContext: resourceKubernetesNetworkPolicyV1Create, + ReadContext: resourceKubernetesNetworkPolicyV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesNetworkPolicyV1Update, + DeleteContext: resourceKubernetesNetworkPolicyV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_persistent_volume_claim_v1.go b/kubernetes/resource_kubernetes_persistent_volume_claim_v1.go index fa5137e220..464c164044 100644 --- a/kubernetes/resource_kubernetes_persistent_volume_claim_v1.go +++ b/kubernetes/resource_kubernetes_persistent_volume_claim_v1.go @@ -20,7 +20,7 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesPersistentVolumeClaimV1() *schema.Resource { +func resourceKubernetesPersistentVolumeClaimV1(deprecationMessage string) *schema.Resource { fields := persistentVolumeClaimFields() // The 'wait_until_bound' control attribute only makes sense in stand-alone PVCs, // so adding it on top of the standard PVC fields which are re-usable for other resources. @@ -31,11 +31,12 @@ func resourceKubernetesPersistentVolumeClaimV1() *schema.Resource { Default: true, } return &schema.Resource{ - Description: "This resource allows the user to request for and claim to a persistent volume.", - CreateContext: resourceKubernetesPersistentVolumeClaimV1Create, - ReadContext: resourceKubernetesPersistentVolumeClaimV1Read, - UpdateContext: resourceKubernetesPersistentVolumeClaimV1Update, - DeleteContext: resourceKubernetesPersistentVolumeClaimV1Delete, + Description: "This resource allows the user to request for and claim to a persistent volume.", + CreateContext: resourceKubernetesPersistentVolumeClaimV1Create, + ReadContext: resourceKubernetesPersistentVolumeClaimV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesPersistentVolumeClaimV1Update, + DeleteContext: resourceKubernetesPersistentVolumeClaimV1Delete, Importer: &schema.ResourceImporter{ StateContext: func(ctx context.Context, d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { d.Set("wait_until_bound", true) diff --git a/kubernetes/resource_kubernetes_persistent_volume_v1.go b/kubernetes/resource_kubernetes_persistent_volume_v1.go index b70bbc1fa4..41f59efa0e 100644 --- a/kubernetes/resource_kubernetes_persistent_volume_v1.go +++ b/kubernetes/resource_kubernetes_persistent_volume_v1.go @@ -27,13 +27,14 @@ const ( persistentVolumeAzureBlobError = `Unable to apply Azure Disk configuration. Blob storage disks require configuration: kind = "Shared" or kind = "Dedicated"` ) -func resourceKubernetesPersistentVolumeV1() *schema.Resource { +func resourceKubernetesPersistentVolumeV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "The resource provides a piece of networked storage in the cluster provisioned by an administrator. It is a resource in the cluster just like a node is a cluster resource. Persistent Volumes have a lifecycle independent of any individual pod that uses the PV. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/.", - CreateContext: resourceKubernetesPersistentVolumeV1Create, - ReadContext: resourceKubernetesPersistentVolumeV1Read, - UpdateContext: resourceKubernetesPersistentVolumeV1Update, - DeleteContext: resourceKubernetesPersistentVolumeV1Delete, + Description: "The resource provides a piece of networked storage in the cluster provisioned by an administrator. It is a resource in the cluster just like a node is a cluster resource. Persistent Volumes have a lifecycle independent of any individual pod that uses the PV. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/.", + CreateContext: resourceKubernetesPersistentVolumeV1Create, + ReadContext: resourceKubernetesPersistentVolumeV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesPersistentVolumeV1Update, + DeleteContext: resourceKubernetesPersistentVolumeV1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_pod_disruption_budget.go b/kubernetes/resource_kubernetes_pod_disruption_budget.go index bc9ae4ce21..26bcecadff 100644 --- a/kubernetes/resource_kubernetes_pod_disruption_budget.go +++ b/kubernetes/resource_kubernetes_pod_disruption_budget.go @@ -26,11 +26,12 @@ var ( func resourceKubernetesPodDisruptionBudget() *schema.Resource { return &schema.Resource{ - Description: "A Pod Disruption Budget limits the number of pods of a replicated application that are down simultaneously from voluntary disruptions. For example, a quorum-based application would like to ensure that the number of replicas running is never brought below the number needed for a quorum. A web front end might want to ensure that the number of replicas serving load never falls below a certain percentage of the total.", - CreateContext: resourceKubernetesPodDisruptionBudgetCreate, - ReadContext: resourceKubernetesPodDisruptionBudgetRead, - UpdateContext: resourceKubernetesPodDisruptionBudgetUpdate, - DeleteContext: resourceKubernetesPodDisruptionBudgetDelete, + DeprecationMessage: "Deprecated: this resource will be removed in the next major version of the provider. Use kubernetes_pod_disruption_budget_v1 instead.", + Description: "A Pod Disruption Budget limits the number of pods of a replicated application that are down simultaneously from voluntary disruptions. For example, a quorum-based application would like to ensure that the number of replicas running is never brought below the number needed for a quorum. A web front end might want to ensure that the number of replicas serving load never falls below a certain percentage of the total.", + CreateContext: resourceKubernetesPodDisruptionBudgetCreate, + ReadContext: resourceKubernetesPodDisruptionBudgetRead, + UpdateContext: resourceKubernetesPodDisruptionBudgetUpdate, + DeleteContext: resourceKubernetesPodDisruptionBudgetDelete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_pod_v1.go b/kubernetes/resource_kubernetes_pod_v1.go index 2e0290980c..9c922da442 100644 --- a/kubernetes/resource_kubernetes_pod_v1.go +++ b/kubernetes/resource_kubernetes_pod_v1.go @@ -20,13 +20,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesPodV1() *schema.Resource { +func resourceKubernetesPodV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A pod is a group of one or more containers, the shared storage for those containers, and options about how to run the containers. Pods are always co-located and co-scheduled, and run in a shared context. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod/.", - CreateContext: resourceKubernetesPodV1Create, - ReadContext: resourceKubernetesPodV1Read, - UpdateContext: resourceKubernetesPodV1Update, - DeleteContext: resourceKubernetesPodV1Delete, + Description: "A pod is a group of one or more containers, the shared storage for those containers, and options about how to run the containers. Pods are always co-located and co-scheduled, and run in a shared context. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod/.", + CreateContext: resourceKubernetesPodV1Create, + ReadContext: resourceKubernetesPodV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesPodV1Update, + DeleteContext: resourceKubernetesPodV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_priority_class_v1.go b/kubernetes/resource_kubernetes_priority_class_v1.go index 0586e10e60..a80fc1fc38 100644 --- a/kubernetes/resource_kubernetes_priority_class_v1.go +++ b/kubernetes/resource_kubernetes_priority_class_v1.go @@ -18,13 +18,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesPriorityClassV1() *schema.Resource { +func resourceKubernetesPriorityClassV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A PriorityClass is a non-namespaced object that defines a mapping from a priority class name to the integer value of the priority.", - CreateContext: resourceKubernetesPriorityClassV1Create, - ReadContext: resourceKubernetesPriorityClassV1Read, - UpdateContext: resourceKubernetesPriorityClassV1Update, - DeleteContext: resourceKubernetesPriorityClassV1Delete, + Description: "A PriorityClass is a non-namespaced object that defines a mapping from a priority class name to the integer value of the priority.", + CreateContext: resourceKubernetesPriorityClassV1Create, + ReadContext: resourceKubernetesPriorityClassV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesPriorityClassV1Update, + DeleteContext: resourceKubernetesPriorityClassV1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_replication_controller_v1.go b/kubernetes/resource_kubernetes_replication_controller_v1.go index ce19e10265..54f34cf948 100644 --- a/kubernetes/resource_kubernetes_replication_controller_v1.go +++ b/kubernetes/resource_kubernetes_replication_controller_v1.go @@ -20,13 +20,14 @@ import ( "k8s.io/client-go/kubernetes" ) -func resourceKubernetesReplicationControllerV1() *schema.Resource { +func resourceKubernetesReplicationControllerV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A Replication Controller ensures that a specified number of pod “replicas” are running at any one time. In other words, a Replication Controller makes sure that a pod or homogeneous set of pods are always up and available. If there are too many pods, it will kill some. If there are too few, the Replication Controller will start more.", - CreateContext: resourceKubernetesReplicationControllerV1Create, - ReadContext: resourceKubernetesReplicationControllerV1Read, - UpdateContext: resourceKubernetesReplicationControllerV1Update, - DeleteContext: resourceKubernetesReplicationControllerV1Delete, + Description: "A Replication Controller ensures that a specified number of pod “replicas” are running at any one time. In other words, a Replication Controller makes sure that a pod or homogeneous set of pods are always up and available. If there are too many pods, it will kill some. If there are too few, the Replication Controller will start more.", + CreateContext: resourceKubernetesReplicationControllerV1Create, + ReadContext: resourceKubernetesReplicationControllerV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesReplicationControllerV1Update, + DeleteContext: resourceKubernetesReplicationControllerV1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_resource_quota_v1.go b/kubernetes/resource_kubernetes_resource_quota_v1.go index 25e69b0c5d..fb86b1b92b 100644 --- a/kubernetes/resource_kubernetes_resource_quota_v1.go +++ b/kubernetes/resource_kubernetes_resource_quota_v1.go @@ -20,13 +20,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesResourceQuotaV1() *schema.Resource { +func resourceKubernetesResourceQuotaV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A resource quota provides constraints that limit aggregate resource consumption per namespace. It can limit the quantity of objects that can be created in a namespace by type, as well as the total amount of compute resources that may be consumed by resources in that project.", - CreateContext: resourceKubernetesResourceQuotaV1Create, - ReadContext: resourceKubernetesResourceQuotaV1Read, - UpdateContext: resourceKubernetesResourceQuotaV1Update, - DeleteContext: resourceKubernetesResourceQuotaV1Delete, + Description: "A resource quota provides constraints that limit aggregate resource consumption per namespace. It can limit the quantity of objects that can be created in a namespace by type, as well as the total amount of compute resources that may be consumed by resources in that project.", + CreateContext: resourceKubernetesResourceQuotaV1Create, + ReadContext: resourceKubernetesResourceQuotaV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesResourceQuotaV1Update, + DeleteContext: resourceKubernetesResourceQuotaV1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, diff --git a/kubernetes/resource_kubernetes_role_binding_v1.go b/kubernetes/resource_kubernetes_role_binding_v1.go index 246dc10090..0a76735645 100644 --- a/kubernetes/resource_kubernetes_role_binding_v1.go +++ b/kubernetes/resource_kubernetes_role_binding_v1.go @@ -15,13 +15,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesRoleBindingV1() *schema.Resource { +func resourceKubernetesRoleBindingV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A RoleBinding may be used to grant permission at the namespace level", - CreateContext: resourceKubernetesRoleBindingV1Create, - ReadContext: resourceKubernetesRoleBindingV1Read, - UpdateContext: resourceKubernetesRoleBindingV1Update, - DeleteContext: resourceKubernetesRoleBindingV1Delete, + Description: "A RoleBinding may be used to grant permission at the namespace level", + CreateContext: resourceKubernetesRoleBindingV1Create, + ReadContext: resourceKubernetesRoleBindingV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesRoleBindingV1Update, + DeleteContext: resourceKubernetesRoleBindingV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_role_v1.go b/kubernetes/resource_kubernetes_role_v1.go index acc0b2dbd1..30e9f5c22d 100644 --- a/kubernetes/resource_kubernetes_role_v1.go +++ b/kubernetes/resource_kubernetes_role_v1.go @@ -16,13 +16,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesRoleV1() *schema.Resource { +func resourceKubernetesRoleV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A role contains rules that represent a set of permissions. Permissions are purely additive (there are no “deny” rules).", - CreateContext: resourceKubernetesRoleV1Create, - ReadContext: resourceKubernetesRoleV1Read, - UpdateContext: resourceKubernetesRoleV1Update, - DeleteContext: resourceKubernetesRoleV1Delete, + Description: "A role contains rules that represent a set of permissions. Permissions are purely additive (there are no “deny” rules).", + CreateContext: resourceKubernetesRoleV1Create, + ReadContext: resourceKubernetesRoleV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesRoleV1Update, + DeleteContext: resourceKubernetesRoleV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_secret_v1.go b/kubernetes/resource_kubernetes_secret_v1.go index 21b41f15f9..e6ce1b90cd 100644 --- a/kubernetes/resource_kubernetes_secret_v1.go +++ b/kubernetes/resource_kubernetes_secret_v1.go @@ -23,13 +23,14 @@ import ( "k8s.io/utils/ptr" ) -func resourceKubernetesSecretV1() *schema.Resource { +func resourceKubernetesSecretV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "The resource provides mechanisms to inject containers with sensitive information, such as passwords, while keeping containers agnostic of Kubernetes. Secrets can be used to store sensitive information either as individual properties or coarse-grained entries like entire files or JSON blobs. The resource will by default create a secret which is available to any pod in the specified (or default) namespace.", - CreateContext: resourceKubernetesSecretV1Create, - ReadContext: resourceKubernetesSecretV1Read, - UpdateContext: resourceKubernetesSecretV1Update, - DeleteContext: resourceKubernetesSecretV1Delete, + Description: "The resource provides mechanisms to inject containers with sensitive information, such as passwords, while keeping containers agnostic of Kubernetes. Secrets can be used to store sensitive information either as individual properties or coarse-grained entries like entire files or JSON blobs. The resource will by default create a secret which is available to any pod in the specified (or default) namespace.", + CreateContext: resourceKubernetesSecretV1Create, + ReadContext: resourceKubernetesSecretV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesSecretV1Update, + DeleteContext: resourceKubernetesSecretV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_service_account_v1.go b/kubernetes/resource_kubernetes_service_account_v1.go index a673055537..aed0d7ee9a 100644 --- a/kubernetes/resource_kubernetes_service_account_v1.go +++ b/kubernetes/resource_kubernetes_service_account_v1.go @@ -22,13 +22,14 @@ import ( "k8s.io/utils/ptr" ) -func resourceKubernetesServiceAccountV1() *schema.Resource { +func resourceKubernetesServiceAccountV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A service account provides an identity for processes that run in a Pod. More info: https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/.", - CreateContext: resourceKubernetesServiceAccountV1Create, - ReadContext: resourceKubernetesServiceAccountV1Read, - UpdateContext: resourceKubernetesServiceAccountV1Update, - DeleteContext: resourceKubernetesServiceAccountV1Delete, + Description: "A service account provides an identity for processes that run in a Pod. More info: https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/.", + CreateContext: resourceKubernetesServiceAccountV1Create, + ReadContext: resourceKubernetesServiceAccountV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesServiceAccountV1Update, + DeleteContext: resourceKubernetesServiceAccountV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceKubernetesServiceAccountV1ImportState, }, diff --git a/kubernetes/resource_kubernetes_service_v1.go b/kubernetes/resource_kubernetes_service_v1.go index df30f447fa..07f3c96800 100644 --- a/kubernetes/resource_kubernetes_service_v1.go +++ b/kubernetes/resource_kubernetes_service_v1.go @@ -20,13 +20,14 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesServiceV1() *schema.Resource { +func resourceKubernetesServiceV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "A Service is an abstraction which defines a logical set of pods and a policy by which to access them - sometimes called a micro-service.", - CreateContext: resourceKubernetesServiceV1Create, - ReadContext: resourceKubernetesServiceV1Read, - UpdateContext: resourceKubernetesServiceV1Update, - DeleteContext: resourceKubernetesServiceV1Delete, + Description: "A Service is an abstraction which defines a logical set of pods and a policy by which to access them - sometimes called a micro-service.", + CreateContext: resourceKubernetesServiceV1Create, + ReadContext: resourceKubernetesServiceV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesServiceV1Update, + DeleteContext: resourceKubernetesServiceV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_stateful_set_v1.go b/kubernetes/resource_kubernetes_stateful_set_v1.go index 193cb685fe..c56c90701b 100644 --- a/kubernetes/resource_kubernetes_stateful_set_v1.go +++ b/kubernetes/resource_kubernetes_stateful_set_v1.go @@ -23,13 +23,14 @@ import ( "k8s.io/kubectl/pkg/polymorphichelpers" ) -func resourceKubernetesStatefulSetV1() *schema.Resource { +func resourceKubernetesStatefulSetV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Manages the deployment and scaling of a set of Pods , and provides guarantees about the ordering and uniqueness of these Pods. Like a Deployment , a StatefulSet manages Pods that are based on an identical container spec. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods. These pods are created from the same spec, but are not interchangeable: each has a persistent identifier that it maintains across any rescheduling. A StatefulSet operates under the same pattern as any other Controller. You define your desired state in a StatefulSet object, and the StatefulSet controller makes any necessary updates to get there from the current state.", - CreateContext: resourceKubernetesStatefulSetV1Create, - ReadContext: resourceKubernetesStatefulSetV1Read, - UpdateContext: resourceKubernetesStatefulSetV1Update, - DeleteContext: resourceKubernetesStatefulSetV1Delete, + Description: "Manages the deployment and scaling of a set of Pods , and provides guarantees about the ordering and uniqueness of these Pods. Like a Deployment , a StatefulSet manages Pods that are based on an identical container spec. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods. These pods are created from the same spec, but are not interchangeable: each has a persistent identifier that it maintains across any rescheduling. A StatefulSet operates under the same pattern as any other Controller. You define your desired state in a StatefulSet object, and the StatefulSet controller makes any necessary updates to get there from the current state.", + CreateContext: resourceKubernetesStatefulSetV1Create, + ReadContext: resourceKubernetesStatefulSetV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesStatefulSetV1Update, + DeleteContext: resourceKubernetesStatefulSetV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNamespaced, }, diff --git a/kubernetes/resource_kubernetes_storage_class_v1.go b/kubernetes/resource_kubernetes_storage_class_v1.go index 60ddb55cc2..73ba34b30f 100644 --- a/kubernetes/resource_kubernetes_storage_class_v1.go +++ b/kubernetes/resource_kubernetes_storage_class_v1.go @@ -20,11 +20,13 @@ import ( pkgApi "k8s.io/apimachinery/pkg/types" ) -func resourceKubernetesStorageClassV1() *schema.Resource { +func resourceKubernetesStorageClassV1(deprecationMessage string) *schema.Resource { return &schema.Resource{ - Description: "Storage class is the foundation of dynamic provisioning, allowing cluster administrators to define abstractions for the underlying storage platform. Read more [here] (https://kubernetes.io/blog/2017/03/dynamic-provisioning-and-storage-classes-kubernetes/)", - CreateContext: resourceKubernetesStorageClassV1Create, - ReadContext: resourceKubernetesStorageClassV1Read, + Description: "Storage class is the foundation of dynamic provisioning, allowing cluster administrators to define abstractions for the underlying storage platform. Read more [here] (https://kubernetes.io/blog/2017/03/dynamic-provisioning-and-storage-classes-kubernetes/)", + CreateContext: resourceKubernetesStorageClassV1Create, + ReadContext: resourceKubernetesStorageClassV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesStorageClassV1Update, DeleteContext: resourceKubernetesStorageClassV1Delete, Importer: &schema.ResourceImporter{ diff --git a/kubernetes/resource_kubernetes_validating_webhook_configuration_v1.go b/kubernetes/resource_kubernetes_validating_webhook_configuration_v1.go index cc414b2638..3835c69da2 100644 --- a/kubernetes/resource_kubernetes_validating_webhook_configuration_v1.go +++ b/kubernetes/resource_kubernetes_validating_webhook_configuration_v1.go @@ -20,15 +20,16 @@ import ( copier "github.com/jinzhu/copier" ) -func resourceKubernetesValidatingWebhookConfigurationV1() *schema.Resource { +func resourceKubernetesValidatingWebhookConfigurationV1(deprecationMessage string) *schema.Resource { apiDoc := admissionregistrationv1.ValidatingWebhookConfiguration{}.SwaggerDoc() webhookDoc := admissionregistrationv1.ValidatingWebhook{}.SwaggerDoc() return &schema.Resource{ - Description: "Validating Webhook Configuration configures a [validating admission webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#what-are-admission-webhooks).", - CreateContext: resourceKubernetesValidatingWebhookConfigurationV1Create, - ReadContext: resourceKubernetesValidatingWebhookConfigurationV1Read, - UpdateContext: resourceKubernetesValidatingWebhookConfigurationV1Update, - DeleteContext: resourceKubernetesValidatingWebhookConfigurationV1Delete, + Description: "Validating Webhook Configuration configures a [validating admission webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#what-are-admission-webhooks).", + CreateContext: resourceKubernetesValidatingWebhookConfigurationV1Create, + ReadContext: resourceKubernetesValidatingWebhookConfigurationV1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesValidatingWebhookConfigurationV1Update, + DeleteContext: resourceKubernetesValidatingWebhookConfigurationV1Delete, Importer: &schema.ResourceImporter{ StateContext: resourceIdentityImportNonNamespaced, }, diff --git a/kubernetes/resource_kubernetes_validating_webhook_configuration_v1beta1.go b/kubernetes/resource_kubernetes_validating_webhook_configuration_v1beta1.go index 41b7b61bf8..5003ad8e39 100644 --- a/kubernetes/resource_kubernetes_validating_webhook_configuration_v1beta1.go +++ b/kubernetes/resource_kubernetes_validating_webhook_configuration_v1beta1.go @@ -20,14 +20,15 @@ import ( copier "github.com/jinzhu/copier" ) -func resourceKubernetesValidatingWebhookConfigurationV1Beta1() *schema.Resource { +func resourceKubernetesValidatingWebhookConfigurationV1Beta1(deprecationMessage string) *schema.Resource { apiDoc := admissionregistrationv1.ValidatingWebhookConfiguration{}.SwaggerDoc() webhookDoc := admissionregistrationv1.ValidatingWebhook{}.SwaggerDoc() return &schema.Resource{ - CreateContext: resourceKubernetesValidatingWebhookConfigurationV1Beta1Create, - ReadContext: resourceKubernetesValidatingWebhookConfigurationV1Beta1Read, - UpdateContext: resourceKubernetesValidatingWebhookConfigurationV1Beta1Update, - DeleteContext: resourceKubernetesValidatingWebhookConfigurationV1Beta1Delete, + CreateContext: resourceKubernetesValidatingWebhookConfigurationV1Beta1Create, + ReadContext: resourceKubernetesValidatingWebhookConfigurationV1Beta1Read, + DeprecationMessage: deprecationMessage, + UpdateContext: resourceKubernetesValidatingWebhookConfigurationV1Beta1Update, + DeleteContext: resourceKubernetesValidatingWebhookConfigurationV1Beta1Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, },