-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Parent Epic
Part of #232 - Percona Server Puppet Integration
Migrated from infrahouse/terraform-aws-percona-server#32
Description
Puppet manifests for Orchestrator installation and configuration.
Responsibilities
- Install Orchestrator package
- Configure orchestrator.conf.json
- Configure Raft cluster settings
- Deploy post-failover hook scripts
- Start and manage Orchestrator service
Main Manifest Structure
class percona::orchestrator {
include percona::orchestrator::install
include percona::orchestrator::config
include percona::orchestrator::hooks
include percona::orchestrator::service
}Configuration Template
file { '/etc/orchestrator.conf.json':
ensure => file,
content => template('percona/orchestrator.conf.json.erb'),
notify => Service['orchestrator'],
}Key Configuration
{
"Debug": false,
"ListenAddress": ":3000",
"MySQLTopologyUser": "orchestrator",
"MySQLTopologyPassword": "${orchestrator_password}",
"RaftEnabled": true,
"RaftDataDir": "/var/lib/orchestrator/raft",
"RaftBind": "${private_ip}:10008",
"RaftNodes": ${raft_nodes_json},
"SQLite3DataFile": "/var/lib/orchestrator/orchestrator.sqlite3",
"PostFailoverProcesses": [
"/usr/local/bin/percona-failover-hook.sh"
]
}Raft Node Discovery
Challenge: Nodes need to know each other's IPs for Raft
Options:
- Use DNS (Route53 private zone)
- Query ASG for instance IPs
- Use DynamoDB for node registration
Acceptance Criteria
- Orchestrator installed
- Raft cluster configured
- Post-failover hooks deployed
- Service running
- Web UI accessible