liveBook · Manning

Multiple repository mode

As explained in Google Anthos in Action

enableMultiRepo is an Anthos Config Management configuration flag that enables synchronization from multiple repositories.

Multiple repository mode uses Anthos Config Management’s enableMultiRepo flag to sync configuration from several repositories to the same set of clusters. It separates centrally managed cluster and namespace configuration from application configuration maintained by individual teams. section 8.3.2 section 11.2.1

The repositories have distinct responsibilities:

  • One root repository holds cluster configuration and centrally defined namespace resources. It can use either the hierarchy or unstructured format. section 11.2.1
  • Each additional repository configures objects in one namespace. A RepoSync resource in that namespace identifies the repository; the platform team can create it or delegate that task to the application team. section 8.3.2 section 11.3.2
  • Centrally defined namespace resources remain in effect. If the root and namespace repositories declare conflicting resources, only the root declaration is applied. section 8.3.2

Delegating an application namespace

A platform team can retain centrally managed resources while an application release team manages deployments and ConfigMaps in its namespace repository. The website namespace example places a repo-sync.yaml file in the root repository and points its RepoSync resource at a separate website Git repository. section 8.3.2 section 11.3.2

apiVersion: configsync.gke.io/v1alpha1
kind: RepoSync
metadata:
 name: repo-sync
 namespace: website
spec:
 git:
  repo: https://source.developers.google.com/p/village-linen-ac15e6/r/website
  branch: master
  auth: gcenode
  secretRef:
    name: acm-website-repo

The RepoSync manifest names the target namespace and supplies the Git repository, branch, and authentication settings for its namespace repository. section 11.3.2

How Google Anthos in Action covers it

How deep it goes
Defines root and namespace repository responsibilities, RepoSync placement, and conflict precedence, with a concrete manifest rather than sync internals.
Examples
Shows a root policy-directory tree with namespace repo-sync.yaml files and a website RepoSync manifest.
What it assumes
Uses Git repositories, Kubernetes namespaces, and resource manifests without teaching their fundamentals.
What you can do after
Operate/configure it by assigning a root repository and connecting delegated namespace repositories through RepoSync.
How it connects
Connects Git repositories, Kubernetes namespaces, RepoSync, and hierarchy or unstructured policy directories.

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.