# 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
}

