Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

pexip/terraform-provider-infinity

Open more actions menu

Repository files navigation

Beta Notice: This Terraform provider is currently in Beta and is not recommended for production deployments. Please use with caution.

Terraform Provider for Pexip Infinity

Build Status Integration Tests License

The official Terraform provider for Pexip Infinity enables comprehensive Infrastructure as Code management of your Pexip video conferencing platform. Manage everything from basic node configurations to advanced integrations with Microsoft 365, Google Workspace, and external authentication systems.

Features

  • 🏗️ Complete Infrastructure Management: 80+ resources covering 90% of Pexip Infinity API capabilities
  • 🔐 Security & Authentication: LDAP, Active Directory, OAuth 2.0, SAML, and certificate management
  • 🎯 Conference Management: Virtual meeting rooms, aliases, scheduled conferences, and participant controls
  • 🌐 Network Configuration: System locations, routing rules, proxies, and DNS management
  • 📊 System Administration: Licensing, logging, diagnostics, and scaling policies
  • 🔗 Enterprise Integrations: Microsoft 365, Google Workspace, Exchange, and telehealth platforms
  • 📱 Media & Content: IVR themes, media libraries, streaming credentials
  • ⚡ Infrastructure as Code: Full lifecycle management with Terraform's plan/apply workflow

Requirements

  • Terraform >= 1.0
  • Go >= 1.21 (for development)
  • Pexip Infinity Manager >= v38 with API access
  • Valid authentication credentials for Pexip Infinity Manager

Installation

Terraform Registry (Recommended)

terraform {
  required_version = ">= 1.14"
  required_providers {
    pexip = {
      source  = "pexip/infinity"
      version = "~> 0.9.11"
    }
  }
}

Manual Installation

  1. Download the latest release from GitHub Releases
  2. Extract the binary to your Terraform plugins directory
  3. Configure Terraform to use the local provider

Documentation

For a quickstart guide, details on various resources, and other documentation, see https://registry.terraform.io/providers/pexip/infinity/latest/docs.

Development

Prerequisites

  • Go >= 1.21
  • Terraform >= 1.0
  • Make
  • Access to a Pexip Infinity Manager for testing

Building from Source

git clone https://github.com/pexip/terraform-provider-infinity.git
cd terraform-provider-infinity
make build

Local Development Setup

  1. Create a .terraformrc file in your home directory:
provider_installation {
  dev_overrides {
    "pexip/infinity" = "<home dir>/.terraform.d/plugins"
  }
  direct {}
}
  1. Build and test locally:
make build
make test

Available Make Targets

make build      # Build the provider binary
make install    # Build and install to local Terraform plugins directory  
make test       # Run unit tests
make testacc    # Run acceptance tests (requires Pexip environment)
make lint       # Run linting checks
make fmt        # Format Go code
make clean      # Clean build artifacts
make check      # Run all checks (lint + test)

Testing

# Unit tests
make test

# Acceptance tests (requires real Pexip environment)
export TF_ACC=1
export PEXIP_ADDRESS="https://your-manager.example.com"
export PEXIP_USERNAME="admin" 
export PEXIP_PASSWORD="your-password"
make testacc

# Test specific resource
go test -v ./internal/provider -run TestAccInfinityConference

Troubleshooting

Common Issues

Authentication Failures

# Verify connectivity
curl -k -u username:password https://manager.example.com/api/admin/status/v1/system_summary/

# Check credentials
export TF_LOG=DEBUG
terraform plan

TLS Certificate Issues

# For development/testing with self-signed certificates
provider "pexip" {
  address  = "https://manager.example.com"
  username = var.username
  password = var.password
  insecure = true  # Only for development!
}

Network Connectivity

# Test network access
telnet manager.example.com 443
nslookup manager.example.com

Resource Import Issues

# Get resource ID from Pexip Manager
curl -k -u admin:password "https://manager.example.com/api/admin/configuration/v1/conference/" | jq '.objects[] | {id, name}'

# Import with correct ID
terraform import pexip_infinity_conference.room 123

Debug Logging

Enable comprehensive logging for troubleshooting:

export TF_LOG=DEBUG
export TF_LOG_PATH=./terraform-debug.log
terraform plan

Performance Optimization

For large environments with many resources:

# Use for_each instead of count for better performance
resource "pexip_infinity_conference" "rooms" {
  for_each = var.conference_rooms
  
  name        = each.key
  description = each.value.description
  # ... other configuration
}

# Parallelize independent resources
resource "pexip_infinity_system_location" "locations" {
  for_each = var.locations
  # ... configuration
}

resource "pexip_infinity_worker_vm" "workers" {
  for_each = var.worker_nodes
  
  name            = each.key
  hostname        = each.value.hostname
  domain          = each.value.domain
  address         = each.value.address
  netmask         = each.value.netmask
  gateway         = each.value.gateway
  system_location = each.value.location
  # ... other configuration
}

Best Practices

Security

  • Never hardcode credentials - Use variables and environment variables
  • Use HTTPS - Always connect to Pexip Manager over HTTPS
  • Limit permissions - Create dedicated service accounts with minimal required permissions
  • Rotate credentials - Regularly rotate API credentials

Resource Organization

  • Use modules - Organize related resources into reusable modules
  • Consistent naming - Follow a consistent naming convention across resources
  • Tag resources - Use descriptions to document resource purpose
  • State management - Use remote state storage for team environments

Performance

  • Batch operations - Use for_each for creating multiple similar resources
  • Minimize dependencies - Avoid unnecessary resource dependencies
  • Parallel execution - Structure resources to allow parallel creation/updates

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Guidelines

  • Follow Go best practices
  • Use the Terraform Plugin Framework
  • Write comprehensive tests with >80% coverage
  • Document all public APIs and configuration options
  • Ensure backward compatibility when possible
  • Follow semantic versioning for releases

Support

Community Support

Documentation

Professional Support

For enterprise support, contact Pexip Support.

Security

For security vulnerabilities, please email security@pexip.com instead of using the public issue tracker.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Acknowledgments


Made with ❤️ by the Pexip team

About

Terraform provider for Pexip Infinity

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.