GithubHelp home page GithubHelp logo

scylladb / terraform-provider-scylladbcloud Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 8.0 347 KB

Terraform provider for ScyllaDB Cloud.

Home Page: https://registry.terraform.io/providers/scylladb/scylladbcloud/latest

License: Apache License 2.0

Go 100.00%
cassandra terraform terraform-provider scylla-cloud scylla scylla-cluster scylladb scylladb-cluster scylladb-cloud

terraform-provider-scylladbcloud's Introduction

terraform-provider-scylladbcloud

This is the repository for the Terraform Scylla Cloud Provider, which allows one to use Terraform with ScyllaDB's Database as a Service, Scylla Cloud. For general information about Terraform, visit the official website and the GitHub project page. For details about Scylla Cloud, see Scylla Cloud Documentation. The provider is using Scylla Cloud REST API.

Prerequisites

Provider configuration

In order to configure provider pass a token you obtained from ScyllaDB Cloud:

terraform {
	required_providers {
		scylladbcloud = {
			source = "registry.terraform.io/scylladb/scylladbcloud"
		}
	}
}

provider "scylladbcloud" {
	token = "..."
}

Run terraform apply in order to create a cluster or terraform destroy in order to delete it.

You can also import an existing cluster by providing its ID:

resource "scylladbcloud_cluster" "mycluster" { }

Run terraform import scylladbcloud_cluster.mycluster 123 to import an existing cluster into the state file.

For debugging / troubleshooting please Terraform debugging documentation.

Demo Video

Watch a demo of using Scylla Cloud Terrafrom Provider

terraform-provider-scylladbcloud's People

Contributors

annastuchlik avatar charconstpointer avatar dependabot[bot] avatar dkropachev avatar ksinica avatar nuivall avatar rjeczalik avatar tzach avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

terraform-provider-scylladbcloud's Issues

internal/scylla: client crash when building cloud metadata

In EC2 Lab I created a new account 50782, verified billing for it, and generated the API token using Scylla Cloud CLI.
Here is my Terraform config (it is based on the examples, except I define the endpoint to use LAB API):

terraform {
    required_providers {
        scylladbcloud = {
            source = "scylladb/scylladbcloud"
        }
    }
}

provider "scylladbcloud" {
    endpoint = "https://api-v2.lab.dbaas.scyop.net"
    token    = MY_TOKEN
}

# Create a cluster on AWS cloud.
resource "scylladbcloud_cluster" "example" {
    name       = "My Cluster"
    cloud      = "AWS"
    region     = "us-east-1"
    node_count = 3
    node_type  = "i3.xlarge"
    cidr_block = "172.31.0.0/16"

    enable_vpc_peering = true
    enable_dns         = true
}

output "scylladbcloud_cluster_id" {
    value = scylladbcloud_cluster.example.id
}

output "scylladbcloud_cluster_datacenter" {
    value = scylladbcloud_cluster.example.datacenter
}

terraform init works

$ terraform init

Initializing the backend...

Initializing provider plugins...
- Finding latest version of scylladb/scylladbcloud...
- Installing scylladb/scylladbcloud v1.3.0...
- Installed scylladb/scylladbcloud v1.3.0 (self-signed, key ID A25EFAA782EF5641)

Partner and community providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://www.terraform.io/docs/cli/plugins/signing.html

Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

terraform plan returns the error

$ terraform plan
╷
│ Error: Request cancelled
│ 
│   with provider["registry.terraform.io/scylladb/scylladbcloud"],
│   on main.tf line 9, in provider "scylladbcloud":
│    9: provider "scylladbcloud" {
│ 
│ The plugin.(*GRPCProvider).ConfigureProvider request was cancelled.
╵

Stack trace from the terraform-provider-scylladbcloud_v1.3.0 plugin:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x6e5de7]

goroutine 83 [running]:
github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla.(*Client).callAPI(0xc00037e510, {0xd77860?, 0xc000691440}, {0xc44172?, 0x0?}, {0xc00003e540?, 0x44d454?}, {0x0?, 0x0?}, {0xb258e0, ...}, ...)
	github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla/client.go:180 +0x687
github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla.(*Client).get(...)
	github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla/client.go:187
github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla.(*Client).ListCloudProviderRegions(0xbaf5e0?, {0xd77860, 0xc000691440}, 0xd6ed78?)
	github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla/endpoints.go:22 +0x150
github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla.BuildCloudmeta({0xd77860, 0xc000691440}, 0xc4b6d3?)
	github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla/cloudmeta.go:99 +0x33d
github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla.(*Client).Auth(0xc00037e510, {0xd77860, 0xc000691440}, {0xc00003e630, 0x27})
	github.com/scylladb/terraform-provider-scylladbcloud/internal/scylla/client.go:51 +0x1e9
github.com/scylladb/terraform-provider-scylladbcloud/internal/provider.configure({0xd77860, 0xc000691440}, 0xc000280720, 0x1?)
	github.com/scylladb/terraform-provider-scylladbcloud/internal/provider/provider.go:81 +0x2b7
github.com/scylladb/terraform-provider-scylladbcloud/internal/provider.New.func1({0xd77860?, 0xc000691440?}, 0xc000691440?)
	github.com/scylladb/terraform-provider-scylladbcloud/internal/provider/provider.go:53 +0x2d
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Provider).Configure(0xc000280720, {0xd77860, 0xc000691440}, 0xd?)
	github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/provider.go:297 +0x1f5
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ConfigureProvider(0xc0002845e8, {0xd77860?, 0xc000691020?}, 0xc0000112d8)
	github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/grpc_provider.go:557 +0x345
github.com/hashicorp/terraform-plugin-mux/tf5muxserver.muxServer.ConfigureProvider({0xc00037e570, 0xc00037e5d0, {0xc0003b8480, 0x1, 0x1}, 0xc00037e5a0, 0xc000287dd0, 0xc000287dc0, 0xc00037e600}, {0xd77860, ...}, ...)
	github.com/hashicorp/[email protected]/tf5muxserver/mux_server_ConfigureProvider.go:25 +0x1f3
github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server.(*server).Configure(0xc0002a9040, {0xd77860?, 0xc000690720?}, 0xc00022e780)
	github.com/hashicorp/[email protected]/tfprotov5/tf5server/server.go:556 +0x2d3
github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_Configure_Handler({0xc19c20?, 0xc0002a9040}, {0xd77860, 0xc000690720}, 0xc0000f9570, 0x0)
	github.com/hashicorp/[email protected]/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:331 +0x170
google.golang.org/grpc.(*Server).processUnaryRPC(0xc0003303c0, {0xd7b360, 0xc000102680}, 0xc0002ea6c0, 0xc000478600, 0x11fccf8, 0x0)
	google.golang.org/[email protected]/server.go:1340 +0xd23
google.golang.org/grpc.(*Server).handleStream(0xc0003303c0, {0xd7b360, 0xc000102680}, 0xc0002ea6c0, 0x0)
	google.golang.org/[email protected]/server.go:1713 +0xa2f
google.golang.org/grpc.(*Server).serveStreams.func1.2()
	google.golang.org/[email protected]/server.go:965 +0x98
created by google.golang.org/grpc.(*Server).serveStreams.func1
	google.golang.org/[email protected]/server.go:963 +0x28a

Error: The terraform-provider-scylladbcloud_v1.3.0 plugin crashed!

This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.

I also tried to create the same cluster using Scylla Cloud API directly with curl - it worked.

$ curl -X POST https://api-v2.lab.dbaas.scyop.net/account/50782/cluster \
    -H "Authorization: Bearer MY_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"clusterName":"My Cluster","scyllaVersionId":108,"cidrBlock":"172.31.0.0/16","broadcastType":"PRIVATE","allowedIPs":[],"cloudProviderId":1,"regionId":1,"instanceId":2,"replicationFactor":3,"numberOfNodes":3,"accountCredentialId":1,"freeTier":false,"userApiInterface":"CQL","enableDnsAssociation":true}'

{"data":{"requestId":78321,"fields":{"clusterName":"My Cluster","scyllaVersionId":108,"cidrBlock":"172.31.0.0/16","allowedIPs":[],"cloudProviderId":1,"regionId":1,"instanceId":2,"replicationFactor":3,"numberOfNodes":3,"promProxy":false,"accountCredentialId":1,"freeTier":false,"alternatorWriteIsolation":"","userApiInterface":"CQL","enableDnsAssociation":true,"broadcastType":"PRIVATE","scyllaVersion":{"versionId":108,"version":"2022.2.0","description":"Scylla Enterprise 2022.2.0","newCluster":"ENABLED"},"cloudProvider":{"id":1,"name":"AWS","rootAccountId":"734708892259"},"region":{"id":1,"externalId":"us-east-1","cloudProviderId":1,"name":"us-east-1","dcName":"AWS_US_EAST_1","fullName":"US East (N. Virginia)","continent":"America","backupStorageGBCost":"0.023","trafficSameRegionInGBCost":"0.01","trafficSameRegionOutGBCost":"0.01","trafficCrossRegionOutGBCost":"0.02","trafficInternetOutGBCost":"0.09"},"instance":{"id":2,"externalId":"i3.xlarge","cloudProviderId":1,"groupDefault":true,"displayOrder":3,"memory":31232,"localDiskCount":1,"totalStorage":972,"cpuCount":4,"networkSpeed":10240,"externalStorageNetworkSpeed":0,"costPerHour":"0.654","environment":"PRODUCTION","licenseCostOnDemandPerHour":"0.342","subscriptionCostHourly":"0.69608","instanceCostHourly":"0.312","freeTierHours":0}}}}

Sometimes getting http 400 errors from https://api.cloud.scylladb.com/account/default

Usually it doesn't happen when creating resources (initial apply), but later when doing some next operation. It looks like this:

null_resource.loader[1]: Refreshing state... [id=3848942540827480772]
╷
│ Error: Error "" (http status 400, url="https://api.cloud.scylladb.com/account/default"): "". Trace id: "".
│ 
│   with provider["registry.terraform.io/scylladb/scylladbcloud"],
│   on scylla.tf line 1, in provider "scylladbcloud":
│    1: provider "scylladbcloud" {
│ 
╵

on tf plugin side:

[DEBUG] (400) GET https://api.cloud.scylladb.com/account/default:

<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>cloudflare</center>
</body>
</html>

I can't reproduce with curl, e.g. curl -XGET -H 'Authorization: Bearer ...' -H 'Accept: application/json' -H 'User-Agent: Terraform/1.3.6((linux/amd64))' https://api.cloud.scylladb.com/account/default isn't failing.

I am not sure if this is terraform provider related or something in the infra, if the latter please transfer the issue.

Token

Hi there.

I'm trying to create my first resource (a serverless cluster) using terraform. But something is not right with my autentication.

What I'm running:

 terragrunt plan
Acquiring state lock. This may take a few moments...

Planning failed. Terraform encountered an error while generating this plan.

╷
│ Error: could not build Cloudmeta: failed to read scylla versions: Get "https://api.cloud.scylladb.com/deployment/scylla-versions?defaults=true": tls: failed to verify certificate: x509: certificate signed by unknown authority
│
│   with provider["registry.terraform.io/scylladb/scylladbcloud"],
│   on provider.tf line 2, in provider "scylladbcloud":
│    2:     provider "scylladbcloud" {
│
╵
ERRO[0006] Terraform invocation failed in 
ERRO[0006] 1 error occurred:
        * ...] exit status 1

I also tryied to run the command below, without success:


curl --url https://api.cloud.scylladb.com/deployment/cloud-providers --header 'Authorization: Bearer MY_TOKEN' 

The command below worked:

curl --url https://api.cloud.scylladb.com/deployment/cloud-providers --header 'Authorization: Bearer MY_TOKEN' --insecure

Is there a way to pass to terraform the insecure?
What should i do to this to work?

Thanks,
Cristiana Santos

if serverless cluster is deleted `terraform destroy` endup in error "Error "040001": Request has failed. For more details consult the error code"

Steps to reproduce:

  1. Create cluster definition file main.tf:
resource "scylladbcloud_serverless_cluster" "k8s" {
  name = "K8S-statuspage-test"
}
  1. Deploy it: terraform apply -auto-approve
  2. Go onto UI and drop the cluster, wait till cluster is deleted
  3. Try to destroy the cluster: terraform destroy -auto-approve:
scylladbcloud_serverless_cluster.serverless: Refreshing state... [id=70]
╷
│ Error: error reading serverless cluster request: Error "040001": Request has failed. For more details consult the error code (http status 200, url "https://app-api-dkropachev.ext.lab.scylla.cloud/account/100000/cluster/70/request?type=CREATE_CLUSTER")

github: ci

best repurpose existing pipelines from other well-established providers

should have

  • golangci-lint
  • semgrep

should run on public runners (ubuntu), on PR [created] and push [branch: main]

github: cd

  • relies on e2e env
  • runs on self-hosted runner
  • on tag [created]
  • runs e2e, published artefacts on success

Missing handling for FAILED cluster creation

When I got:

│ Error: error waiting for cluster: unrecognized cluster request status: "FAILED"
│ 
│   with scylladbcloud_cluster.scylla[0],
│   on scylla.tf line 13, in resource "scylladbcloud_cluster" "scylla":
│   13: resource "scylladbcloud_cluster" "scylla" {
│ 

then no further command worked, for instance refresh:

│ Error: error reading cluster request: Error "040001" (http status 0, url="https://api.cloud.scylladb.com/account/2452/cluster/11611/request?type=CREATE_CLUSTER"): "Request has failed. For more details consult the error code". Trace id: "".

I had to manually remove cluster from tfstate file to make a retry.

provider: reimplement logging and request tracing

Currently the provider:

  • uses printfs for logging
  • always reads payload and printfs it (poor-man-tracing)

Use more terraform-sdk-idiomatic building blocks and reimplement logging and request tracing.

provider: add cloud attribute to cluster resource

The scylladbcloud_cluster.cloud attribute defaults to AWS, however there is currently no way to change it. Add a cloud attribute like:

diff --git a/internal/provider/cluster.go b/internal/provider/cluster.go
index 8e9acb0..2ad0857 100644
--- a/internal/provider/cluster.go
+++ b/internal/provider/cluster.go
@@ -43,6 +43,13 @@ func ResourceCluster() *schema.Resource {
                                Computed:    true,
                                Type:        schema.TypeInt,
                        },
+                       "cloud": {
+                               Description: "Cluster name",
+                               Required:    true,
+                               ForceNew:    true,
+                               Default:     "AWS",
+                               Type:        schema.TypeString,
+                       },

Also please add specialised fields to scylladbcloud_vpc_peering resource when cluster.CloudProviderID is GCP and ensure end-to-end tests work.

vpc_peering: unable to find cluster for peering connection ID: "x"

When cluster is deleted manually, vpc_peering lookup fails with:

╷
│ Error: unable to find cluster for peering connection ID: "scylla-cloud-vpc-28-peering-9bffcde558a1844abe46"
│
│   with scylladbcloud_vpc_peering.example,
│   on main.tf line 54, in resource "scylladbcloud_vpc_peering" "example":
│   54: resource "scylladbcloud_vpc_peering" "example" {
│
╵

Missing datacenter field

Often (perhaps even always) on first run I am getting:

scylladbcloud_cluster.scylla[0]: Creation complete after 12m26s [id=11596]
╷
│ Error: Missing required argument
│ 
│   with scylladbcloud_vpc_peering.scylla_pc[0],
│   on scylla.tf line 33, in resource "scylladbcloud_vpc_peering" "scylla_pc":
│   33: 	datacenter = scylladbcloud_cluster.scylla[count.index].datacenter
│ 
│ The argument "datacenter" is required, but no definition was found.

where vpc resource is:

resource "scylladbcloud_vpc_peering" "scylla_pc" {
  count  = local.scylla_testing ? 1 : 0

	cluster_id = scylladbcloud_cluster.scylla[count.index].id
	datacenter = scylladbcloud_cluster.scylla[count.index].datacenter

	peer_vpc_id     = aws_vpc.loader_vpc.id
	peer_cidr_block = aws_vpc.loader_vpc.cidr_block
	peer_region     = var.aws_region
	peer_account_id = local.account_id

	allow_cql = true
}

so it depends on scylladbcloud_cluster.scylla, looks like initially datacenter field is missing. Perhaps terraform doesn't do Read immediately after Create and expects that Create returns all computed values?

internal/scylla: add resilience to http client

It might happen, especially if dev environment is used, that an ongoing operation may fail with 502 errors:

2023-01-30T10:26:27.356+0100 [WARN]  unexpected data: registry.terraform.io/scylladb/scylladbcloud:stdout="[DEBUG] (502) GET https://app-api-tfe2e.ext.dev.scylla.cloud/account/1/cluster/request/33:

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
</body>
</html>"

Make the client retry the request, instead of a hard fail.

github workflows: remove gofmt and goimports actions and replace with go command invocations

Those actions are not being actively updated:

https://github.com/Jerome1337/goimports-action (last update 1 years ago)
https://github.com/Jerome1337/gofmt-action (last update 3 year ago)

Also they are not that useful and can be replaced with a single bash one-liner.

So let's do that, dropping external dependencies is always a good thing to do.

Also let's removed forked repositories:

https://github.com/scylladb/goimports-action
https://github.com/scylladb/gofmt-action

internal/scylla: add context support for the client

Before a context can be added to the rest client, the provider itself needs to be refactored to use:

  • {Action}WithContext functions instead of {Action} alone

Once this change is in, public API of the scylla.Client should be extended with context.Context arguments.

Add proper error handling

In most cases we do not handle errors on schema.ResourceData operations in particular .Set, becasue of that errcheck is disabled on .golangci.

Let handle them or/and disregard them and remove errcheck disabling

Terraform import is importing some parameters incorrectly.

Brief description

As mentioned in the title, Scylla TF provider doesn't import all settings correctly. Below are the parameters that I was able to find being imported incorrectly.

For cluster resource:

apply:
+ alternator_write_isolation = "only_rmw_uses_lwt"

import:
"alternator_write_isolation": null,

For vpc peering resource:

apply:
+ allow_cql = true

import:
"allow_cql": null,

For Single VPC with multiple CIDR blocks that is peered with scylladb only the first CIDR is being imported:

import:
"peer_cidr_block": "10.62.0.0/16",
"peer_cidr_blocks": null,

Exepcted output

In both cases I expected correct values to be returned instead of null.

Details

TF provider of version 1.4.1 was used.

it does not handle `http.StatusTooManyRequests` properly

Provisioning failed due to the rate limit:

Error: error creating cluster: Error "000001": Too Many Requests (http status 200, url "https://app-api-dkropachev.ext.lab.scylla.cloud/account/100000/cluster")

tf file:

resource "scylladbcloud_cluster" "aws" {
  name       = "AWS-statuspage-test"
  cloud      = "AWS"
  region     = "us-east-1"
  node_count = 3
  node_type  = "t3.micro"
  cidr_block = "172.31.0.0/24"
  enable_dns = true
}

resource "scylladbcloud_cluster" "gcp" {
  name       = "GCP-statuspage-test"
  cloud      = "GCP"
  region     = "us-east1"
  node_count = 3
  node_type  = "n2-highmem-2"
  cidr_block = "172.31.1.0/24"
  enable_dns = true
}

output "cluster_id_aws" {
  value = scylladbcloud_cluster.aws.id
}

output "cluster_id_gcp" {
  value = scylladbcloud_cluster.gcp.id
}

terraform {
  required_providers {
    scylladbcloud = {
      source = "registry.terraform.io/scylladb/scylladbcloud"
    }
  }
}

variable "token" {
  type = string
}

variable "api_endpoint" {
  type = string
  default = "https://cloud.scylladb.com/api"
}

provider "scylladbcloud" {
  token = var.token
  endpoint = var.api_endpoint
}

How to run:

TF_VAR_api_endpoint="https://x.x.x.x.com" TF_VAR_token="x-x-x-x-x" terraform apply -auto-approve 

Make provider/data source/resource naming consistent

  1. The provider is called scylla (we've agree that cloud is redundant in #1 )
  2. All resource names should be in the format scylla_{name}, eg. scylla_cluster
  3. Likewise, data source names should be in the format scylla_{name}

docs: improve resource documentation and add examples

The commit 8952648 made it possible to customize documentation per resource or data source.

Currently all resources have a basic example usages.

Let's add more end-to-end examples to the resources:

  • add end-to-end vpc peering for both GCP and AWS (scylladbcloud_vpc_peering)

an example for end-to-end AWS vpc peering:

resource "aws_vpc" "app" {
	cidr_block = "10.0.0.0/16"
}

data "aws_caller_identity" "current" {}

resource "scylladbcloud_vpc_peering" "db" {
	cluster_id = 1337
	datacenter = "AWS_EAST_1"

	peer_vpc_id     = aws_vpc.app.id
	peer_cidr_block = aws_vpc.app.cidr_block
	peer_region     = "us-east-1"
	peer_account_id = data.aws_caller_identity.current.account_id

	allow_cql = true
}

resource "aws_vpc_peering_connection_accepter" "bench" {
    vpc_peering_connection_id = scylladbcloud_vpc_peering.db.connection_id
    auto_accept               = true
}

resource "aws_route_table" "bench" {
	vpc_id = aws_vpc.app.id

	route {
		cidr_block = scylladbcloud_cluster.db.cidr_block
		vpc_peering_connection_id = aws_vpc_peering_connection_accepter.app.vpc_peering_connection_id
	}

	depends_on = [aws_vpc_peering_connection_accepter.app]
}
  • an example for GCP cluster (scylladbcloud_cluster)

The new examples should be put under respective paths here:

https://github.com/scylladb/terraform-provider-scylladbcloud/tree/main/examples/resources
https://github.com/scylladb/terraform-provider-scylladbcloud/tree/main/examples/data-sources

And in order to display new example add proper go/template expressions, e.g. in order to display new example for scylladbcloud_vpc_peering drop new aws-example.tf file at examples/resources/scylladbcloud_vpc_peering and do:

diff --git a/templates/resources/vpc_peering.md.tmpl b/templates/resources/vpc_peering.md.tmpl
index 03db4db..c0a5d0b 100644
--- a/templates/resources/vpc_peering.md.tmpl
+++ b/templates/resources/vpc_peering.md.tmpl
@@ -12,6 +12,7 @@ description: |-
 ## Example Usage

 {{ tffile (printf "examples/resources/%s/resource.tf" .Name)}}
+{{ tffile (printf "examples/resources/%s/aws-example.tf" .Name)}}

 {{ .SchemaMarkdown | trimspace }}

testing: move internal end-to-end testing to public repo

Currently terraform-provider-scylladbcloud is end-to-end tested internally, which does not help for accepting external contribution.

There are still a few prerequisites to be taken care of first, before it is possible to move those end-to-end tests here.

This issue is here to keep track of the effort, having real end-to-end tests definitely here definitely will increase confidence in accepting external contributions.

github: e2e env

  • create e2e env
  • should run on self-hosted runner
  • only on:
  • tag [created]
  • PR comment [/test]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.