Skip to content

Commit

Permalink
chore: factorize apps schema
Browse files Browse the repository at this point in the history
  • Loading branch information
miton18 committed Nov 5, 2024
1 parent f9ba81b commit 53e33d3
Show file tree
Hide file tree
Showing 14 changed files with 75 additions and 207 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ jobs:
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.57
version: v1.61
...
18 changes: 9 additions & 9 deletions docs/resources/java_war.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
page_title: "clevercloud_java_war Resource - terraform-provider-clevercloud"
subcategory: ""
description: |-
Manage Java https://www.java.com/en/ applications.
Manage Java applications.
See Java product https://www.clever-cloud.com/doc/getting-started/by-language/java/ specification.
Example usage
Basic
terraform
resource "clevercloud_java_war" "myapp" {
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
}
Advanced
terraform
resource "clevercloud_java_war" "myapp" {
name = "tf-myapp"
region = "par"
Expand Down
16 changes: 8 additions & 8 deletions docs/resources/nodejs.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ description: |-
See NodeJS product https://www.clever-cloud.com/nodejs-hosting/ specification.
Example usage
Basic
terraform
resource "clevercloud_nodejs" "myapp" {
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
}
Advanced
terraform
resource "clevercloud_nodejs" "myapp" {
name = "tf-myapp"
region = "par"
Expand Down
16 changes: 8 additions & 8 deletions docs/resources/python.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ description: |-
See Python product https://www.clever-cloud.com/python-hosting/ specification.
Example usage
Basic
terraform
resource "clevercloud_python" "myapp" {
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
}
Advanced
terraform
resource "clevercloud_python" "myapp" {
name = "tf-myapp"
region = "par"
Expand Down
18 changes: 9 additions & 9 deletions docs/resources/scala.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
page_title: "clevercloud_scala Resource - terraform-provider-clevercloud"
subcategory: ""
description: |-
Manage Scala https://www.scala-lang.org/ applications.
Manage Scala applications.
See Scala product https://www.clever-cloud.com/scala-hosting/ specification.
Example usage
Basic
terraform
resource "clevercloud_scala" "myapp" {
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
}
Advanced
terraform
resource "clevercloud_scala" "myapp" {
name = "tf-myapp"
region = "par"
Expand Down
16 changes: 8 additions & 8 deletions docs/resources/static.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ description: |-
See Static product https://www.clever-cloud.com/doc/deploy/application/static/static/ specification.
Example usage
Basic
terraform
resource "clevercloud_static" "myapp" {
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
name = "tf-myapp"
region = "par"
min_instance_count = 1
max_instance_count = 2
smallest_flavor = "XS"
biggest_flavor = "M"
}
Advanced
terraform
resource "clevercloud_static" "myapp" {
name = "tf-myapp"
region = "par"
Expand Down
24 changes: 24 additions & 0 deletions pkg/attributes/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,30 @@ import (
"go.clever-cloud.com/terraform-provider/pkg"
)

type Runtime struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Dependencies types.Set `tfsdk:"dependencies"`
Deployment *Deployment `tfsdk:"deployment"`
Hooks *Hooks `tfsdk:"hooks"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`
}

// This attributes are used on several runtimes
var runtimeCommon = map[string]schema.Attribute{
// client provided
Expand Down
24 changes: 1 addition & 23 deletions pkg/resources/docker/resource_docker_schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,29 +19,7 @@ import (
)

type Docker struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Docker related
attributes.Runtime
Dockerfile types.String `tfsdk:"dockerfile"`
ContainerPort types.Int64 `tfsdk:"container_port"`
ContainerPortTCP types.Int64 `tfsdk:"container_port_tcp"`
Expand Down
24 changes: 1 addition & 23 deletions pkg/resources/java/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,7 @@ import (
)

type Java struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Java related
attributes.Runtime
JavaVersion types.String `tfsdk:"java_version"`
}

Expand Down
25 changes: 1 addition & 24 deletions pkg/resources/nodejs/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,7 @@ import (
)

type NodeJS struct {
// Common
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Node
attributes.Runtime
DevDependencies types.Bool `tfsdk:"dev_dependencies"`
StartScript types.String `tfsdk:"start_script"`
PackageManager types.String `tfsdk:"package_manager"`
Expand Down
24 changes: 1 addition & 23 deletions pkg/resources/php/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,7 @@ import (
)

type PHP struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// PHP related
attributes.Runtime
PHPVersion types.String `tfsdk:"php_version"`
WebRoot types.String `tfsdk:"webroot"`
RedisSessions types.Bool `tfsdk:"redis_sessions"`
Expand Down
25 changes: 1 addition & 24 deletions pkg/resources/python/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,30 +14,7 @@ import (
)

type Python struct {
// Common
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

// Python
attributes.Runtime
PythonVersion types.String `tfsdk:"python_version"`
PipRequirements types.String `tfsdk:"pip_requirements"`
}
Expand Down
24 changes: 1 addition & 23 deletions pkg/resources/scala/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,13 @@ import (
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/resource"
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
"github.com/hashicorp/terraform-plugin-framework/types"
"go.clever-cloud.com/terraform-provider/pkg"
"go.clever-cloud.com/terraform-provider/pkg/application"
"go.clever-cloud.com/terraform-provider/pkg/attributes"
)

type Scala struct {
ID types.String `tfsdk:"id"`
Name types.String `tfsdk:"name"`
Description types.String `tfsdk:"description"`
MinInstanceCount types.Int64 `tfsdk:"min_instance_count"`
MaxInstanceCount types.Int64 `tfsdk:"max_instance_count"`
SmallestFlavor types.String `tfsdk:"smallest_flavor"`
BiggestFlavor types.String `tfsdk:"biggest_flavor"`
BuildFlavor types.String `tfsdk:"build_flavor"`
Region types.String `tfsdk:"region"`
StickySessions types.Bool `tfsdk:"sticky_sessions"`
RedirectHTTPS types.Bool `tfsdk:"redirect_https"`
VHost types.String `tfsdk:"vhost"`
AdditionalVHosts types.List `tfsdk:"additional_vhosts"`
DeployURL types.String `tfsdk:"deploy_url"`
Deployment *attributes.Deployment `tfsdk:"deployment"`
Hooks *attributes.Hooks `tfsdk:"hooks"`
Dependencies types.Set `tfsdk:"dependencies"`

// Env
AppFolder types.String `tfsdk:"app_folder"`
Environment types.Map `tfsdk:"environment"`

attributes.Runtime
// Scala related
}

Expand Down
Loading

0 comments on commit 53e33d3

Please sign in to comment.