diff --git a/docs/data-sources/kurrentcloud_network.md b/docs/data-sources/network.md similarity index 100% rename from docs/data-sources/kurrentcloud_network.md rename to docs/data-sources/network.md diff --git a/docs/data-sources/kurrentcloud_project.md b/docs/data-sources/project.md similarity index 100% rename from docs/data-sources/kurrentcloud_project.md rename to docs/data-sources/project.md diff --git a/docs/guides/aws.md b/docs/guides/aws.md index 17090c8..8931cfc 100644 --- a/docs/guides/aws.md +++ b/docs/guides/aws.md @@ -13,7 +13,7 @@ The sample project creates the following resources in Kurrent Cloud: - Network peering - Managed KurrentDB using single F1 node with 16GB disk -From the AWS side, you still need to accept the peering request and configure the route as described in the [documentation](https://developers.eventstore.com/cloud/provision/aws/#network-peering). +From the AWS side, you still need to accept the peering request and configure the route as described in the [documentation](https://docs.kurrent.io/cloud/getting-started/private-access/aws.html#network-peering). This step can be also automated using the AWS Terraform provider. ```terraform diff --git a/docs/guides/azure.md b/docs/guides/azure.md index ba52a63..93de928 100644 --- a/docs/guides/azure.md +++ b/docs/guides/azure.md @@ -14,7 +14,7 @@ The sample project creates the following resources in Kurrent Cloud: - Managed KurrentDB using single F1 node with 16GB disk From the Azure side, you still need to register the Kurrent Cloud service account with the necessary permissions to create a network peering. -Read more in the provisioning [documentation](https://developers.eventstore.com/cloud/provision/azure/#network-peering). +Read more in the provisioning [documentation](https://docs.kurrent.io/cloud/getting-started/private-access/azure.html#network-peering). ```terraform terraform { diff --git a/docs/guides/gcp.md b/docs/guides/gcp.md index feacfde..8e59e8e 100644 --- a/docs/guides/gcp.md +++ b/docs/guides/gcp.md @@ -13,7 +13,7 @@ The sample project creates the following resources in Kurrent Cloud: - Network peering - Managed KurrentDB using single F1 node with 16GB disk -From the GCP side, you still need to create an incoming peering from your GCP account towards the Kurrent Cloud VPC as described in the [documentation](https://developers.eventstore.com/cloud/provision/gcp/#network-peering). +From the GCP side, you still need to create an incoming peering from your GCP account towards the Kurrent Cloud VPC as described in the [documentation](https://docs.kurrent.io/cloud/getting-started/private-access/gcp.html#network-peering). This step can be also automated using the GCP Terraform provider. ```terraform diff --git a/docs/resources/kurrentcloud_acl.md b/docs/resources/acl.md similarity index 100% rename from docs/resources/kurrentcloud_acl.md rename to docs/resources/acl.md diff --git a/docs/resources/kurrentcloud_integration.md b/docs/resources/integration.md similarity index 77% rename from docs/resources/kurrentcloud_integration.md rename to docs/resources/integration.md index cb6c2a9..b814913 100644 --- a/docs/resources/kurrentcloud_integration.md +++ b/docs/resources/integration.md @@ -50,12 +50,12 @@ resource "kurrentcloud_integration" "slack_notifications" { ### Data Properties -- **source** (String) Can be either `issues` or `notifications`. See [here](https://developers.eventstore.com/cloud/integrations/#integration-sources) for information on the types of integration sources -- **sinks** (String) The type of this value determines the acceptable settings for `source` as well as what other properties are allowed in this field. See [here](https://developers.eventstore.com/cloud/integrations/#integration-sinks) for information on integration sinks +- **source** (String) Can be either `issues` or `notifications`. See [here](https://docs.kurrent.io/cloud/integrations/#integration-sources) for information on the types of integration sources +- **sinks** (String) The type of this value determines the acceptable settings for `source` as well as what other properties are allowed in this field. See [here](https://docs.kurrent.io/cloud/integrations/#integration-sinks) for information on integration sinks #### OpsGenie Data Properties -OpsGenie currently only supports the "issues" source. See [here](https://developers.eventstore.com/cloud/integrations/opsgenie.html#how-to-create-an-api-key) for more info on creating OpsGenie integrations. +OpsGenie currently only supports the "issues" source. See [here](https://docs.kurrent.io/cloud/integrations/opsgenie.html) for more info on creating OpsGenie integrations. - **api_key** (String) A secret key required to integrate with OpsGenie. @@ -63,9 +63,9 @@ OpsGenie currently only supports the "issues" source. See [here](https://develop #### Slack Data Properties -Slack currently only supports the "issues" and "notification" sources. See [here](https://developers.eventstore.com/cloud/integrations/slack.html) for more info on creating Slack integrations +Slack currently only supports the "issues" and "notification" sources. See [here](https://docs.kurrent.io/cloud/integrations/slack.html) for more info on creating Slack integrations -- **channel_id** (String) The channel in Slack that messages will be sent. See [here](https://developers.eventstore.com/cloud/integrations/slack.html) for more info. Can be retrieved as an output value. +- **channel_id** (String) The channel in Slack that messages will be sent. See [here](https://docs.kurrent.io/cloud/integrations/slack.html) for more info. Can be retrieved as an output value. - **token** (String) A secret token required to integrate with Slack. ~> The `token` value is considered private and so is NOT ever returned by the Event Store Cloud API. For that reason it is impossible to display it as a Terraform output value. diff --git a/docs/resources/kurrentcloud_integration_awscloudwatch_logs.md b/docs/resources/integration_awscloudwatch_logs.md similarity index 100% rename from docs/resources/kurrentcloud_integration_awscloudwatch_logs.md rename to docs/resources/integration_awscloudwatch_logs.md diff --git a/docs/resources/kurrentcloud_integration_awscloudwatch_metrics.md b/docs/resources/integration_awscloudwatch_metrics.md similarity index 100% rename from docs/resources/kurrentcloud_integration_awscloudwatch_metrics.md rename to docs/resources/integration_awscloudwatch_metrics.md diff --git a/docs/resources/kurrentcloud_managed_cluster.md b/docs/resources/managed_cluster.md similarity index 64% rename from docs/resources/kurrentcloud_managed_cluster.md rename to docs/resources/managed_cluster.md index f62aeaa..ea8e2e4 100644 --- a/docs/resources/kurrentcloud_managed_cluster.md +++ b/docs/resources/managed_cluster.md @@ -44,58 +44,6 @@ resource "kurrentcloud_managed_cluster" "example" { } ``` -## Accessing Initial Credentials - -When a managed cluster is created, Kurrent Cloud generates initial credentials for the `admin` and `ops` users. These credentials are available as computed attributes and can be accessed via Terraform outputs. - -### Example: Outputting Credentials - -```terraform -resource "kurrentcloud_managed_cluster" "example" { - # ... cluster configuration -} - -# Output the admin password -output "cluster_admin_password" { - description = "Initial admin password for the Kurrent cluster" - value = kurrentcloud_managed_cluster.example.initial_admin_password - sensitive = true -} - -# Output the ops password -output "cluster_ops_password" { - description = "Initial ops password for the Kurrent cluster" - value = kurrentcloud_managed_cluster.example.initial_ops_password - sensitive = true -} - -# Output the credentials generation timestamp -output "credentials_generated_at" { - description = "Timestamp when the initial credentials were generated" - value = kurrentcloud_managed_cluster.example.credentials_generated_at -} -``` - -### Accessing the Outputs - -After running `terraform apply`, you can retrieve the credentials: - -```bash -# View the credentials generation timestamp -terraform output credentials_generated_at - -# View sensitive credentials (requires -raw flag) -terraform output -raw cluster_admin_password -terraform output -raw cluster_ops_password -``` - -### Important Notes - -- **Initial credentials are only available once** and may be cleared by Kurrent Cloud for security reasons -- **Credentials are marked as sensitive** to prevent accidental exposure in logs -- **If credentials are no longer available**, the fields will be empty but the cluster will continue to function normally -- **Use these credentials promptly** to create additional users or change passwords as needed - ## Schema @@ -124,8 +72,6 @@ terraform output -raw cluster_ops_password - **credentials_generated_at** (String) Timestamp when the initial credentials were generated - **dns_name** (String) DNS address of the cluster -- **initial_admin_password** (String, Sensitive) Initial password for the admin user -- **initial_ops_password** (String, Sensitive) Initial password for the ops user - **region** (String) Region in which the cluster was created. Determined by the region of the Network - **resource_provider** (String) Provider in which the cluster was created. Determined by the provider of the Network. @@ -161,7 +107,7 @@ Production scale: - `M64` - `M128` -Check our [instance size guide](https://developers.eventstore.com/cloud/provision/cloud-instance-guidance/) to choose the right size for your workload. +Check our [instance size guide](https://docs.kurrent.io/cloud/ops/sizing.html) to choose the right size for your workload. Use one of the following values as `topology`: - `single-node` diff --git a/docs/resources/kurrentcloud_network.md b/docs/resources/network.md similarity index 100% rename from docs/resources/kurrentcloud_network.md rename to docs/resources/network.md diff --git a/docs/resources/kurrentcloud_peering.md b/docs/resources/peering.md similarity index 94% rename from docs/resources/kurrentcloud_peering.md rename to docs/resources/peering.md index 814f5c9..c4bc371 100644 --- a/docs/resources/kurrentcloud_peering.md +++ b/docs/resources/peering.md @@ -81,4 +81,4 @@ Import is supported using the following syntax: terraform import kurrentcloud_peering.example project_id:peering_id ``` -~> Keep in mind that additional operations might be required to activate the peering link. Check our [provisioning guidelines](https://developers.eventstore.com/cloud/provision/) for each of the supported cloud providers to know more. +~> Keep in mind that additional operations might be required to activate the peering link. Check our [Getting Started](https://docs.kurrent.io/cloud/getting-started/) docs for each of the supported cloud providers to know more. diff --git a/docs/resources/kurrentcloud_project.md b/docs/resources/project.md similarity index 100% rename from docs/resources/kurrentcloud_project.md rename to docs/resources/project.md diff --git a/docs/resources/kurrentcloud_scheduled_backup.md b/docs/resources/scheduled_backup.md similarity index 100% rename from docs/resources/kurrentcloud_scheduled_backup.md rename to docs/resources/scheduled_backup.md diff --git a/esc/resource_managed_cluster.go b/esc/resource_managed_cluster.go index 01f12db..740b4e3 100644 --- a/esc/resource_managed_cluster.go +++ b/esc/resource_managed_cluster.go @@ -169,23 +169,6 @@ func resourceManagedCluster() *schema.Resource { Optional: true, ForceNew: true, }, - "initial_admin_password": { - Description: "Initial password for the admin user", - Type: schema.TypeString, - Computed: true, - Sensitive: true, - }, - "initial_ops_password": { - Description: "Initial password for the ops user", - Type: schema.TypeString, - Computed: true, - Sensitive: true, - }, - "credentials_generated_at": { - Description: "Timestamp when the initial credentials were generated", - Type: schema.TypeString, - Computed: true, - }, }, } } @@ -348,23 +331,6 @@ func resourceEventstorecloudManagedCluster() *schema.Resource { Optional: true, ForceNew: true, }, - "initial_admin_password": { - Description: "Initial password for the admin user", - Type: schema.TypeString, - Computed: true, - Sensitive: true, - }, - "initial_ops_password": { - Description: "Initial password for the ops user", - Type: schema.TypeString, - Computed: true, - Sensitive: true, - }, - "credentials_generated_at": { - Description: "Timestamp when the initial credentials were generated", - Type: schema.TypeString, - Computed: true, - }, }, } } @@ -412,29 +378,6 @@ func resourceManagedClusterCreate( return err } - // Retrieve initial credentials after cluster is available - credentialsResp, credErr := c.client.ManagedClusterGetInitialCredentials( - ctx, - &client.GetManagedClusterInitialCredentialsRequest{ - OrganizationID: c.organizationId, - ProjectID: projectId, - ClusterID: resp.ClusterID, - }, - ) - - // Set credentials if successfully retrieved, but don't fail the resource creation if they're not available - if credErr == nil && credentialsResp != nil { - if err := d.Set("initial_admin_password", credentialsResp.AdminPassword); err != nil { - return diag.FromErr(err) - } - if err := d.Set("initial_ops_password", credentialsResp.OpsPassword); err != nil { - return diag.FromErr(err) - } - if err := d.Set("credentials_generated_at", credentialsResp.GeneratedAt); err != nil { - return diag.FromErr(err) - } - } - return resourceManagedClusterRead(ctx, d, meta) } @@ -521,40 +464,6 @@ func resourceManagedClusterRead( diags = append(diags, diag.FromErr(err)...) } - // Attempt to retrieve initial credentials, but don't fail if not available - credentialsResp, credErr := c.client.ManagedClusterGetInitialCredentials( - ctx, - &client.GetManagedClusterInitialCredentialsRequest{ - OrganizationID: c.organizationId, - ProjectID: projectId, - ClusterID: clusterId, - }, - ) - - // Only set credentials if successfully retrieved - if credErr == nil && credentialsResp != nil { - if err := d.Set("initial_admin_password", credentialsResp.AdminPassword); err != nil { - diags = append(diags, diag.FromErr(err)...) - } - if err := d.Set("initial_ops_password", credentialsResp.OpsPassword); err != nil { - diags = append(diags, diag.FromErr(err)...) - } - if err := d.Set("credentials_generated_at", credentialsResp.GeneratedAt); err != nil { - diags = append(diags, diag.FromErr(err)...) - } - } else { - // Clear credential fields if they're no longer available - if err := d.Set("initial_admin_password", ""); err != nil { - diags = append(diags, diag.FromErr(err)...) - } - if err := d.Set("initial_ops_password", ""); err != nil { - diags = append(diags, diag.FromErr(err)...) - } - if err := d.Set("credentials_generated_at", ""); err != nil { - diags = append(diags, diag.FromErr(err)...) - } - } - return diags } diff --git a/examples/resources/eventstorecloud_integration_awscloudwatch_logs/resource.tf b/examples/resources/eventstorecloud_integration_awscloudwatch_logs/resource.tf index e7993b5..fb793cc 100644 --- a/examples/resources/eventstorecloud_integration_awscloudwatch_logs/resource.tf +++ b/examples/resources/eventstorecloud_integration_awscloudwatch_logs/resource.tf @@ -1,3 +1,11 @@ +variable "region" { + type = string +} + +variable "stage" { + type = string +} + locals { describe_log_groups_arn = "arn:aws:logs:${var.region}:${data.aws_caller_identity.current.account_id}:log-group:*" } diff --git a/examples/resources/eventstorecloud_managed_cluster/resource.tf b/examples/resources/eventstorecloud_managed_cluster/resource.tf index c702921..bdccd49 100644 --- a/examples/resources/eventstorecloud_managed_cluster/resource.tf +++ b/examples/resources/eventstorecloud_managed_cluster/resource.tf @@ -26,5 +26,5 @@ resource "kurrentcloud_managed_cluster" "example" { disk_type = "gp3" disk_iops = 3000 disk_throughput = 125 - server_version = "23.10" + server_version = "26.0" } diff --git a/templates/data-sources/kurrentcloud_network.md.tmpl b/templates/data-sources/network.md.tmpl similarity index 100% rename from templates/data-sources/kurrentcloud_network.md.tmpl rename to templates/data-sources/network.md.tmpl diff --git a/templates/data-sources/kurrentcloud_project.md.tmpl b/templates/data-sources/project.md.tmpl similarity index 100% rename from templates/data-sources/kurrentcloud_project.md.tmpl rename to templates/data-sources/project.md.tmpl diff --git a/templates/guides/aws.md b/templates/guides/aws.md deleted file mode 100644 index f341b09..0000000 --- a/templates/guides/aws.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -subcategory: "" -page_title: "Provision Event Store Cloud resources in AWS" -description: |- - A sample Terraform project to provision all the Event Store Cloud resources in AWS. ---- - -# Event Store Cloud in AWS - -The sample project creates the following resources in Event Store Cloud: - -- Project -- Network -- Network peering -- Managed EventStoreDB using single F1 node with 16GB disk - -From the AWS side, you still need to accept the peering request and configure the route as described in the [documentation](https://developers.eventstore.com/cloud/provision/aws/#network-peering). -This step can be also automated using the AWS Terraform provider. - -```terraform -terraform { - required_providers { - kurrentcloud = { - source = "kurrent-io/kurrentcloud" - } - } -} - -provider "aws" { - -} - -provider "kurrentcloud" { -} - -data "aws_caller_identity" "example" { -} - -resource "aws_vpc" "example" { - cidr_block = "172.250.0.0/24" - - tags = { - Name = "eventstore-example" - } -} - -resource "kurrentcloud_project" "chicken_window" { - name = "Improved Chicken Window" -} - -resource "kurrentcloud_network" "chicken_window" { - name = "Chicken Window Net" - - project_id = kurrentcloud_project.chicken_window.id - - resource_provider = "aws" - region = "us-west-2" - cidr_block = "172.21.0.0/16" -} - -resource "kurrentcloud_peering" "peering" { - name = "Example Peering" - - project_id = kurrentcloud_network.chicken_window.project_id - network_id = kurrentcloud_network.chicken_window.id - - peer_resource_provider = kurrentcloud_network.chicken_window.resource_provider - peer_network_region = kurrentcloud_network.chicken_window.region - - peer_account_id = data.aws_caller_identity.example.account_id - peer_network_id = aws_vpc.example.id - routes = [aws_vpc.example.cidr_block] -} - -resource "aws_vpc_peering_connection_accepter" "peer" { - vpc_peering_connection_id = kurrentcloud_peering.peering.provider_metadata.aws_peering_link_id - auto_accept = true - - tags = { - Side = "Accepter" - Source = "Event Store" - } -} - -resource "aws_route" "peering" { - route_table_id = aws_vpc.example.main_route_table_id - destination_cidr_block = kurrentcloud_network.chicken_window.cidr_block - vpc_peering_connection_id = aws_vpc_peering_connection_accepter.peer.id -} - -resource "kurrentcloud_managed_cluster" "wings" { - name = "Wings Cluster" - - project_id = kurrentcloud_network.chicken_window.project_id - network_id = kurrentcloud_network.chicken_window.id - - topology = "single-node" - instance_type = "F1" - disk_size = 16 - disk_type = "gp3" - disk_iops = 3000 - disk_throughput = 125 - server_version = "23.10" -} - -output "chicken_window_id" { - value = kurrentcloud_project.chicken_window.id -} - -output "chicken_window_net" { - value = kurrentcloud_network.chicken_window -} - -output "chicken_window_peering" { - value = kurrentcloud_peering.peering -} - -output "wings_cluster_dns_name" { - value = kurrentcloud_managed_cluster.wings.dns_name -} -``` diff --git a/templates/guides/aws.md.tmpl b/templates/guides/aws.md.tmpl index 2096f28..eee5c5a 100644 --- a/templates/guides/aws.md.tmpl +++ b/templates/guides/aws.md.tmpl @@ -13,7 +13,7 @@ The sample project creates the following resources in Kurrent Cloud: - Network peering - Managed KurrentDB using single F1 node with 16GB disk -From the AWS side, you still need to accept the peering request and configure the route as described in the [documentation](https://developers.eventstore.com/cloud/provision/aws/#network-peering). +From the AWS side, you still need to accept the peering request and configure the route as described in the [documentation](https://docs.kurrent.io/cloud/getting-started/private-access/aws.html#network-peering). This step can be also automated using the AWS Terraform provider. {{ tffile "examples/aws/main.tf" }} diff --git a/templates/guides/azure.md b/templates/guides/azure.md deleted file mode 100644 index 9236cd6..0000000 --- a/templates/guides/azure.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -subcategory: "" -page_title: "Provision Kurrent Cloud resources in Azure" -description: |- - A sample Terraform project to provision all the Kurrent Cloud resources in Azure. ---- - -# Kurrent Cloud in Azure - -The sample project creates the following resources in Kurrent Cloud: - -- Project -- Network -- Network peering -- Managed KurrentDB using single F1 node with 16GB disk - -From the Azure side, you still need to register the Kurrent Cloud service account with the necessary permissions to create a network peering. -Read more in the provisioning [documentation](https://developers.eventstore.com/cloud/provision/azure/#network-peering). - -```terraform -terraform { - required_providers { - kurrentcloud = { - source = "kurrent-io/kurrentcloud" - } - azurerm = { - source = "hashicorp/azurerm" - } - azuread = { - source = "hashicorp/azuread" - } - } -} - -variable "eventstore_application_id" { - type = string - description = "Kurrent Cloud Production Application ID with access to peering creation" - default = "38bd60cb-6efa-49e8-a1cd-3b9f61d9435e" -} - -variable "azure_subscription_id" { - type = string - description = "Azure Subscruption ID" -} - -variable "esc_token" { - type = string - description = "Kurrent Cloud API token" -} - -variable "esc_organization_id" { - type = string - description = "Kurrent Cloud Organization ID" -} - -provider "azurerm" { - features {} - subscription_id = var.azure_subscription_id - skip_provider_registration = false -} - -provider "azuread" {} - -provider "kurrentcloud" { - token = var.esc_token - organization_id = var.esc_organization_id -} - -data "azurerm_client_config" "current" {} - -data "azuread_client_config" "current" {} - -data "azurerm_subscription" "current" {} - -resource "azurerm_resource_group" "chicken_window" { - name = "chicken-window" - location = "West US2" -} - -resource "kurrentcloud_project" "chicken_window" { - name = "Improved Chicken Window" -} - -resource "azurerm_virtual_network" "chicken_window" { - name = "chicken-window-network" - resource_group_name = azurerm_resource_group.chicken_window.name - address_space = ["10.0.0.0/16"] - location = azurerm_resource_group.chicken_window.location -} - -resource "kurrentcloud_network" "chicken_window" { - name = "Chicken Window Net" - - project_id = kurrentcloud_project.chicken_window.id - - resource_provider = "azure" - region = azurerm_resource_group.chicken_window.location - cidr_block = "10.2.0.0/16" -} - -// Access to Event Store Application should be granted to create peering between Azure Virtual Networks -resource "azuread_service_principal" "peering" { - application_id = var.kurrentcloud_application_id - app_role_assignment_required = false -} - -resource "azurerm_role_definition" "chicken_window_peering" { - name = "ESCPeering/${data.azurerm_subscription.current.id}/${azurerm_resource_group.chicken_window.name}/${azurerm_virtual_network.chicken_window.name}" - scope = data.azurerm_subscription.current.id - description = "Grants ESC access to manage peering connections on network ${azurerm_virtual_network.chicken_window.id}" - - permissions { - actions = [ - "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read", - "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write", - "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete", - "Microsoft.Network/virtualNetworks/peer/action" - ] - not_actions = [] - } - - assignable_scopes = [ - azurerm_virtual_network.chicken_window.id, - ] -} - -resource "azurerm_role_assignment" "chicken_window_peering" { - scope = azurerm_virtual_network.chicken_window.id - role_definition_name = azurerm_role_definition.chicken_window_peering.name - principal_id = azuread_service_principal.peering.id -} - -resource "kurrentcloud_peering" "peering" { - name = "Example Peering" - - project_id = kurrentcloud_network.chicken_window.project_id - network_id = kurrentcloud_network.chicken_window.id - - peer_resource_provider = kurrentcloud_network.chicken_window.resource_provider - peer_network_region = kurrentcloud_network.chicken_window.region - - peer_account_id = data.azurerm_client_config.current.tenant_id - peer_network_id = azurerm_virtual_network.chicken_window.id - routes = azurerm_virtual_network.chicken_window.address_space - - depends_on = [ - azurerm_role_assignment.chicken_window_peering, - ] -} - -resource "kurrentcloud_managed_cluster" "wings" { - name = "Wings Cluster" - - project_id = kurrentcloud_network.chicken_window.project_id - network_id = kurrentcloud_network.chicken_window.id - - topology = "three-node-multi-zone" - instance_type = "F1" - disk_size = 10 - disk_type = "premium-ssd-lrs" - server_version = "23.10" - projection_level = "user" -} - -output "chicken_window_id" { - value = kurrentcloud_project.chicken_window.id -} - -output "chicken_window_net" { - value = kurrentcloud_network.chicken_window -} - -output "chicken_window_peering" { - value = kurrentcloud_peering.peering -} - -output "wings_cluster_dns_name" { - value = kurrentcloud_managed_cluster.wings.dns_name -} -``` diff --git a/templates/guides/azure.md.tmpl b/templates/guides/azure.md.tmpl index ffbbc7d..688b95a 100644 --- a/templates/guides/azure.md.tmpl +++ b/templates/guides/azure.md.tmpl @@ -14,6 +14,6 @@ The sample project creates the following resources in Kurrent Cloud: - Managed KurrentDB using single F1 node with 16GB disk From the Azure side, you still need to register the Kurrent Cloud service account with the necessary permissions to create a network peering. -Read more in the provisioning [documentation](https://developers.eventstore.com/cloud/provision/azure/#network-peering). +Read more in the provisioning [documentation](https://docs.kurrent.io/cloud/getting-started/private-access/azure.html#network-peering). {{ tffile "examples/azure/main.tf" }} diff --git a/templates/guides/gcp.md b/templates/guides/gcp.md deleted file mode 100644 index 7a9502c..0000000 --- a/templates/guides/gcp.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -subcategory: "" -page_title: "Provision Kurrent Cloud resources in GCP" -description: |- - A sample Terraform project to provision all the Kurrent Cloud resources in Google Cloud. ---- - -# Kurrent Cloud in GCP - -The sample project creates the following resources in Kurrent Cloud: - -- Project -- Network -- Network peering -- Managed KurrentDB using single F1 node with 16GB disk - -From the GCP side, you still need to create an incoming peering from your GCP account towards the Event Store Cloud VPC as described in the [documentation](https://developers.eventstore.com/cloud/provision/gcp/#network-peering). -This step can be also automated using the GCP Terraform provider. - -```terraform -terraform { - required_providers { - kurrentcloud = { - source = "kurrent-io/kurrentcloud" - } - } -} - -variable "peering_route" { - type = string -} - -provider "kurrentcloud" { -} - -provider "google" { -} - -data "google_project" "project" { -} - -data "google_compute_network" "network" { - name = "default" -} - -resource "kurrentcloud_project" "chicken_window" { - name = "Improved Chicken Window" -} - -resource "kurrentcloud_network" "chicken_window" { - name = "Chicken Window Net" - - project_id = kurrentcloud_project.chicken_window.id - - resource_provider = "gcp" - region = "us-central1" - cidr_block = "172.29.0.0/16" -} - -resource "kurrentcloud_peering" "peering" { - name = "Example Peering" - - project_id = kurrentcloud_network.chicken_window.project_id - network_id = kurrentcloud_network.chicken_window.id - - peer_resource_provider = kurrentcloud_network.chicken_window.resource_provider - peer_network_region = kurrentcloud_network.chicken_window.region - - peer_account_id = data.google_project.project.project_id - peer_network_id = data.google_compute_network.network.name - routes = [var.peering_route] -} - -resource "kurrentcloud_managed_cluster" "wings" { - name = "Wings Cluster" - - project_id = kurrentcloud_network.chicken_window.project_id - network_id = kurrentcloud_network.chicken_window.id - - topology = "three-node-multi-zone" - instance_type = "F1" - disk_size = 16 - disk_type = "ssd" - server_version = "23.10" - projection_level = "user" -} - -resource "google_compute_network_peering" "example" { - name = "peering" - network = data.google_compute_network.default.id - peer_network = kurrentcloud_peering.peering.provider_metadata.gcp_network_id - export_custom_routes = true - import_custom_routes = true -} - -output "chicken_window_id" { - value = kurrentcloud_project.chicken_window.id -} - -output "chicken_window_net" { - value = kurrentcloud_network.chicken_window -} - -output "chicken_window_peering" { - value = kurrentcloud_peering.peering -} - -output "wings_cluster_dns_name" { - value = kurrentcloud_managed_cluster.wings.dns_name -} -``` diff --git a/templates/guides/gcp.md.tmpl b/templates/guides/gcp.md.tmpl index 0a683f2..117196f 100644 --- a/templates/guides/gcp.md.tmpl +++ b/templates/guides/gcp.md.tmpl @@ -13,7 +13,7 @@ The sample project creates the following resources in Kurrent Cloud: - Network peering - Managed KurrentDB using single F1 node with 16GB disk -From the GCP side, you still need to create an incoming peering from your GCP account towards the Kurrent Cloud VPC as described in the [documentation](https://developers.eventstore.com/cloud/provision/gcp/#network-peering). +From the GCP side, you still need to create an incoming peering from your GCP account towards the Kurrent Cloud VPC as described in the [documentation](https://docs.kurrent.io/cloud/getting-started/private-access/gcp.html#network-peering). This step can be also automated using the GCP Terraform provider. {{ tffile "examples/gcp/main.tf" }} diff --git a/templates/resources/kurrentcloud_acl.md.tmpl b/templates/resources/acl.md.tmpl similarity index 100% rename from templates/resources/kurrentcloud_acl.md.tmpl rename to templates/resources/acl.md.tmpl diff --git a/templates/resources/kurrentcloud_integration.md.tmpl b/templates/resources/integration.md.tmpl similarity index 75% rename from templates/resources/kurrentcloud_integration.md.tmpl rename to templates/resources/integration.md.tmpl index 5e8a52f..75c4a74 100644 --- a/templates/resources/kurrentcloud_integration.md.tmpl +++ b/templates/resources/integration.md.tmpl @@ -33,12 +33,12 @@ Manages integration resources, for example Slack or OpsGenie. ### Data Properties -- **source** (String) Can be either `issues` or `notifications`. See [here](https://developers.eventstore.com/cloud/integrations/#integration-sources) for information on the types of integration sources -- **sinks** (String) The type of this value determines the acceptable settings for `source` as well as what other properties are allowed in this field. See [here](https://developers.eventstore.com/cloud/integrations/#integration-sinks) for information on integration sinks +- **source** (String) Can be either `issues` or `notifications`. See [here](https://docs.kurrent.io/cloud/integrations/#integration-sources) for information on the types of integration sources +- **sinks** (String) The type of this value determines the acceptable settings for `source` as well as what other properties are allowed in this field. See [here](https://docs.kurrent.io/cloud/integrations/#integration-sinks) for information on integration sinks #### OpsGenie Data Properties -OpsGenie currently only supports the "issues" source. See [here](https://developers.eventstore.com/cloud/integrations/opsgenie.html#how-to-create-an-api-key) for more info on creating OpsGenie integrations. +OpsGenie currently only supports the "issues" source. See [here](https://docs.kurrent.io/cloud/integrations/opsgenie.html) for more info on creating OpsGenie integrations. - **api_key** (String) A secret key required to integrate with OpsGenie. @@ -46,9 +46,9 @@ OpsGenie currently only supports the "issues" source. See [here](https://develop #### Slack Data Properties -Slack currently only supports the "issues" and "notification" sources. See [here](https://developers.eventstore.com/cloud/integrations/slack.html) for more info on creating Slack integrations +Slack currently only supports the "issues" and "notification" sources. See [here](https://docs.kurrent.io/cloud/integrations/slack.html) for more info on creating Slack integrations -- **channel_id** (String) The channel in Slack that messages will be sent. See [here](https://developers.eventstore.com/cloud/integrations/slack.html) for more info. Can be retrieved as an output value. +- **channel_id** (String) The channel in Slack that messages will be sent. See [here](https://docs.kurrent.io/cloud/integrations/slack.html) for more info. Can be retrieved as an output value. - **token** (String) A secret token required to integrate with Slack. ~> The `token` value is considered private and so is NOT ever returned by the Event Store Cloud API. For that reason it is impossible to display it as a Terraform output value. diff --git a/templates/resources/kurrentcloud_integration_awscloudwatch_logs.md.tmpl b/templates/resources/integration_awscloudwatch_logs.md.tmpl similarity index 100% rename from templates/resources/kurrentcloud_integration_awscloudwatch_logs.md.tmpl rename to templates/resources/integration_awscloudwatch_logs.md.tmpl diff --git a/templates/resources/kurrentcloud_integration_awscloudwatch_metrics.md.tmpl b/templates/resources/integration_awscloudwatch_metrics.md.tmpl similarity index 100% rename from templates/resources/kurrentcloud_integration_awscloudwatch_metrics.md.tmpl rename to templates/resources/integration_awscloudwatch_metrics.md.tmpl diff --git a/templates/resources/kurrentcloud_managed_cluster.md.tmpl b/templates/resources/managed_cluster.md.tmpl similarity index 62% rename from templates/resources/kurrentcloud_managed_cluster.md.tmpl rename to templates/resources/managed_cluster.md.tmpl index ba436b9..056cade 100644 --- a/templates/resources/kurrentcloud_managed_cluster.md.tmpl +++ b/templates/resources/managed_cluster.md.tmpl @@ -17,58 +17,6 @@ Manages KurrentDB instances and clusters in Kurrent Cloud {{tffile "examples/resources/managed_cluster/example_1.tf"}} -## Accessing Initial Credentials - -When a managed cluster is created, Kurrent Cloud generates initial credentials for the `admin` and `ops` users. These credentials are available as computed attributes and can be accessed via Terraform outputs. - -### Example: Outputting Credentials - -```terraform -resource "kurrentcloud_managed_cluster" "example" { - # ... cluster configuration -} - -# Output the admin password -output "cluster_admin_password" { - description = "Initial admin password for the Kurrent cluster" - value = kurrentcloud_managed_cluster.example.initial_admin_password - sensitive = true -} - -# Output the ops password -output "cluster_ops_password" { - description = "Initial ops password for the Kurrent cluster" - value = kurrentcloud_managed_cluster.example.initial_ops_password - sensitive = true -} - -# Output the credentials generation timestamp -output "credentials_generated_at" { - description = "Timestamp when the initial credentials were generated" - value = kurrentcloud_managed_cluster.example.credentials_generated_at -} -``` - -### Accessing the Outputs - -After running `terraform apply`, you can retrieve the credentials: - -```bash -# View the credentials generation timestamp -terraform output credentials_generated_at - -# View sensitive credentials (requires -raw flag) -terraform output -raw cluster_admin_password -terraform output -raw cluster_ops_password -``` - -### Important Notes - -- **Initial credentials are only available once** and may be cleared by Kurrent Cloud for security reasons -- **Credentials are marked as sensitive** to prevent accidental exposure in logs -- **If credentials are no longer available**, the fields will be empty but the cluster will continue to function normally -- **Use these credentials promptly** to create additional users or change passwords as needed - ## Schema @@ -97,8 +45,6 @@ terraform output -raw cluster_ops_password - **credentials_generated_at** (String) Timestamp when the initial credentials were generated - **dns_name** (String) DNS address of the cluster -- **initial_admin_password** (String, Sensitive) Initial password for the admin user -- **initial_ops_password** (String, Sensitive) Initial password for the ops user - **region** (String) Region in which the cluster was created. Determined by the region of the Network - **resource_provider** (String) Provider in which the cluster was created. Determined by the provider of the Network. @@ -134,7 +80,7 @@ Production scale: - `M64` - `M128` -Check our [instance size guide](https://developers.eventstore.com/cloud/provision/cloud-instance-guidance/) to choose the right size for your workload. +Check our [instance size guide](https://docs.kurrent.io/cloud/ops/sizing.html) to choose the right size for your workload. Use one of the following values as `topology`: - `single-node` diff --git a/templates/resources/kurrentcloud_network.md.tmpl b/templates/resources/network.md.tmpl similarity index 100% rename from templates/resources/kurrentcloud_network.md.tmpl rename to templates/resources/network.md.tmpl diff --git a/templates/resources/kurrentcloud_peering.md.tmpl b/templates/resources/peering.md.tmpl similarity index 92% rename from templates/resources/kurrentcloud_peering.md.tmpl rename to templates/resources/peering.md.tmpl index 70879ee..2a5d0d5 100644 --- a/templates/resources/kurrentcloud_peering.md.tmpl +++ b/templates/resources/peering.md.tmpl @@ -55,4 +55,4 @@ Import is supported using the following syntax: terraform import kurrentcloud_peering.example project_id:peering_id ``` -~> Keep in mind that additional operations might be required to activate the peering link. Check our [provisioning guidelines](https://developers.eventstore.com/cloud/provision/) for each of the supported cloud providers to know more. +~> Keep in mind that additional operations might be required to activate the peering link. Check our [Getting Started](https://docs.kurrent.io/cloud/getting-started/) docs for each of the supported cloud providers to know more. diff --git a/templates/resources/kurrentcloud_project.md.tmpl b/templates/resources/project.md.tmpl similarity index 100% rename from templates/resources/kurrentcloud_project.md.tmpl rename to templates/resources/project.md.tmpl diff --git a/templates/resources/kurrentcloud_scheduled_backup.md.tmpl b/templates/resources/scheduled_backup.md.tmpl similarity index 100% rename from templates/resources/kurrentcloud_scheduled_backup.md.tmpl rename to templates/resources/scheduled_backup.md.tmpl