[{"data":1,"prerenderedAt":986},["ShallowReactive",2],{"navigation_docs":3,"-docs":244,"-docs-surround":983},[4,8,12,39,85,118,167,196,230],{"title":5,"path":6,"stem":7},"Bloodraven","\u002Fdocs","docs\u002F1.index",{"title":9,"path":10,"stem":11},"Licensing and pricing","\u002Fdocs\u002Flicensing","docs\u002F2.licensing",{"title":13,"icon":14,"path":15,"stem":16,"children":17,"page":38},"Get Started","i-lucide-rocket","\u002Fdocs\u002Fget-started","docs\u002F3.get-started",[18,22,26,30,34],{"title":19,"path":20,"stem":21},"Known limitations","\u002Fdocs\u002Fget-started\u002Fknown-limitations","docs\u002F3.get-started\u002F1.known-limitations",{"title":23,"path":24,"stem":25},"How to create your first MysqlFailoverGroup","\u002Fdocs\u002Fget-started\u002Fgetting-started","docs\u002F3.get-started\u002F2.getting-started",{"title":27,"path":28,"stem":29},"Playground","\u002Fdocs\u002Fget-started\u002Fplayground","docs\u002F3.get-started\u002F3.playground",{"title":31,"path":32,"stem":33},"Production Install","\u002Fdocs\u002Fget-started\u002Finstall-production","docs\u002F3.get-started\u002F4.install-production",{"title":35,"path":36,"stem":37},"Production install examples","\u002Fdocs\u002Fget-started\u002Fproduction-install-examples","docs\u002F3.get-started\u002F5.production-install-examples",false,{"title":40,"icon":41,"path":42,"stem":43,"children":44,"page":38},"Configuration","i-lucide-settings","\u002Fdocs\u002Fconfiguration","docs\u002F4.configuration",[45,49,53,57,61,65,69,73,77,81],{"title":46,"path":47,"stem":48},"Configuration Overview","\u002Fdocs\u002Fconfiguration\u002Fconfiguration","docs\u002F4.configuration\u002F1.configuration",{"title":50,"path":51,"stem":52},"Production hardening checklist","\u002Fdocs\u002Fconfiguration\u002Fproduction-hardening","docs\u002F4.configuration\u002F10.production-hardening",{"title":54,"path":55,"stem":56},"CRD Reference","\u002Fdocs\u002Fconfiguration\u002Fcrd-reference","docs\u002F4.configuration\u002F2.crd-reference",{"title":58,"path":59,"stem":60},"CRD versioning and migration plan","\u002Fdocs\u002Fconfiguration\u002Fcrd-versioning","docs\u002F4.configuration\u002F3.crd-versioning",{"title":62,"path":63,"stem":64},"Placement Contract","\u002Fdocs\u002Fconfiguration\u002Fplacement-contract","docs\u002F4.configuration\u002F4.placement-contract",{"title":66,"path":67,"stem":68},"App Integration","\u002Fdocs\u002Fconfiguration\u002Fapp-integration","docs\u002F4.configuration\u002F5.app-integration",{"title":70,"path":71,"stem":72},"Credentials And TLS","\u002Fdocs\u002Fconfiguration\u002Fcredentials-and-tls","docs\u002F4.configuration\u002F6.credentials-and-tls",{"title":74,"path":75,"stem":76},"Tenant Databases","\u002Fdocs\u002Fconfiguration\u002Ftenant-databases","docs\u002F4.configuration\u002F7.tenant-databases",{"title":78,"path":79,"stem":80},"Data-at-rest encryption","\u002Fdocs\u002Fconfiguration\u002Fencryption-at-rest","docs\u002F4.configuration\u002F8.encryption-at-rest",{"title":82,"path":83,"stem":84},"Security model","\u002Fdocs\u002Fconfiguration\u002Fsecurity-model","docs\u002F4.configuration\u002F9.security-model",{"title":86,"icon":87,"path":88,"stem":89,"children":90,"page":38},"Architecture","i-lucide-network","\u002Fdocs\u002Farchitecture","docs\u002F5.architecture",[91,94,98,102,106,110,114],{"title":86,"path":92,"stem":93},"\u002Fdocs\u002Farchitecture\u002Farchitecture","docs\u002F5.architecture\u002F1.architecture",{"title":95,"path":96,"stem":97},"Multi-site topology","\u002Fdocs\u002Farchitecture\u002Fmulti-site","docs\u002F5.architecture\u002F2.multi-site",{"title":99,"path":100,"stem":101},"Multi-cluster disaster recovery","\u002Fdocs\u002Farchitecture\u002Fmulti-cluster-dr","docs\u002F5.architecture\u002F3.multi-cluster-dr",{"title":103,"path":104,"stem":105},"Why not Group Replication?","\u002Fdocs\u002Farchitecture\u002Fwhy-not-group-replication","docs\u002F5.architecture\u002F4.why-not-group-replication",{"title":107,"path":108,"stem":109},"Operator availability","\u002Fdocs\u002Farchitecture\u002Foperator-availability","docs\u002F5.architecture\u002F5.operator-availability",{"title":111,"path":112,"stem":113},"Durability and RPO","\u002Fdocs\u002Farchitecture\u002Fdurability-and-rpo","docs\u002F5.architecture\u002F6.durability-and-rpo",{"title":115,"path":116,"stem":117},"Architecture Diagrams","\u002Fdocs\u002Farchitecture\u002Farchitecture-diagrams","docs\u002F5.architecture\u002F7.architecture-diagrams",{"title":119,"icon":120,"path":121,"stem":122,"children":123,"page":38},"Operations","i-lucide-terminal","\u002Fdocs\u002Foperations","docs\u002F6.operations",[124,128,132,136,139,143,147,151,155,159,163],{"title":125,"path":126,"stem":127},"Operations Overview","\u002Fdocs\u002Foperations\u002Foperations-overview","docs\u002F6.operations\u002F1.operations-overview",{"title":129,"path":130,"stem":131},"Upgrade and version-skew policy","\u002Fdocs\u002Foperations\u002Fupgrade-policy","docs\u002F6.operations\u002F10.upgrade-policy",{"title":133,"path":134,"stem":135},"GitOps guidance","\u002Fdocs\u002Foperations\u002Fgitops","docs\u002F6.operations\u002F11.gitops",{"title":119,"path":137,"stem":138},"\u002Fdocs\u002Foperations\u002Foperations","docs\u002F6.operations\u002F2.operations",{"title":140,"path":141,"stem":142},"kubectl bloodraven plugin","\u002Fdocs\u002Foperations\u002Fkubectl-plugin","docs\u002F6.operations\u002F3.kubectl-plugin",{"title":144,"path":145,"stem":146},"Runbooks","\u002Fdocs\u002Foperations\u002Frunbooks","docs\u002F6.operations\u002F4.runbooks",{"title":148,"path":149,"stem":150},"Troubleshooting","\u002Fdocs\u002Foperations\u002Ftroubleshooting","docs\u002F6.operations\u002F5.troubleshooting",{"title":152,"path":153,"stem":154},"Failover","\u002Fdocs\u002Foperations\u002Ffailover","docs\u002F6.operations\u002F6.failover",{"title":156,"path":157,"stem":158},"Planned failover","\u002Fdocs\u002Foperations\u002Fplanned-failover","docs\u002F6.operations\u002F7.planned-failover",{"title":160,"path":161,"stem":162},"Network partitions","\u002Fdocs\u002Foperations\u002Fnetwork-partitions","docs\u002F6.operations\u002F8.network-partitions",{"title":164,"path":165,"stem":166},"Failure-mode matrix","\u002Fdocs\u002Foperations\u002Ffailure-mode-matrix","docs\u002F6.operations\u002F9.failure-mode-matrix",{"title":168,"icon":169,"path":170,"stem":171,"children":172,"page":38},"Backup and restore","i-lucide-database-backup","\u002Fdocs\u002Fbackup-and-restore","docs\u002F7.backup-and-restore",[173,177,180,184,188,192],{"title":174,"path":175,"stem":176},"Backup And Restore Overview","\u002Fdocs\u002Fbackup-and-restore\u002Fbackup-overview","docs\u002F7.backup-and-restore\u002F1.backup-overview",{"title":168,"path":178,"stem":179},"\u002Fdocs\u002Fbackup-and-restore\u002Fbackup-restore","docs\u002F7.backup-and-restore\u002F2.backup-restore",{"title":181,"path":182,"stem":183},"S3 Backups","\u002Fdocs\u002Fbackup-and-restore\u002Fbackup-s3","docs\u002F7.backup-and-restore\u002F3.backup-s3",{"title":185,"path":186,"stem":187},"PVC Backups","\u002Fdocs\u002Fbackup-and-restore\u002Fbackup-pvc","docs\u002F7.backup-and-restore\u002F4.backup-pvc",{"title":189,"path":190,"stem":191},"Backup encryption at rest","\u002Fdocs\u002Fbackup-and-restore\u002Fbackup-encryption","docs\u002F7.backup-and-restore\u002F5.backup-encryption",{"title":193,"path":194,"stem":195},"Backup verification","\u002Fdocs\u002Fbackup-and-restore\u002Fbackup-verification","docs\u002F7.backup-and-restore\u002F6.backup-verification",{"title":197,"icon":198,"path":199,"stem":200,"children":201,"page":38},"Observability","i-lucide-activity","\u002Fdocs\u002Fobservability","docs\u002F8.observability",[202,206,210,214,218,222,226],{"title":203,"path":204,"stem":205},"Observability Overview","\u002Fdocs\u002Fobservability\u002Fobservability-overview","docs\u002F8.observability\u002F1.observability-overview",{"title":207,"path":208,"stem":209},"Monitoring","\u002Fdocs\u002Fobservability\u002Fmonitoring","docs\u002F8.observability\u002F2.monitoring",{"title":211,"path":212,"stem":213},"Prometheus Setup","\u002Fdocs\u002Fobservability\u002Fmonitoring-prometheus","docs\u002F8.observability\u002F3.monitoring-prometheus",{"title":215,"path":216,"stem":217},"Grafana Dashboards","\u002Fdocs\u002Fobservability\u002Fmonitoring-grafana","docs\u002F8.observability\u002F4.monitoring-grafana",{"title":219,"path":220,"stem":221},"Alert To Runbook Map","\u002Fdocs\u002Fobservability\u002Falert-runbook-map","docs\u002F8.observability\u002F5.alert-runbook-map",{"title":223,"path":224,"stem":225},"Observability Change Checklist","\u002Fdocs\u002Fobservability\u002Fobservability-change-checklist","docs\u002F8.observability\u002F6.observability-change-checklist",{"title":227,"path":228,"stem":229},"Log schema contract","\u002Fdocs\u002Fobservability\u002Flog-schema","docs\u002F8.observability\u002F7.log-schema",{"title":231,"icon":232,"path":233,"stem":234,"children":235,"page":38},"Maintenance","i-lucide-wrench","\u002Fdocs\u002Fmaintenance","docs\u002F9.maintenance",[236,240],{"title":237,"path":238,"stem":239},"Example Manifests","\u002Fdocs\u002Fmaintenance\u002Fexamples","docs\u002F9.maintenance\u002F1.examples",{"title":241,"path":242,"stem":243},"Docs Maintenance","\u002Fdocs\u002Fmaintenance\u002Fdocs-maintenance","docs\u002F9.maintenance\u002F2.docs-maintenance",{"id":245,"title":5,"body":246,"description":507,"extension":977,"links":978,"meta":979,"navigation":980,"path":6,"seo":981,"stem":7,"__hash__":982},"docs\u002Fdocs\u002F1.index.md",{"type":247,"value":248,"toc":968},"minimark",[249,257,260,265,325,329,351,355,433,437,480,508,526,530,584,588,591,604,923,927,964],[250,251,252],"p",{},[253,254],"img",{"alt":255,"src":256},"intro infographic","\u002Fimg\u002Finfographics\u002Fintro.webp",[250,258,259],{},"Bloodraven is a Kubernetes operator for MySQL async replication failover groups across sites. It automates failover detection, promotion, DNS steering, application workload migration, and optional Dragonfly cache\u002Fsession sidekicks that follow the active MySQL site so a site-level outage can recover without human intervention.",[261,262,264],"h2",{"id":263},"who-this-is-for","Who this is for",[266,267,268,281],"table",{},[269,270,271],"thead",{},[272,273,274,278],"tr",{},[275,276,277],"th",{},"Reader",[275,279,280],{},"Use these docs to",[282,283,284,293,301,309,317],"tbody",{},[272,285,286,290],{},[287,288,289],"td",{},"New user",[287,291,292],{},"Try Bloodraven locally and create a first failover group.",[272,294,295,298],{},[287,296,297],{},"Platform operator",[287,299,300],{},"Install the operator, define production guardrails, and run go-live checks.",[272,302,303,306],{},[287,304,305],{},"Application developer",[287,307,308],{},"Connect safely and handle failover reconnect behavior.",[272,310,311,314],{},[287,312,313],{},"On-call responder",[287,315,316],{},"Map alerts to runbooks and verify recovery under pressure.",[272,318,319,322],{},[287,320,321],{},"Backup owner",[287,323,324],{},"Configure, verify, and restore backups without reading the full CRD reference first.",[261,326,328],{"id":327},"what-bloodraven-does-not-do","What Bloodraven does not do",[330,331,332,336,339,342,345,348],"ul",{},[333,334,335],"li",{},"It does not provide synchronous replication or zero RPO after sudden primary loss.",[333,337,338],{},"It does not replace external-dns, cert-manager, Prometheus, Grafana, or your object store.",[333,340,341],{},"It does not make application connection pools failover-aware automatically.",[333,343,344],{},"It does not reconcile divergent writes for you after split-brain.",[333,346,347],{},"It does not make PVC-local backups durable after cluster or storage loss.",[333,349,350],{},"It does not treat Dragonfly as durable application storage; managed Dragonfly is for cache\u002Fsession continuity.",[261,352,354],{"id":353},"user-journeys","User journeys",[266,356,357,367],{},[269,358,359],{},[272,360,361,364],{},[275,362,363],{},"Journey",[275,365,366],{},"Path",[282,368,369,384,397,411],{},[272,370,371,373],{},[287,372,289],{},[287,374,375,379,380,379,382],{},[376,377,378],"a",{"href":24},"Getting Started"," → ",[376,381,27],{"href":28},[376,383,66],{"href":67},[272,385,386,388],{},[287,387,297],{},[287,389,390,379,392,379,395],{},[376,391,31],{"href":32},[376,393,394],{"href":51},"Production Hardening",[376,396,207],{"href":208},[272,398,399,402],{},[287,400,401],{},"On-call",[287,403,404,379,406,379,409],{},[376,405,125],{"href":126},[376,407,408],{"href":165},"Failure Mode Matrix",[376,410,144],{"href":145},[272,412,413,415],{},[287,414,321],{},[287,416,417,379,420,423,424,379,427,379,430],{},[376,418,419],{"href":175},"Backup Overview",[376,421,422],{"href":182},"S3"," or ",[376,425,426],{"href":186},"PVC",[376,428,429],{"href":194},"Verification",[376,431,432],{"href":178},"Restore",[261,434,436],{"id":435},"standout-features","Standout features",[330,438,439,446,452,458,464,470],{},[333,440,441,445],{},[442,443,444],"strong",{},"Automatic MySQL site failover",": If the active MySQL site dies, Bloodraven promotes another site, moves traffic, updates DNS, and helps the old primary rejoin safely.",[333,447,448,451],{},[442,449,450],{},"Split-brain protection",": If two sites might both accept writes, the operator and sidecars fence unsafe MySQL nodes so the cluster does not keep writing in two places.",[333,453,454,457],{},[442,455,456],{},"Graceful planned switchover",": An admin can move the primary site with one command; Bloodraven waits for the replica to catch up first, so planned moves can have zero data loss.",[333,459,460,463],{},[442,461,462],{},"Backup, restore, PITR, and verification",": Bloodraven can create backups, archive binlogs for point-in-time recovery, encrypt artifacts, restore from them, and test backups by loading them into a throwaway MySQL.",[333,465,466,469],{},[442,467,468],{},"Dragonfly cache\u002Fsession failover",": Bloodraven can manage Dragonfly alongside MySQL, move the active cache\u002Fsession endpoint during failover, and try to preserve sessions during planned moves.",[333,471,472,475,476,479],{},[442,473,474],{},"Chaos-tested in CI",": 30+ automated chaos scenarios — primary kills, network partitions, split-brain, self-fencing, data wipes, backup\u002FPITR verification — run against real Kubernetes clusters nightly, and a smoke subset gates every release before artifacts are published. The same ",[376,477,478],{"href":28},"playground"," runs locally so you can test these failure modes yourself before you trust them in production.",[481,482,483,498],"tip",{},[250,484,485,488,489,493,494,497],{},[442,486,487],{},"Using an AI agent?"," This documentation is available as ",[490,491,492],"code",{},"llms.txt"," and ",[490,495,496],{},"llms-full.txt"," at the site root for consumption by LLM-based tools. Give your agent context with a prompt like:",[499,500,505],"pre",{"className":501,"code":503,"language":504},[502],"language-text","Read https:\u002F\u002Fbloodraven.dev\u002Fllms-full.txt and help me configure a MysqlFailoverGroup for two sites with async replication and automatic DNS failover.\n","text",[490,506,503],{"__ignoreMap":507},"",[509,510,511,516],"note",{},[250,512,513],{},[442,514,515],{},"When to use Bloodraven",[250,517,518,519,522,523,525],{},"Bloodraven targets the ",[442,520,521],{},"two-site, accept-non-zero-RPO"," deployment.\nIf you need synchronous writes and zero RPO on primary loss, read\n",[376,524,103],{"href":104}," first\nto make sure the tradeoffs match your use case.",[261,527,529],{"id":528},"components","Components",[266,531,532,542],{},[269,533,534],{},[272,535,536,539],{},[275,537,538],{},"Component",[275,540,541],{},"Description",[282,543,544,558,568],{},[272,545,546,551],{},[287,547,548],{},[490,549,550],{},"bloodraven",[287,552,553,554,557],{},"The operator binary. Runs as a Deployment, watches ",[490,555,556],{},"MysqlFailoverGroup"," CRs, reconciles MySQL state.",[272,559,560,565],{},[287,561,562],{},[490,563,564],{},"bloodraven-sidecar",[287,566,567],{},"Runs alongside each MySQL container. Provides health probes and self-fencing when the operator is unreachable.",[272,569,570,573],{},[287,571,572],{},"Managed Dragonfly",[287,574,575,576,579,580,583],{},"Optional per-site Dragonfly pods created when ",[490,577,578],{},"spec.dragonfly.enabled=true",". Applications use the active ",[490,581,582],{},"dragonfly"," Service for Redis-compatible cache\u002Fsession traffic.",[261,585,587],{"id":586},"custom-resource","Custom resource",[250,589,590],{},"Bloodraven introduces a single CRD:",[330,592,593],{},[333,594,595,599,600,603],{},[442,596,597],{},[490,598,556],{}," (",[490,601,602],{},"shipstream.io\u002Fv1alpha1",") -- Declares MySQL instances across named sites, their storage, networking, DNS, transport layer security (TLS), failover tuning, and optional Dragonfly co-management.",[499,605,609],{"className":606,"code":607,"language":608,"meta":507,"style":507},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","apiVersion: shipstream.io\u002Fv1alpha1\nkind: MysqlFailoverGroup\nmetadata:\n  name: orders\nspec:\n  credentials:\n    operatorSecret: mysql-operator-creds\n    appSecret: mysql-app-creds\n  dns:\n    hostname: orders.az.example.com\n    ttl: 60\n  sites:\n    - name: iad\n      zone: us-east-1a\n      taintNodeSelector:\n        shipstream.io\u002Ffailover-group.orders: \"true\"\n        shipstream.io\u002Fsite.orders: iad\n      lbIP: 10.0.1.1\n      storage:\n        size: 50Gi\n        storageClassName: gp3\n    - name: pdx\n      zone: us-west-2a\n      taintNodeSelector:\n        shipstream.io\u002Ffailover-group.orders: \"true\"\n        shipstream.io\u002Fsite.orders: pdx\n      lbIP: 10.0.2.1\n      storage:\n        size: 50Gi\n        storageClassName: gp3\n","yaml",[490,610,611,628,639,648,659,667,675,686,697,705,716,728,736,750,761,769,786,796,807,815,826,837,849,859,866,879,888,898,905,914],{"__ignoreMap":507},[612,613,616,620,624],"span",{"class":614,"line":615},"line",1,[612,617,619],{"class":618},"swJcz","apiVersion",[612,621,623],{"class":622},"sMK4o",":",[612,625,627],{"class":626},"sfazB"," shipstream.io\u002Fv1alpha1\n",[612,629,631,634,636],{"class":614,"line":630},2,[612,632,633],{"class":618},"kind",[612,635,623],{"class":622},[612,637,638],{"class":626}," MysqlFailoverGroup\n",[612,640,642,645],{"class":614,"line":641},3,[612,643,644],{"class":618},"metadata",[612,646,647],{"class":622},":\n",[612,649,651,654,656],{"class":614,"line":650},4,[612,652,653],{"class":618},"  name",[612,655,623],{"class":622},[612,657,658],{"class":626}," orders\n",[612,660,662,665],{"class":614,"line":661},5,[612,663,664],{"class":618},"spec",[612,666,647],{"class":622},[612,668,670,673],{"class":614,"line":669},6,[612,671,672],{"class":618},"  credentials",[612,674,647],{"class":622},[612,676,678,681,683],{"class":614,"line":677},7,[612,679,680],{"class":618},"    operatorSecret",[612,682,623],{"class":622},[612,684,685],{"class":626}," mysql-operator-creds\n",[612,687,689,692,694],{"class":614,"line":688},8,[612,690,691],{"class":618},"    appSecret",[612,693,623],{"class":622},[612,695,696],{"class":626}," mysql-app-creds\n",[612,698,700,703],{"class":614,"line":699},9,[612,701,702],{"class":618},"  dns",[612,704,647],{"class":622},[612,706,708,711,713],{"class":614,"line":707},10,[612,709,710],{"class":618},"    hostname",[612,712,623],{"class":622},[612,714,715],{"class":626}," orders.az.example.com\n",[612,717,719,722,724],{"class":614,"line":718},11,[612,720,721],{"class":618},"    ttl",[612,723,623],{"class":622},[612,725,727],{"class":726},"sbssI"," 60\n",[612,729,731,734],{"class":614,"line":730},12,[612,732,733],{"class":618},"  sites",[612,735,647],{"class":622},[612,737,739,742,745,747],{"class":614,"line":738},13,[612,740,741],{"class":622},"    -",[612,743,744],{"class":618}," name",[612,746,623],{"class":622},[612,748,749],{"class":626}," iad\n",[612,751,753,756,758],{"class":614,"line":752},14,[612,754,755],{"class":618},"      zone",[612,757,623],{"class":622},[612,759,760],{"class":626}," us-east-1a\n",[612,762,764,767],{"class":614,"line":763},15,[612,765,766],{"class":618},"      taintNodeSelector",[612,768,647],{"class":622},[612,770,772,775,777,780,783],{"class":614,"line":771},16,[612,773,774],{"class":618},"        shipstream.io\u002Ffailover-group.orders",[612,776,623],{"class":622},[612,778,779],{"class":622}," \"",[612,781,782],{"class":626},"true",[612,784,785],{"class":622},"\"\n",[612,787,789,792,794],{"class":614,"line":788},17,[612,790,791],{"class":618},"        shipstream.io\u002Fsite.orders",[612,793,623],{"class":622},[612,795,749],{"class":626},[612,797,799,802,804],{"class":614,"line":798},18,[612,800,801],{"class":618},"      lbIP",[612,803,623],{"class":622},[612,805,806],{"class":726}," 10.0.1.1\n",[612,808,810,813],{"class":614,"line":809},19,[612,811,812],{"class":618},"      storage",[612,814,647],{"class":622},[612,816,818,821,823],{"class":614,"line":817},20,[612,819,820],{"class":618},"        size",[612,822,623],{"class":622},[612,824,825],{"class":626}," 50Gi\n",[612,827,829,832,834],{"class":614,"line":828},21,[612,830,831],{"class":618},"        storageClassName",[612,833,623],{"class":622},[612,835,836],{"class":626}," gp3\n",[612,838,840,842,844,846],{"class":614,"line":839},22,[612,841,741],{"class":622},[612,843,744],{"class":618},[612,845,623],{"class":622},[612,847,848],{"class":626}," pdx\n",[612,850,852,854,856],{"class":614,"line":851},23,[612,853,755],{"class":618},[612,855,623],{"class":622},[612,857,858],{"class":626}," us-west-2a\n",[612,860,862,864],{"class":614,"line":861},24,[612,863,766],{"class":618},[612,865,647],{"class":622},[612,867,869,871,873,875,877],{"class":614,"line":868},25,[612,870,774],{"class":618},[612,872,623],{"class":622},[612,874,779],{"class":622},[612,876,782],{"class":626},[612,878,785],{"class":622},[612,880,882,884,886],{"class":614,"line":881},26,[612,883,791],{"class":618},[612,885,623],{"class":622},[612,887,848],{"class":626},[612,889,891,893,895],{"class":614,"line":890},27,[612,892,801],{"class":618},[612,894,623],{"class":622},[612,896,897],{"class":726}," 10.0.2.1\n",[612,899,901,903],{"class":614,"line":900},28,[612,902,812],{"class":618},[612,904,647],{"class":622},[612,906,908,910,912],{"class":614,"line":907},29,[612,909,820],{"class":618},[612,911,623],{"class":622},[612,913,825],{"class":626},[612,915,917,919,921],{"class":614,"line":916},30,[612,918,831],{"class":618},[612,920,623],{"class":622},[612,922,836],{"class":626},[261,924,926],{"id":925},"next-steps","Next steps",[330,928,929,934,939,944,949,954,959],{},[333,930,931,933],{},[376,932,86],{"href":92}," -- How the operator, sidecars, MySQL instances, and optional Dragonfly sidekicks interact.",[333,935,936,938],{},[376,937,378],{"href":24}," -- Install the operator and create your first failover group.",[333,940,941,943],{},[376,942,31],{"href":32}," -- Production dependencies, Helm values, CRD ownership, and verification.",[333,945,946,948],{},[376,947,27],{"href":28}," -- Try Bloodraven locally on k3d, kind, or minikube with a live dashboard and chaos tools.",[333,950,951,953],{},[376,952,419],{"href":175}," -- Choose S3 or PVC, configure schedules, and verify recoverability.",[333,955,956,958],{},[376,957,144],{"href":145}," -- Incident response entry points.",[333,960,961,963],{},[376,962,54],{"href":55}," -- Complete spec and status field reference.",[965,966,967],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":507,"searchDepth":630,"depth":630,"links":969},[970,971,972,973,974,975,976],{"id":263,"depth":630,"text":264},{"id":327,"depth":630,"text":328},{"id":353,"depth":630,"text":354},{"id":435,"depth":630,"text":436},{"id":528,"depth":630,"text":529},{"id":586,"depth":630,"text":587},{"id":925,"depth":630,"text":926},"md",null,{},true,{"title":5,"description":507},"syVHZwdtqz87a1tMNjl4om6MubS8HF9zcrULyINQ9LA",[978,984],{"title":9,"path":10,"stem":11,"description":985,"children":-1},"Bloodraven is source-available, not open source. The full source is public,\nyou can read it, build it, modify it, and contribute to it. Running it in\nproduction at a commercial company requires a one-time license.",1786673474297]