Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Factory ¶
type Factory func(config map[string]string, logger log.Logger, state State) (ServiceRegistration, error)
Factory is the factory function to create a ServiceRegistration. The config is the key/value pairs set _inside_ the service registration config stanza. The state is the initial state. The redirectAddr is Vault core's RedirectAddr.
type ServiceRegistration ¶
type ServiceRegistration interface { // Run provides a shutdownCh, wait WaitGroup, and redirectAddr. The // shutdownCh is for monitoring when a shutdown occurs and initiating any // actions needed to leave service registration in a final state. When // finished, signalling that with wait means that Vault will wait until // complete. The redirectAddr is an optional parameter for implementations // that might need to communicate with Vault's listener via this address. // // Run is called just after Factory instantiation so can be relied upon // for controlling shutdown behavior. // Here is an example of its intended use: // func Run(shutdownCh <-chan struct{}, wait sync.WaitGroup, redirectAddr string) error { // // // Since we are going to want Vault to wait to shutdown // // until after we do cleanup... // wait.Add(1) // // // Run shutdown code in a goroutine so Run doesn't block. // go func(){ // // Ensure that when this ends, no matter how it ends, // // we don't cause Vault to hang on shutdown. // defer wait.Done() // // // Now wait until we're actually receiving a shutdown. // <-shutdownCh // // // Now do whatever we need to clean up. // if err := someService.SetFinalState(); err != nil { // // Log it at error level. // } // }() // return nil // } Run(shutdownCh <-chan struct{}, wait *sync.WaitGroup, redirectAddr string) error // NotifyActiveStateChange is used by Core to notify that this Vault // instance has changed its status on whether it's active or is // a standby. // If errors are returned, Vault only logs a warning, so it is // the implementation's responsibility to retry updating state // in the face of errors. NotifyActiveStateChange(isActive bool) error // NotifySealedStateChange is used by Core to notify that Vault has changed // its Sealed status to sealed or unsealed. // If errors are returned, Vault only logs a warning, so it is // the implementation's responsibility to retry updating state // in the face of errors. NotifySealedStateChange(isSealed bool) error // NotifyPerformanceStandbyStateChange is used by Core to notify that this // Vault instance has changed its performance standby status. // If errors are returned, Vault only logs a warning, so it is // the implementation's responsibility to retry updating state // in the face of errors. NotifyPerformanceStandbyStateChange(isStandby bool) error // NotifyInitializedStateChange is used by Core to notify that storage // has been initialized. An unsealed core will always also be initialized. // If errors are returned, Vault only logs a warning, so it is // the implementation's responsibility to retry updating state // in the face of errors. NotifyInitializedStateChange(isInitialized bool) error }
ServiceRegistration is an interface that advertises the state of Vault to a service discovery network.
Click to show internal directories.
Click to hide internal directories.