Documentation ¶
Overview ¶
Package namespaces provides tools for working with namespaces across containerd.
Namespaces collect resources such as containers and images, into a unique identifier space. This means that two applications can use the same identifiers and not conflict while using containerd.
This package can be used to ensure that client and server functions correctly store the namespace on the context.
Index ¶
- Constants
- func Namespace(ctx context.Context) (string, bool)
- func NamespaceFromEnv(ctx context.Context) context.Context
- func NamespaceRequired(ctx context.Context) (string, error)
- func Validate(s string) error
- func WithNamespace(ctx context.Context, namespace string) context.Context
- type DeleteInfo
- type DeleteOpts
- type Store
Constants ¶
const ( // NamespaceEnvVar is the environment variable key name NamespaceEnvVar = "CONTAINERD_NAMESPACE" // Default is the name of the default namespace Default = "default" )
const (
// GRPCHeader defines the header name for specifying a containerd namespace.
GRPCHeader = "containerd-namespace"
)
const (
// TTRPCHeader defines the header name for specifying a containerd namespace
TTRPCHeader = "containerd-namespace-ttrpc"
)
Variables ¶
This section is empty.
Functions ¶
func Namespace ¶
Namespace returns the namespace from the context.
The namespace is not guaranteed to be valid.
func NamespaceFromEnv ¶
NamespaceFromEnv uses the namespace defined in CONTAINERD_NAMESPACE or default
func NamespaceRequired ¶
NamespaceRequired returns the valid namespace from the context or an error.
func Validate ¶
Validate returns nil if the string s is a valid namespace.
To allow such namespace identifiers to be used across various contexts safely, the character set has been restricted to that defined for domains in RFC 1035, section 2.3.1. This will make namespace identifiers safe for use across networks, filesystems and other media.
The identifier specification departs from RFC 1035 in that it allows "labels" to start with number and only enforces a total length restriction of 76 characters.
While the character set may be expanded in the future, namespace identifiers are guaranteed to be safely used as filesystem path components.
For the most part, this doesn't need to be called directly when using the context-oriented functions.
Types ¶
type DeleteInfo ¶
type DeleteInfo struct { // Name of the namespace Name string }
DeleteInfo specifies information for the deletion of a namespace
type DeleteOpts ¶
type DeleteOpts func(context.Context, *DeleteInfo) error
DeleteOpts allows the caller to set options for namespace deletion
type Store ¶
type Store interface { Create(ctx context.Context, namespace string, labels map[string]string) error Labels(ctx context.Context, namespace string) (map[string]string, error) SetLabel(ctx context.Context, namespace, key, value string) error List(ctx context.Context) ([]string, error) // Delete removes the namespace. The namespace must be empty to be deleted. Delete(ctx context.Context, namespace string, opts ...DeleteOpts) error }
Store provides introspection about namespaces.
Note that these are slightly different than other objects, which are record oriented. A namespace is really just a name and a set of labels. Objects that belong to a namespace are returned when the namespace is assigned to a given context.