<p dir="auto">Hi guys,</p>
<p dir="auto">I need to enable HA for controller currently. I decided to use kops app and kubernetes version 1.4.3.<br>
Currently I have 3 controllers (each in different AZ), however I need to have rest of stuff located only in one AZ, ie. zone C.</p>
<p dir="auto">In this situation leader election marked master from zone B as a leader and all requested ELB's somehow need to be created in the same zone as elected master. In this situation, even I have free IP addresses in that subnet (zone B) it is not useful as all stuff is in different zone.</p>
<p dir="auto">Is there a possibility to determine which subnet should be taken into consideration for ELB creation?<br>
Maybe ELB should be created in the same zone as svc and pods connected to that service requested?<br>
Is there any possibility to change manually leader ?</p>
<p dir="auto">Thanks,<br>
Adam</p>
<p dir="auto"><strong>What keywords did you search in Kubernetes issues before filing this one?</strong> (If you have found any duplicates, you should instead reply there.):<br>
perma-failed deployment</p>
<p dir="auto"><strong>Kubernetes version</strong> (use <code class="notranslate">kubectl version</code>):<br>
v1.6.0-alpha.0.191+a132e5c5800108</p>
<p dir="auto"><strong>What happened</strong>:<br>
Shouldn't count the time in pause phase for perma-failed deployment.</p>
<p dir="auto"><strong>How to reproduce it</strong> (as minimally and precisely as possible):</p>
<ol dir="auto">
<li>Create deployment by deployment-perme-failed-1.yaml and pause the deployment immediately.</li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ kubectl create -f deployment-perme-failed-1.yaml; kubectl rollout pause deployment/hello-openshift"><pre class="notranslate"><code class="notranslate">$ kubectl create -f deployment-perme-failed-1.yaml; kubectl rollout pause deployment/hello-openshift
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="# cat deployment-perme-failed-1.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: hello-openshift
spec:
  progressDeadlineSeconds: 30
  replicas: 3
  template:
    metadata:
      labels:
        app: hello-openshift
    spec:
      containers:
      - name: hello-openshift
        image: openshift/hello-openshift:123
        ports:
        - containerPort: 80"><pre class="notranslate"><code class="notranslate"># cat deployment-perme-failed-1.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: hello-openshift
spec:
  progressDeadlineSeconds: 30
  replicas: 3
  template:
    metadata:
      labels:
        app: hello-openshift
    spec:
      containers:
      - name: hello-openshift
        image: openshift/hello-openshift:123
        ports:
        - containerPort: 80
</code></pre></div>
<ol start="2" dir="auto">
<li>After 30 seconds, check deployment status.</li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ kubectl describe deployment/hello-openshift
Conditions:
  Type        Status    Reason
  ----        ------    ------
  Available     False    MinimumReplicasUnavailable
  Progressing     Unknown    DeploymentPaused"><pre class="notranslate"><code class="notranslate">$ kubectl describe deployment/hello-openshift
Conditions:
  Type        Status    Reason
  ----        ------    ------
  Available     False    MinimumReplicasUnavailable
  Progressing     Unknown    DeploymentPaused
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ kubectl get deployment/hello-openshift -o yaml
  status:
    conditions:
    - lastTransitionTime: 2016-11-08T08:20:41Z
      lastUpdateTime: 2016-11-08T08:20:41Z
      message: Deployment does not have minimum availability.
      reason: MinimumReplicasUnavailable
      status: &quot;False&quot;
      type: Available
    - lastTransitionTime: 2016-11-08T08:20:41Z
      lastUpdateTime: 2016-11-08T08:20:41Z
      message: Deployment is paused
      reason: DeploymentPaused
      status: Unknown
      type: Progressing
    observedGeneration: 2
    replicas: 3
    unavailableReplicas: 3
    updatedReplicas: 3"><pre class="notranslate"><code class="notranslate">$ kubectl get deployment/hello-openshift -o yaml
  status:
    conditions:
    - lastTransitionTime: 2016-11-08T08:20:41Z
      lastUpdateTime: 2016-11-08T08:20:41Z
      message: Deployment does not have minimum availability.
      reason: MinimumReplicasUnavailable
      status: "False"
      type: Available
    - lastTransitionTime: 2016-11-08T08:20:41Z
      lastUpdateTime: 2016-11-08T08:20:41Z
      message: Deployment is paused
      reason: DeploymentPaused
      status: Unknown
      type: Progressing
    observedGeneration: 2
    replicas: 3
    unavailableReplicas: 3
    updatedReplicas: 3
</code></pre></div>
<ol start="3" dir="auto">
<li>Resuming the deployment</li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ kubectl rollout resume deployment/hello-openshift"><pre class="notranslate"><code class="notranslate">$ kubectl rollout resume deployment/hello-openshift
</code></pre></div>
<p dir="auto"><strong>Actual results</strong>:<br>
3. The type of <code class="notranslate">Progressing</code> change to <code class="notranslate">false</code> and <code class="notranslate">ProgressDeadlineExceeded</code> immediately after resume deployment.<br>
In describtion of deployment:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Conditions:
  Type		Status	Reason
  ----		------	------
  Available 	False	MinimumReplicasUnavailable
  Progressing 	False	ProgressDeadlineExceeded"><pre class="notranslate"><code class="notranslate">Conditions:
  Type		Status	Reason
  ----		------	------
  Available 	False	MinimumReplicasUnavailable
  Progressing 	False	ProgressDeadlineExceeded
</code></pre></div>
<p dir="auto"><strong>Expected results</strong>:<br>
3.1 Conditions should be as below after resume deployment.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Conditions:
  Type        Status    Reason
  ----        ------    ------
  Available     False    MinimumReplicasUnavailable
  Progressing     True    ReplicaSetUpdated"><pre class="notranslate"><code class="notranslate">Conditions:
  Type        Status    Reason
  ----        ------    ------
  Available     False    MinimumReplicasUnavailable
  Progressing     True    ReplicaSetUpdated
</code></pre></div>
<p dir="auto">3.2 After 30 seconds, the type of <code class="notranslate">Progressing</code> change to <code class="notranslate">false</code> and <code class="notranslate">ProgressDeadlineExceeded</code>.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Conditions:
  Type		Status	Reason
  ----		------	------
  Available 	False	MinimumReplicasUnavailable
  Progressing 	False	ProgressDeadlineExceeded"><pre class="notranslate"><code class="notranslate">Conditions:
  Type		Status	Reason
  ----		------	------
  Available 	False	MinimumReplicasUnavailable
  Progressing 	False	ProgressDeadlineExceeded
</code></pre></div>
<p dir="auto"><strong>Anything else do we need to know</strong>:<br>
We should concern how to count times for below three scenarios:</p>
<ol dir="auto">
<li><code class="notranslate">progressDeadlineSeconds: 30</code>, deploy a deployment(with not exist pod image), pause deployment after 10 seconds, hold on 1mins in pause phase, what status after resume deployment?</li>
<li><code class="notranslate">progressDeadlineSeconds: 30</code>, deploy a deployment(with not exist pod image), pause deployment after 10 seconds, hold on 5 seconds in pause phase, what status after resume deployment?</li>
<li><code class="notranslate">progressDeadlineSeconds: 30</code>, deploy a deployment(with not exist pod image) and pause deployment immediately, hold on 1mins in pause phase, what status after resume deployment?</li>
</ol>