crossplane / crossplane/upjet

Some resources do not have entries in provider-metadata.yaml

Open
#43 1 comment 0 reactions 0 assignees View on GitHub
bug docgen v2
Dominant language
Go
Stars
481
Forks
131
Avg merge
2d 1h
Merged PRs (30d)
11

Description

### What problem are you facing?

Some resources don't have their entries even though their documentation file exists in the registry. The following is the full list currently.

AWS has some of the following with `'` character at the and some with repetition, like `aws_ec2_transit_gateway_route_table_propagation` appearing as [`aws_ec2_transit_gateway_route_table_propagation_table_propagation`](https://github.com/upbound/official-providers/blob/aws/v0.5.0/provider-aws/config/provider-metadata.yaml).
```
aws_elasticsearch_domain_policy
aws_guardduty_threatintelset
aws_kms_replica_key
aws_alb_listener_certificate
aws_guardduty_ipset
aws_opensearch_domain_policy
aws_guardduty_publishing_destination
aws_ec2_transit_gateway_route_table_association
aws_alb_listener_rule
aws_kms_replica_external_key
aws_ec2_transit_gateway_route_table_propagation

11 resources do not have registry data.

Generated 971 resources!
```

Azure
```
0 resources do not have registry data.

Generated 753 resources!
```

GCP has notably more but most of it comes from the fact that they don't have a separate page in TF registry at all, so there isn't much to be done for them.
```
google_project_iam_audit_config
google_folder_iam_audit_config
google_healthcare_fhir_store_iam_member
google_cloudfunctions_function_iam_binding
google_project_iam_member
google_compute_region_disk_iam_member
google_healthcare_consent_store_iam_member
google_privateca_ca_pool_iam_member
google_healthcare_dicom_store_iam_member
google_dataproc_job_iam_member
google_kms_crypto_key_iam_binding
google_notebooks_runtime_iam_binding
google_healthcare_dicom_store_iam_binding
google_endpoints_service_iam_member
google_tags_tag_value_iam_member
google_iap_web_iam_member
google_iap_app_engine_version_iam_binding
google_pubsub_subscription_iam_member
google_storage_bucket_iam_binding
google_endpoints_service_consumers_iam_member
google_healthcare_consent_store_iam_binding
google_kms_crypto_key_iam_member
google_iap_tunnel_instance_iam_binding
google_compute_subnetwork_iam_binding
google_spanner_database_iam_binding
google_bigquery_table_iam_member
google_iap_tunnel_iam_member
google_compute_subnetwork_iam_member
google_compute_disk_iam_member
google_healthcare_dataset_iam_member
google_notebooks_instance_iam_binding
google_data_catalog_entry_group_iam_binding
google_kms_key_ring_iam_binding
google_iap_app_engine_service_iam_member
google_data_catalog_tag_template_iam_member
google_tags_tag_key_iam_member
google_access_context_manager_access_policy_iam_member
google_dataproc_cluster_iam_binding
google_notebooks_instance_iam_member
google_cloud_run_service_iam_member
google_pubsub_subscription_iam_binding
google_folder_iam_member
google_iap_web_type_app_engine_iam_member
google_endpoints_service_consumers_iam_binding
google_bigtable_table_iam_member
google_iap_web_backend_service_iam_binding
google_kms_key_ring_iam_member
google_iap_web_type_compute_iam_member
google_dataproc_cluster_iam_member
google_iap_web_iam_binding
google_bigquery_table_iam_binding
google_compute_instance_iam_binding
google_service_account_iam_binding
google_healthcare_hl7_v2_store_iam_member
google_organization_iam_audit_config
google_compute_disk_iam_binding
google_sourcerepo_repository_iam_member
google_billing_account_iam_binding
google_spanner_instance_iam_member
google_compute_instance_iam_member
google_cloudfunctions_function_iam_member
google_organization_iam_binding
google_data_catalog_entry_group_iam_member
google_privateca_ca_pool_iam_binding
google_apigee_environment_iam_binding
google_spanner_database_iam_member
google_notebooks_runtime_iam_member
google_access_context_manager_access_policy_iam_binding
google_privateca_certificate_template_iam_member
google_pubsub_topic_iam_member
google_bigquery_dataset_iam_member
google_iap_web_backend_service_iam_member
google_folder_iam_binding
google_compute_region_disk_iam_binding
google_healthcare_dataset_iam_binding
google_iap_web_type_app_engine_iam_binding
google_secret_manager_secret_iam_binding
google_apigee_environment_iam_member
google_data_catalog_tag_template_iam_binding
google_bigtable_table_iam_binding
google_billing_account_iam_member
google_spanner_instance_iam_binding
google_healthcare_hl7_v2_store_iam_binding
google_tags_tag_value_iam_binding
google_bigquery_dataset_iam_binding
google_privateca_certificate_template_iam_binding
google_binary_authorization_attestor_iam_member
google_healthcare_fhir_store_iam_binding
google_pubsub_topic_iam_binding
google_storage_bucket_iam_member
google_dataproc_job_iam_binding
google_bigtable_instance_iam_binding
google_tags_tag_key_iam_binding
google_bigtable_instance_iam_member
google_endpoints_service_iam_binding
google_iap_tunnel_iam_binding
google_iap_app_engine_version_iam_member
google_binary_authorization_attestor_iam_binding
google_organization_iam_member
google_cloud_run_service_iam_binding
google_project_iam_binding
google_compute_image_iam_binding
google_iap_web_type_compute_iam_binding
google_iap_app_engine_service_iam_binding
google_secret_manager_secret_iam_member
google_sourcerepo_repository_iam_binding
google_iap_tunnel_instance_iam_member
google_compute_image_iam_member
google_service_account_iam_member
109 resources do not have registry data.

Generated 474 resources!
```

### How could Terrajet help solve your problem?

According to [this page](https://www.terraform.io/registry/providers/docs#directory-structure), Terraform Registry requires each markdown file to be named as its name but without the provider prefix, i.e. `kms_replica_key.md`. However, our scraper tries to infer the name from `Title` first and then from examples [here](https://github.com/upbound/upjet/blob/main/pkg/registry/meta.go#L57). It's doing a pretty good job but misses a few and it'd be way simpler if we end up with same or better rate if we can just use the name of the file since that's way simpler in the code. So, this issue can track that experiment.

There are cases, like [`azurerm_attestation`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/attestation), where the file name is different than the resource name but that's a bug of the TF provider and even TF registry shows it incorrectly because of that. In such cases, I think we should either fix upstream or put resource-specific workaround instead of accounting for it as a main scenario.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.