diff --git a/cluster/addons/cluster-loadbalancing/glbc/glbc.yaml b/cluster/addons/cluster-loadbalancing/glbc/default-svc-controller.yaml similarity index 50% rename from cluster/addons/cluster-loadbalancing/glbc/glbc.yaml rename to cluster/addons/cluster-loadbalancing/glbc/default-svc-controller.yaml index e08a2abb015..4f3ce1e3b59 100644 --- a/cluster/addons/cluster-loadbalancing/glbc/glbc.yaml +++ b/cluster/addons/cluster-loadbalancing/glbc/default-svc-controller.yaml @@ -1,33 +1,26 @@ -{% set kube_uid = "" -%} -{% if pillar['kube_uid'] is defined -%} - {% set kube_uid = pillar['kube_uid'] %} -{% endif -%} - apiVersion: v1 kind: ReplicationController metadata: - name: l7-lb-controller-v0.6.2 + name: l7-default-backend-v1.0 namespace: kube-system labels: k8s-app: glbc - version: v0.6.2 + version: v1.0 kubernetes.io/cluster-service: "true" kubernetes.io/name: "GLBC" spec: - # There should never be more than 1 controller alive simultaneously. replicas: 1 selector: k8s-app: glbc - version: v0.6.2 + version: v1.0 template: metadata: labels: k8s-app: glbc - version: v0.6.2 + version: v1.0 name: glbc kubernetes.io/cluster-service: "true" spec: - terminationGracePeriodSeconds: 600 containers: - name: default-http-backend # Any image is permissible as long as: @@ -50,26 +43,3 @@ spec: requests: cpu: 10m memory: 20Mi - - image: gcr.io/google_containers/glbc:0.6.2 - livenessProbe: - httpGet: - path: /healthz - port: 8081 - scheme: HTTP - initialDelaySeconds: 30 - # healthz reaches out to GCE - periodSeconds: 30 - timeoutSeconds: 5 - name: l7-lb-controller - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 100m - memory: 50Mi - args: - - --default-backend-service=kube-system/default-http-backend - - --verbose=true - - --sync-period=60s - - --cluster-uid={{kube_uid}} diff --git a/cluster/saltbase/salt/l7-gcp/glbc.manifest b/cluster/saltbase/salt/l7-gcp/glbc.manifest new file mode 100644 index 00000000000..d386ded7cce --- /dev/null +++ b/cluster/saltbase/salt/l7-gcp/glbc.manifest @@ -0,0 +1,53 @@ +apiVersion: v1 +kind: Pod +metadata: + name: l7-lb-controller-v0.6.0 + namespace: kube-system + labels: + k8s-app: glbc + version: v0.6.0 + kubernetes.io/cluster-service: "true" + kubernetes.io/name: "GLBC" +spec: + terminationGracePeriodSeconds: 600 + hostNetwork: true + containers: + # TODO: Push thing image once kubernetes/contrib/pull/680 is in. + - image: bprashanth/glbc:0.6.3 + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /healthz + port: 8086 + scheme: HTTP + initialDelaySeconds: 30 + # healthz reaches out to GCE + periodSeconds: 30 + timeoutSeconds: 5 + name: l7-lb-controller + volumeMounts: + - mountPath: /etc/gce.conf + name: cloudconfig + readOnly: true + - mountPath: /var/log/glbc.log + name: logfile + readOnly: false + resources: + limits: + cpu: 100m + memory: 100Mi + requests: + cpu: 100m + memory: 50Mi + command: + # TODO: split this out into args when we no longer need to pipe stdout to a file #6428 + - sh + - -c + - '/glbc --default-backend-service=kube-system/default-http-backend --sync-period=60s --running-in-cluster=false --use-real-cloud=true --config-file-path=/etc/gce.conf --healthz-port=8086 1>>/var/log/glbc.log 2>&1' + volumes: + - hostPath: + path: /etc/gce.conf + name: cloudconfig + - hostPath: + path: /var/log/glbc.log + name: logfile diff --git a/cluster/saltbase/salt/l7-gcp/init.sls b/cluster/saltbase/salt/l7-gcp/init.sls new file mode 100644 index 00000000000..6617d6bf8d4 --- /dev/null +++ b/cluster/saltbase/salt/l7-gcp/init.sls @@ -0,0 +1,17 @@ +/etc/kubernetes/manifests/glbc.manifest: + file.managed: + - source: salt://l7-gcp/glbc.manifest + - template: jinja + - user: root + - group: root + - mode: 644 + - makedirs: true + - dir_mode: 755 + +/var/log/glbc.log: + file.managed: + - user: root + - group: root + - mode: 644 + + diff --git a/cluster/saltbase/salt/top.sls b/cluster/saltbase/salt/top.sls index cb2f9104185..000bbd9a9e9 100644 --- a/cluster/saltbase/salt/top.sls +++ b/cluster/saltbase/salt/top.sls @@ -56,6 +56,9 @@ base: - cni {% elif pillar.get('network_provider', '').lower() == 'cni' %} - cni +{% endif %} +{% if pillar.get('enable_l7_loadbalancing', '').lower() == 'glbc' %} + - l7-gcp {% endif %} - kube-apiserver - kube-controller-manager