Skip to content

Commit ea438d0

Browse files
Deprecate unversioned Kubernetes resources and data source (#2770)
1 parent 1c4b7c8 commit ea438d0

File tree

49 files changed

+409
-311
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+409
-311
lines changed

.changelog/2770.txt

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
```release-note:deprecation
2+
**Data Sources**
3+
- `kubernetes_config_map` → use `kubernetes_config_map_v1`
4+
- `kubernetes_namespace` → use `kubernetes_namespace_v1`
5+
- `kubernetes_secret` → use `kubernetes_secret_v1`
6+
- `kubernetes_service` → use `kubernetes_service_v1`
7+
- `kubernetes_pod` → use `kubernetes_pod_v1`
8+
- `kubernetes_service_account` → use `kubernetes_service_account_v1`
9+
- `kubernetes_persistent_volume_claim` → use `kubernetes_persistent_volume_claim_v1`
10+
- `kubernetes_storage_class` → use `kubernetes_storage_class_v1`
11+
- `kubernetes_ingress` → use `kubernetes_ingress_v1`
12+
13+
**Resources**
14+
- `kubernetes_namespace` → use `kubernetes_namespace_v1`
15+
- `kubernetes_service` → use `kubernetes_service_v1`
16+
- `kubernetes_service_account` → use `kubernetes_service_account_v1`
17+
- `kubernetes_default_service_account` → use `kubernetes_default_service_account_v1`
18+
- `kubernetes_config_map` → use `kubernetes_config_map_v1`
19+
- `kubernetes_secret` → use `kubernetes_secret_v1`
20+
- `kubernetes_pod` → use `kubernetes_pod_v1`
21+
- `kubernetes_endpoints` → use `kubernetes_endpoints_v1`
22+
- `kubernetes_limit_range` → use `kubernetes_limit_range_v1`
23+
- `kubernetes_persistent_volume` → use `kubernetes_persistent_volume_v1`
24+
- `kubernetes_persistent_volume_claim` → use `kubernetes_persistent_volume_claim_v1`
25+
- `kubernetes_replication_controller` → use `kubernetes_replication_controller_v1`
26+
- `kubernetes_resource_quota` → use `kubernetes_resource_quota_v1`
27+
- `kubernetes_api_service` → use `kubernetes_api_service_v1`
28+
- `kubernetes_deployment` → use `kubernetes_deployment_v1`
29+
- `kubernetes_daemonset` → use `kubernetes_daemon_set_v1`
30+
- `kubernetes_stateful_set` → use `kubernetes_stateful_set_v1`
31+
- `kubernetes_job` → use `kubernetes_job_v1`
32+
- `kubernetes_cron_job` → use `kubernetes_cron_job_v1`
33+
- `kubernetes_horizontal_pod_autoscaler` → use `kubernetes_horizontal_pod_autoscaler_v1` or `kubernetes_horizontal_pod_autoscaler_v2`
34+
- `kubernetes_certificate_signing_request` → use `kubernetes_certificate_signing_request_v1`
35+
- `kubernetes_role` → use `kubernetes_role_v1`
36+
- `kubernetes_role_binding` → use `kubernetes_role_binding_v1`
37+
- `kubernetes_cluster_role` → use `kubernetes_cluster_role_v1`
38+
- `kubernetes_cluster_role_binding` → use `kubernetes_cluster_role_binding_v1`
39+
- `kubernetes_ingress` → use `kubernetes_ingress_v1`
40+
- `kubernetes_ingress_class` → use `kubernetes_ingress_class_v1`
41+
- `kubernetes_network_policy` → use `kubernetes_network_policy_v1`
42+
- `kubernetes_pod_disruption_budget` → use `kubernetes_pod_disruption_budget_v1`
43+
- `kubernetes_pod_security_policy` → removed upstream; use Pod Security Admission instead
44+
- `kubernetes_priority_class` → use `kubernetes_priority_class_v1`
45+
- `kubernetes_validating_webhook_configuration` → use `kubernetes_validating_webhook_configuration_v1`
46+
- `kubernetes_mutating_webhook_configuration` → use `kubernetes_mutating_webhook_configuration_v1`
47+
- `kubernetes_storage_class` → use `kubernetes_storage_class_v1`
48+
- `kubernetes_csi_driver` → use `kubernetes_csi_driver_v1`
49+
```

kubernetes/data_source_kubernetes_config_map_v1.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ import (
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
)
1515

16-
func dataSourceKubernetesConfigMapV1() *schema.Resource {
16+
func dataSourceKubernetesConfigMapV1(deprecationMessage string) *schema.Resource {
1717
return &schema.Resource{
18-
Description: "Config Maps are key-value pairs containing configuration data. The Config Map data source provides a mechanism for extracting these key-value pairs.",
19-
ReadContext: dataSourceKubernetesConfigMapV1Read,
18+
Description: "Config Maps are key-value pairs containing configuration data. The Config Map data source provides a mechanism for extracting these key-value pairs.",
19+
ReadContext: dataSourceKubernetesConfigMapV1Read,
20+
DeprecationMessage: deprecationMessage,
2021

2122
Schema: map[string]*schema.Schema{
2223
"metadata": namespacedMetadataSchema("config_map", false),

kubernetes/data_source_kubernetes_ingress.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ func dataSourceKubernetesIngress() *schema.Resource {
2323
docIngressSpec := networking.IngressSpec{}.SwaggerDoc()
2424

2525
return &schema.Resource{
26-
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.",
27-
ReadContext: dataSourceKubernetesIngressRead,
26+
DeprecationMessage: "Deprecated: this data source will be removed in the next major version of the provider. Use kubernetes_ingress_v1 instead.",
27+
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.",
28+
ReadContext: dataSourceKubernetesIngressRead,
2829
Schema: map[string]*schema.Schema{
2930
"metadata": namespacedMetadataSchema("ingress", false),
3031
"spec": {

kubernetes/data_source_kubernetes_namespace_v1.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ import (
1414
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1515
)
1616

17-
func dataSourceKubernetesNamespaceV1() *schema.Resource {
17+
func dataSourceKubernetesNamespaceV1(deprecationMessage string) *schema.Resource {
1818
return &schema.Resource{
19-
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.",
20-
ReadContext: dataSourceKubernetesNamespaceV1Read,
19+
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.",
20+
ReadContext: dataSourceKubernetesNamespaceV1Read,
21+
DeprecationMessage: deprecationMessage,
2122

2223
Schema: map[string]*schema.Schema{
2324
"metadata": metadataSchema("namespace", false),

kubernetes/data_source_kubernetes_persistent_volume_claim_v1.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ import (
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
)
1515

16-
func dataSourceKubernetesPersistentVolumeClaimV1() *schema.Resource {
16+
func dataSourceKubernetesPersistentVolumeClaimV1(deprecationMessage string) *schema.Resource {
1717
return &schema.Resource{
18-
Description: "A PersistentVolumeClaim (PVC) is a request for storage by a user. This data source retrieves information about the specified PVC.",
19-
ReadContext: dataSourceKubernetesPersistentVolumeClaimV1Read,
18+
Description: "A PersistentVolumeClaim (PVC) is a request for storage by a user. This data source retrieves information about the specified PVC.",
19+
ReadContext: dataSourceKubernetesPersistentVolumeClaimV1Read,
20+
DeprecationMessage: deprecationMessage,
2021

2122
Schema: map[string]*schema.Schema{
2223
"metadata": namespacedMetadataSchema("persistent volume claim", true),

kubernetes/data_source_kubernetes_pod_v1.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@ import (
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
)
1515

16-
func dataSourceKubernetesPodV1() *schema.Resource {
16+
func dataSourceKubernetesPodV1(deprecationMessage string) *schema.Resource {
1717
podSpecFields := podSpecFields(false, false)
1818
// Setting this default to false prevents a perpetual diff caused by volume_mounts
1919
// being mutated on the server side as Kubernetes automatically adds a mount
2020
// for the service account token
2121
return &schema.Resource{
22-
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/.",
23-
ReadContext: dataSourceKubernetesPodV1Read,
22+
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/.",
23+
ReadContext: dataSourceKubernetesPodV1Read,
24+
DeprecationMessage: deprecationMessage,
2425

2526
Schema: map[string]*schema.Schema{
2627
"metadata": namespacedMetadataSchema("pod", true),

kubernetes/data_source_kubernetes_secret_v1.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ import (
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
)
1515

16-
func dataSourceKubernetesSecretV1() *schema.Resource {
16+
func dataSourceKubernetesSecretV1(deprecationMessage string) *schema.Resource {
1717
return &schema.Resource{
18-
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.",
19-
ReadContext: dataSourceKubernetesSecretV1Read,
18+
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.",
19+
ReadContext: dataSourceKubernetesSecretV1Read,
20+
DeprecationMessage: deprecationMessage,
2021

2122
Schema: map[string]*schema.Schema{
2223
"metadata": namespacedMetadataSchema("secret", true),

kubernetes/data_source_kubernetes_service_account_v1.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@ import (
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
)
1515

16-
func dataSourceKubernetesServiceAccountV1() *schema.Resource {
16+
func dataSourceKubernetesServiceAccountV1(deprecationMessage string) *schema.Resource {
1717
return &schema.Resource{
18-
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/.",
19-
ReadContext: dataSourceKubernetesServiceAccountV1Read,
18+
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/.",
19+
ReadContext: dataSourceKubernetesServiceAccountV1Read,
20+
DeprecationMessage: deprecationMessage,
2021

2122
Schema: map[string]*schema.Schema{
2223
"metadata": namespacedMetadataSchema("service account", false),

kubernetes/data_source_kubernetes_service_v1.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ import (
1515
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1616
)
1717

18-
func dataSourceKubernetesServiceV1() *schema.Resource {
18+
func dataSourceKubernetesServiceV1(deprecationMessage string) *schema.Resource {
1919
return &schema.Resource{
20-
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.",
21-
ReadContext: dataSourceKubernetesServiceV1Read,
20+
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.",
21+
ReadContext: dataSourceKubernetesServiceV1Read,
22+
DeprecationMessage: deprecationMessage,
23+
2224
Schema: map[string]*schema.Schema{
2325
"metadata": namespacedMetadataSchema("service", false),
2426
"spec": {

kubernetes/data_source_kubernetes_storage_class_v1.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ import (
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
)
1515

16-
func dataSourceKubernetesStorageClassV1() *schema.Resource {
16+
func dataSourceKubernetesStorageClassV1(deprecationMessage string) *schema.Resource {
1717
return &schema.Resource{
18-
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/",
19-
ReadContext: dataSourceKubernetesStorageClassV1Read,
18+
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/",
19+
ReadContext: dataSourceKubernetesStorageClassV1Read,
20+
DeprecationMessage: deprecationMessage,
21+
2022
Schema: map[string]*schema.Schema{
2123
"metadata": metadataSchema("storage class", false),
2224
"parameters": {

0 commit comments

Comments
 (0)