digitalocean / terraform-provider-digitalocean

Terraform DigitalOcean provider
https://registry.terraform.io/providers/digitalocean/digitalocean/latest/docs
Mozilla Public License 2.0
509 stars 278 forks source link

Improve Terraform Registry Documentation #1233

Closed publi0 closed 1 month ago

publi0 commented 1 month ago

Enhance DigitalOcean Terraform Provider Documentation with Subcategories

Current Situation

The current Terraform Registry documentation for the DigitalOcean provider lacks organization, making it difficult to navigate and find specific resources or data sources.

Current Documentation

All resources (including databases) are grouped together, which:

Proposed Improvement

Implement subcategories in the resources documentation markdown file to improve organization and readability.

Proposed Documentation with Subcategories

Benefits:

Implementation Challenges

The current Terraform documentation plugin doesn't have a built-in option to define subcategories, requiring manual definition in the markdown files.

Proposed Solution

Create a script to automatically adjust the markdown files and add the necessary subcategory definitions.

If this idea is approved, I volunteer to implement the solution :)

andrewsomething commented 1 month ago

Hi @publi0!

I think this is a great idea! We'd be very happy to accept a PR adding this. Let us know if you have any questions around categorization.

publi0 commented 1 month ago

I think the best approach is follow the digitalocean manage menu for categories

image
  1. App Platform

    • Resources:
      • digitalocean_app
    • Data Sources:
      • digitalocean_app
  2. Droplets

    • Resources:
      • digitalocean_droplet
      • digitalocean_droplet_snapshot
    • Data Sources:
      • digitalocean_droplet
      • digitalocean_droplets
      • digitalocean_image
      • digitalocean_images
      • digitalocean_sizes
  3. Kubernetes

    • Resources:
      • digitalocean_kubernetes_cluster
      • digitalocean_kubernetes_node_pool
    • Data Sources:
      • digitalocean_kubernetes_cluster
      • digitalocean_kubernetes_versions
  4. Volumes Block Storage

    • Resources:
      • digitalocean_volume
      • digitalocean_volume_attachment
    • Data Sources:
      • digitalocean_volume
  5. Databases

    • Resources:
      • digitalocean_database_cluster
      • digitalocean_database_db
      • digitalocean_database_replica
      • digitalocean_database_user
      • digitalocean_database_connection_pool
      • digitalocean_database_firewall
      • digitalocean_database_kafka_topic
      • digitalocean_database_mysql_config
      • digitalocean_database_postgresql_config
      • digitalocean_database_redis_config
    • Data Sources:
      • digitalocean_database_ca
      • digitalocean_database_cluster
      • digitalocean_database_replica
      • digitalocean_database_user
      • digitalocean_database_connection_pool
  6. Spaces Object Storage

    • Resources:
      • digitalocean_spaces_bucket
      • digitalocean_spaces_bucket_object
      • digitalocean_spaces_bucket_policy
      • digitalocean_spaces_bucket_cors_configuration
    • Data Sources:
      • digitalocean_spaces_bucket
      • digitalocean_spaces_bucket_object
      • digitalocean_spaces_bucket_objects
      • digitalocean_spaces_buckets
  7. Container Registry

    • Resources:
      • digitalocean_container_registry
      • digitalocean_container_registry_docker_credentials
    • Data Sources:
      • digitalocean_container_registry
  8. Backups & Snapshots

    • Resources:
      • digitalocean_droplet_snapshot
      • digitalocean_volume_snapshot
    • Data Sources:
      • digitalocean_droplet_snapshot
      • digitalocean_volume_snapshot
  9. Networking

    • Resources:
      • digitalocean_domain
      • digitalocean_record
      • digitalocean_certificate
      • digitalocean_loadbalancer
      • digitalocean_firewall
      • digitalocean_floating_ip
      • digitalocean_floating_ip_assignment
      • digitalocean_reserved_ip
      • digitalocean_reserved_ip_assignment
      • digitalocean_vpc
      • digitalocean_vpc_peering
      • digitalocean_cdn
    • Data Sources:
      • digitalocean_domain
      • digitalocean_domains
      • digitalocean_record
      • digitalocean_records
      • digitalocean_certificate
      • digitalocean_loadbalancer
      • digitalocean_firewall
      • digitalocean_floating_ip
      • digitalocean_reserved_ip
      • digitalocean_vpc
      • digitalocean_vpc_peering
  10. Monitoring

    • Resources:
      • digitalocean_monitor_alert
      • digitalocean_uptime_alert
      • digitalocean_uptime_check
  11. Account

    • Resources:
      • digitalocean_project
      • digitalocean_project_resources
      • digitalocean_ssh_key
      • digitalocean_tag
      • digitalocean_custom_image
    • Data Sources:
      • digitalocean_account
      • digitalocean_project
      • digitalocean_projects
      • digitalocean_ssh_key
      • digitalocean_ssh_keys
      • digitalocean_tag
      • digitalocean_tags
      • digitalocean_region
      • digitalocean_regions
publi0 commented 1 month ago

@andrewsomething I didn't find any Makefile or script referencing the Terraform plugin for generating documentation. Do you use the plugin, or do you build the documentation manually? If it's the latter, a script for automatically adjusting the subcategories wouldn't be necessary

andrewsomething commented 1 month ago

+1 for following the control panel's categorization.

Do you use the plugin, or do you build the documentation manually?

Currently we are creating the documentation manually.

andrewsomething commented 3 days ago

@publi0 This is now live with the latest release! Thanks again for the great contribution!

https://registry.terraform.io/providers/digitalocean/digitalocean/latest/docs