liveBook · Manning

Abstract namespace

As explained in Google Anthos in Action

An abstract namespace is an Anthos Config Management grouping of one or more actual Kubernetes namespaces that share inherited objects.

An abstract namespace groups one or more actual Kubernetes namespaces that should share inherited objects. In Anthos Config Management hierarchy repositories, objects defined at this level are copied automatically to descendant namespaces. section 11.2.1

Use abstract namespaces to organize inherited configuration:

  • Nest abstractions to create layers, such as app-dev containing separate team namespaces. section 11.2.1
  • Define shared objects such as Roles or ConfigMaps at the appropriate inherited level. section 11.2.1
  • Combine inheritance with a NamespaceSelector when an object should target only labeled namespaces, such as finance-related application namespaces. section 11.2.1
  • In hierarchy mode, require a namespace to be both beneath the defining folder and matched by the selector. section 11.2.1
Table 11.1 Top-level directories in a hierarchy repository (view table figure)

Directory

Purpose

System

Configs related to the policy repository itself, such as the version of the deployed configuration.

Clusterregistry

Stores Cluster and ClusterSelector objects, which are used together to select subsets of clusters to restrict where a specific object is applied to. Cluster definitions attach specific tags to a cluster by name; ClusterSelectors can then use these tags to select a set of clusters meeting a certain set of requirements.

Cluster

Contains objects that are defined for the entire cluster, except for namespaces.

Namespaces

Contains objects that are assigned to one or more specific namespaces, as well the Namespace and NamespaceSelector definitions.

Use the hierarchy layout to distinguish namespace-scoped configuration from system, cluster-registry, and cluster configuration. section 11.2.1

How Google Anthos in Action covers it

How deep it goes
Explains grouping, nesting, copying, selector filtering, and hierarchy placement constraints without detailing controller internals.
Examples
Uses app-dev team hierarchies and finance-labeled namespaces receiving a shared ConfigMap.
What it assumes
Assumes Kubernetes namespace concepts and distinguishes hierarchy repositories from unstructured repositories.
What you can do after
Apply it by choosing inheritance levels and restricting propagated objects with namespace labels and selectors.
How it connects
Connects Kubernetes namespaces, Roles, ConfigMaps, NamespaceSelectors, hierarchy repositories, and unstructured repositories.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Google Anthos in Action. The section links point to the parts of the book it draws on.