79 lines
1.6 KiB
Terraform
79 lines
1.6 KiB
Terraform
|
|
# Firefly Module for Terraform
|
||
|
|
# Deploys Hyperledger Firefly on Kubernetes
|
||
|
|
|
||
|
|
variable "namespace" {
|
||
|
|
description = "Kubernetes namespace for Firefly"
|
||
|
|
type = string
|
||
|
|
default = "firefly"
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "firefly_image" {
|
||
|
|
description = "Firefly Docker image"
|
||
|
|
type = string
|
||
|
|
default = "hyperledger/firefly:v1.2.0"
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "postgres_image" {
|
||
|
|
description = "PostgreSQL Docker image"
|
||
|
|
type = string
|
||
|
|
default = "postgres:15-alpine"
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "ipfs_image" {
|
||
|
|
description = "IPFS Docker image"
|
||
|
|
type = string
|
||
|
|
default = "ipfs/kubo:v0.23.0"
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "besu_rpc_url" {
|
||
|
|
description = "Besu RPC URL"
|
||
|
|
type = string
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "besu_ws_url" {
|
||
|
|
description = "Besu WebSocket URL"
|
||
|
|
type = string
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "chain_id" {
|
||
|
|
description = "Chain ID"
|
||
|
|
type = number
|
||
|
|
default = 138
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "firefly_api_url" {
|
||
|
|
description = "Firefly API URL"
|
||
|
|
type = string
|
||
|
|
default = "http://firefly-api:5000"
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "storage_class" {
|
||
|
|
description = "Kubernetes storage class"
|
||
|
|
type = string
|
||
|
|
default = "managed-premium"
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "postgres_storage_size" {
|
||
|
|
description = "PostgreSQL storage size"
|
||
|
|
type = string
|
||
|
|
default = "50Gi"
|
||
|
|
}
|
||
|
|
|
||
|
|
variable "ipfs_storage_size" {
|
||
|
|
description = "IPFS storage size"
|
||
|
|
type = string
|
||
|
|
default = "100Gi"
|
||
|
|
}
|
||
|
|
|
||
|
|
# Note: This module would use Kubernetes provider to create resources
|
||
|
|
# For Terraform, we'll create the manifests and apply them via kubectl
|
||
|
|
|
||
|
|
output "firefly_namespace" {
|
||
|
|
value = var.namespace
|
||
|
|
}
|
||
|
|
|
||
|
|
output "firefly_api_url" {
|
||
|
|
value = var.firefly_api_url
|
||
|
|
}
|
||
|
|
|