Skip to content

Instantly share code, notes, and snippets.

@erikhalperin
Created March 30, 2022 15:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save erikhalperin/6f3885c93033b78809cb79df9e6c20fb to your computer and use it in GitHub Desktop.
Save erikhalperin/6f3885c93033b78809cb79df9e6c20fb to your computer and use it in GitHub Desktop.
orchestrator.conf.json
{
"Debug": false,
"EnableSyslog": false,
"BackendDB": "sqlite",
"SQLite3DataFile": ":memory:",
"RaftEnabled": true,
"RaftDataDir": "/raft",
"RaftBind": "orchestrator-0",
"RaftAdvertise": "orchestrator-0.vt.svc.iad02.k8s.run",
"DefaultRaftPort": 10008,
"RaftNodes": [
"orchestrator-0.vt.svc.iad02.k8s.run",
"orchestrator-1.vt.svc.iad02.k8s.run",
"orchestrator-2.vt.svc.iad02.k8s.run",
"orchestrator-3.vt.svc.iad02.k8s.run",
"orchestrator-4.vt.svc.iad02.k8s.run"
],
"ListenAddress": ":3000",
"PeerHttpCommunicationAddress": ":443",
"AgentsServerPort": ":3001",
"MySQLTopologyUser": "vt_orc_client",
"MySQLTopologyPassword": "<password>",
"MySQLTopologyCredentialsConfigFile": "",
"MySQLTopologySSLPrivateKeyFile": "",
"MySQLTopologySSLCertFile": "",
"MySQLTopologySSLCAFile": "",
"MySQLTopologySSLSkipVerify": true,
"MySQLTopologyUseMutualTLS": false,
"MySQLTopologyMaxPoolConnections": 1,
"MySQLOrchestratorHost": "127.0.0.1",
"MySQLOrchestratorPort": 3306,
"MySQLOrchestratorDatabase": "orchestrator",
"MySQLOrchestratorUser": "orc_server_user",
"MySQLOrchestratorPassword": "<password>",
"MySQLOrchestratorCredentialsConfigFile": "",
"MySQLOrchestratorSSLPrivateKeyFile": "",
"MySQLOrchestratorSSLCertFile": "",
"MySQLOrchestratorSSLCAFile": "",
"MySQLOrchestratorSSLSkipVerify": true,
"MySQLOrchestratorUseMutualTLS": false,
"MySQLConnectTimeoutSeconds": 2,
"MySQLConnectionLifetimeSeconds": 90,
"DefaultInstancePort": 3306,
"UnseenInstanceForgetHours": 1,
"SkipOrchestratorDatabaseUpdate": false,
"SlaveLagQuery": "",
"SlaveStartPostWaitMilliseconds": 1000,
"DiscoverByShowSlaveHosts": true,
"InstancePollSeconds": 12,
"ReadLongRunningQueries": true,
"SnapshotTopologiesIntervalHours": 0,
"DiscoveryPollSeconds": 5,
"InstanceBulkOperationsWaitTimeoutSeconds": 10,
"ActiveNodeExpireSeconds": 12,
"HostnameResolveMethod": "none",
"MySQLHostnameResolveMethod": "",
"SkipBinlogServerUnresolveCheck": true,
"ExpiryHostnameResolvesMinutes": 60,
"RejectHostnameResolvePattern": "",
"ReasonableReplicationLagSeconds": 10,
"ProblemIgnoreHostnameFilters": [],
"VerifyReplicationFilters": false,
"MaintenanceOwner": "orchestrator",
"ReasonableMaintenanceReplicationLagSeconds": 20,
"MaintenanceExpireMinutes": 10,
"MaintenancePurgeDays": 365,
"CandidateInstanceExpireMinutes": 60,
"UseSuperReadOnly": true,
"AuditLogFile": "/tmp/orchestrator-audit.log",
"AuditToSyslog": false,
"AuditPageSize": 20,
"AuditPurgeDays": 365,
"RemoveTextFromHostnameDisplay": ".mydomain.com:3306",
"ReadOnly": false,
"AuthenticationMethod": "",
"HTTPAuthUser": "",
"HTTPAuthPassword": "",
"AuthUserHeader": "",
"PowerAuthUsers": [
"*"
],
"ClusterNameToAlias": {
"127.0.0.1": "test suite"
},
"DetectClusterAliasQuery": "SELECT value FROM _vt.local_metadata WHERE name='ClusterAlias'",
"DetectClusterDomainQuery": "",
"DetectInstanceAliasQuery": "SELECT value FROM _vt.local_metadata WHERE name='Alias'",
"DetectPromotionRuleQuery": "SELECT IFNULL((SELECT CASE WHEN @@hostname REGEXP '.*(-backup)$' THEN 'must_not' ELSE value END FROM _vt.local_metadata WHERE name='PromotionRule'), 'must_not')",
"DataCenterPattern": "[.]([^.]+)[.][^.]+[.]mydomain[.]com",
"PhysicalEnvironmentPattern": "[.]([^.]+[.][^.]+)[.]mydomain[.]com",
"PromotionIgnoreHostnameFilters": ["^.*hubspot-networks.net$"],
"DetectSemiSyncEnforcedQuery": "SELECT @@global.rpl_semi_sync_master_wait_no_slave AND @@global.rpl_semi_sync_master_timeout > 1000000",
"ServeAgentsHttp": false,
"AgentsUseSSL": false,
"AgentsUseMutualTLS": false,
"AgentSSLSkipVerify": false,
"AgentSSLPrivateKeyFile": "",
"AgentSSLCertFile": "",
"AgentSSLCAFile": "",
"AgentSSLValidOUs": [],
"UseSSL": false,
"UseMutualTLS": false,
"SSLSkipVerify": false,
"SSLPrivateKeyFile": "",
"SSLCertFile": "",
"SSLCAFile": "",
"SSLValidOUs": [],
"StatusEndpoint": "/api/status",
"StatusSimpleHealth": true,
"StatusOUVerify": false,
"HttpTimeoutSeconds": 60,
"AgentPollMinutes": 60,
"AgentAutoDiscover": false,
"UnseenAgentForgetHours": 6,
"StaleSeedFailMinutes": 60,
"SeedAcceptableBytesDiff": 8192,
"PseudoGTIDPattern": "drop view if exists .*?`_pseudo_gtid_hint__",
"PseudoGTIDMonotonicHint": "asc:",
"DetectPseudoGTIDQuery": "",
"BinlogEventsChunkSize": 10000,
"BufferBinlogEvents": true,
"SkipBinlogEventsContaining": [],
"ReduceReplicationAnalysisCount": true,
"FailureDetectionPeriodBlockMinutes": 60,
"RecoveryPollSeconds": 10,
"RecoveryPeriodBlockSeconds": 60,
"RecoveryIgnoreHostnameFilters": [],
"RecoverMasterClusterFilters": [
".*"
],
"RecoverIntermediateMasterClusterFilters": [
"_intermediate_master_pattern_"
],
"OnFailureDetectionProcesses": [
"echo 'Detected {failureType} on {failureCluster}. Affected replicas: {countSlaves}' >> /tmp/recovery.log"
],
"PreFailoverProcesses": [
"echo 'Will recover from {failureType} on {failureCluster}' >> /tmp/recovery.log",
"curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"[PROD] Will recover from {failureType} on {failureClusterAlias}, cluster {failureCluster}, host {failedHost}\"}' <webhook> || true"
],
"PostFailoverProcesses": [
"echo '(for all types) Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' >> /tmp/recovery.log"
],
"PostUnsuccessfulFailoverProcesses": [
"echo '(for all types) Failed to recover from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' >> /tmp/recovery.log",
"curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"[PROD] Failed to recover from {failureType} on {failureClusterAlias}. Failed: {failureClusterAlias} ({failedHost}:{failedPort}); Successor: {successorAlias} ({successorHost}:{successorPort})\"}' <webhook> || true"
],
"PostMasterFailoverProcesses": [
"/opt/vitess/bin/vtctlclient -server vtctld-prod-iad:16101 TabletExternallyReparented {successorAlias}",
"/usr/bin/reparent_posthook.sh {successorAlias} vtctld-prod-iad:16101",
"echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Promoted: {successorHost}:{successorPort}' >> /tmp/recovery.log",
"curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"[PROD] Recovered from {failureType} on {failureClusterAlias}. Failed: {failureClusterAlias} ({failedHost}:{failedPort}); Promoted: {successorAlias} ({successorHost}:{successorPort})\"}' <webhook> || true"
],
"PostIntermediateMasterFailoverProcesses": [
"echo 'Recovered from {failureType} on {failureCluster}. Failed: {failedHost}:{failedPort}; Successor: {successorHost}:{successorPort}' >> /tmp/recovery.log"
],
"CoMasterRecoveryMustPromoteOtherCoMaster": true,
"DetachLostSlavesAfterMasterFailover": true,
"ApplyMySQLPromotionAfterMasterFailover": true,
"MasterFailoverLostInstancesDowntimeMinutes": 0,
"PostponeSlaveRecoveryOnLagMinutes": 0,
"OSCIgnoreHostnameFilters": [],
"GraphiteAddr": "",
"GraphitePath": "",
"GraphiteConvertHostnameDotsToUnderscores": true,
"SkipMaxScaleCheck": true
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment