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
