Kubernetes federated deployment different image url per cluster

5/24/2018

any idea how to define a Kubernetes federated deployment to use different image urls from different registries?

I have a federated cluster of GKE cluster and I want the deployment to pull for their local GCR.

apiVersion: extensions/v1beta1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
  annotations:
    federation.kubernetes.io/deployment-preferences: |
      {
        "rebalance": true,
        "clusters": {
          "federation-br": {
             "minReplicas": 1,
             "maxReplicas": 1,
             "weight": 1
          },
          "federation-eu": {
              "minReplicas": 3,
              "weight": 1
          },
        }
      }
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 5 # tells deployment to run 2 pods matching the template
  template: # create pods using pod definition in this template
    metadata:
      # unlike pod-nginx.yaml, the name is not included in the meta data as a unique name is
      # generated from the deployment name
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: eu.gcr.io/nginx/proj/app:master.SHAslug
        ports:
        - containerPort: 80

I wanna use all eu.gcr.io, us.gcr.io, asia.gcr.io based on the cluster location.

Or do I really want it?

-- bartimar
google-container-registry
google-kubernetes-engine
kubernetes

1 Answer

6/20/2018

The purpose of using a federated deployment is to have a single config file for the deployment across multiple clusters. The only way you could do it is if you could include a variable within the YAML file. However, this does not seem like an option with YAML files. Looks like this isn't an option.

-- Patrick W
Source: StackOverflow