Documentation ¶
Overview ¶
Package hooks implements hook configuration and handling for CRI-O and libpod.
Package hooks implements CRI-O's hook handling.
Index ¶
Constants ¶
const ( // DefaultDir is the default directory containing system hook configuration files. DefaultDir = "/usr/share/containers/oci/hooks.d" // OverrideDir is the directory for hook configuration files overriding the default entries. OverrideDir = "/etc/containers/oci/hooks.d" )
const Version = current.Version
Version is the current hook configuration version.
Variables ¶
var ( // ErrNoJSONSuffix represents hook-add attempts where the filename // does not end in '.json'. ErrNoJSONSuffix = errors.New("hook filename does not end in '.json'") // Readers registers per-version hook readers. Readers = map[string]reader{} )
Functions ¶
Types ¶
type Manager ¶ added in v0.5.2
type Manager struct {
// contains filtered or unexported fields
}
Manager provides an opaque interface for managing CRI-O hooks.
func New ¶ added in v0.5.2
func New(ctx context.Context, directories []string, extensionStages []string, lang language.Tag) (manager *Manager, err error)
New creates a new hook manager. Directories are ordered by increasing preference (hook configurations in later directories override configurations with the same filename from earlier directories).
func (*Manager) Hooks ¶ added in v0.5.2
func (m *Manager) Hooks(config *rspec.Spec, annotations map[string]string, hasBindMounts bool) (extensionStages map[string][]rspec.Hook, err error)
Hooks injects OCI runtime hooks for a given container configuration.
func (*Manager) Monitor ¶ added in v0.5.2
Monitor dynamically monitors hook directories for additions, updates, and removals.
This function writes two empty structs to the sync channel: the first is written after the watchers are established and the second when this function exits. The expected usage is:
ctx, cancel := context.WithCancel(context.Background()) sync := make(chan error, 2) go m.Monitor(ctx, sync) err := <-sync // block until writers are established if err != nil { return err // failed to establish watchers } // do stuff cancel() err = <-sync // block until monitor finishes