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 ¶
const ( NamespaceEnvVar = "CONTAINERD_NAMESPACE" Default = "default" )
const (
// GRPCHeader defines the header name for specifying a containerd namespace.
GRPCHeader = "containerd-namespace"
)
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 namepace 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 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) 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.