Documentation
¶
Index ¶
- func GetConsulClient(environment string) *api.Client
- func NewConsulBackupExecutor(nodeID string, kv ConsulKV, encryptionKey []byte, backupDir string, ...) *consulBackupExecutor
- func RestoreConsulBackup(path string, kv ConsulKV, encryptionKey []byte) error
- func RestoreConsulBackupFromBytes(fileBytes []byte, kv ConsulKV, encryptionKey []byte) error
- func StartPeriodicConsulBackup(ctx context.Context, exe *consulBackupExecutor, periodSeconds int) func()
- type ConsulBackupMeta
- type ConsulBackupUploader
- type ConsulKV
- type TLSPEMs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetConsulClient ¶
func NewConsulBackupExecutor ¶
func NewConsulBackupExecutor( nodeID string, kv ConsulKV, encryptionKey []byte, backupDir string, uploader ...ConsulBackupUploader, ) *consulBackupExecutor
NewConsulBackupExecutor creates a backup executor for the Consul KV store. It exports all keys under every managed prefix, encrypts with AES-256-GCM, writes locally overwriting the same file, and optionally uploads to remote storage (e.g. R2).
func RestoreConsulBackup ¶
RestoreConsulBackup reads an encrypted backup file and restores all KV pairs into Consul.
func RestoreConsulBackupFromBytes ¶
RestoreConsulBackupFromBytes restores all KV pairs into Consul from an in-memory backup.
func StartPeriodicConsulBackup ¶
func StartPeriodicConsulBackup(ctx context.Context, exe *consulBackupExecutor, periodSeconds int) func()
StartPeriodicConsulBackup runs Execute on a ticker and returns a stop function.
Types ¶
type ConsulBackupMeta ¶
type ConsulBackupUploader ¶
type ConsulBackupUploader interface {
Upload(ctx context.Context, filename string, data []byte) error
}
ConsulBackupUploader is the same interface as kvstore.BackupUploader — allows reuse of R2Uploader.
type ConsulKV ¶
type ConsulKV interface {
Put(kv *api.KVPair, options *api.WriteOptions) (*api.WriteMeta, error)
Get(key string, options *api.QueryOptions) (*api.KVPair, *api.QueryMeta, error)
Delete(key string, options *api.WriteOptions) (*api.WriteMeta, error)
List(prefix string, options *api.QueryOptions) (api.KVPairs, *api.QueryMeta, error)
}
type TLSPEMs ¶
func LoadTLSPEMs ¶
LoadTLSPEMs loads TLS material either from base64-encoded strings (cloud/production)