mirror of https://github.com/portainer/portainer
fix(k8s/applications): fix an issue with daemonset in 0/0 state (#4288)
parent
8dac2df7bf
commit
9300603777
|
@ -130,10 +130,10 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr ng-if="!$ctrl.dataset">
|
||||
<td colspan="6" class="text-center text-muted">Loading...</td>
|
||||
<td colspan="7" class="text-center text-muted">Loading...</td>
|
||||
</tr>
|
||||
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
|
||||
<td colspan="6" class="text-center text-muted">No pod available.</td>
|
||||
<td colspan="7" class="text-center text-muted">No pod available.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -3,14 +3,14 @@ import { KubernetesPortMapping, KubernetesPortMappingPort } from 'Kubernetes/mod
|
|||
import { KubernetesServiceTypes } from 'Kubernetes/models/service/models';
|
||||
import { KubernetesConfigurationTypes } from 'Kubernetes/models/configuration/models';
|
||||
import {
|
||||
KubernetesApplicationConfigurationFormValueOverridenKeyTypes,
|
||||
KubernetesApplicationEnvironmentVariableFormValue,
|
||||
KubernetesApplicationAutoScalerFormValue,
|
||||
KubernetesApplicationConfigurationFormValue,
|
||||
KubernetesApplicationConfigurationFormValueOverridenKey,
|
||||
KubernetesApplicationConfigurationFormValueOverridenKeyTypes,
|
||||
KubernetesApplicationEnvironmentVariableFormValue,
|
||||
KubernetesApplicationPersistedFolderFormValue,
|
||||
KubernetesApplicationPublishedPortFormValue,
|
||||
KubernetesApplicationAutoScalerFormValue,
|
||||
KubernetesApplicationPlacementFormValue,
|
||||
KubernetesApplicationPublishedPortFormValue,
|
||||
} from 'Kubernetes/models/application/formValues';
|
||||
import {
|
||||
KubernetesApplicationEnvConfigMapPayload,
|
||||
|
@ -23,13 +23,13 @@ import {
|
|||
KubernetesApplicationVolumeSecretPayload,
|
||||
} from 'Kubernetes/models/application/payloads';
|
||||
import KubernetesVolumeHelper from 'Kubernetes/helpers/volumeHelper';
|
||||
import { KubernetesApplicationPlacementTypes, KubernetesApplicationDeploymentTypes } from 'Kubernetes/models/application/models';
|
||||
import { KubernetesPodNodeAffinityNodeSelectorRequirementOperators, KubernetesPodAffinity } from 'Kubernetes/pod/models';
|
||||
import { KubernetesApplicationDeploymentTypes, KubernetesApplicationPlacementTypes } from 'Kubernetes/models/application/models';
|
||||
import { KubernetesPodAffinity, KubernetesPodNodeAffinityNodeSelectorRequirementOperators } from 'Kubernetes/pod/models';
|
||||
import {
|
||||
KubernetesNodeSelectorTermPayload,
|
||||
KubernetesPreferredSchedulingTermPayload,
|
||||
KubernetesPodNodeAffinityPayload,
|
||||
KubernetesNodeSelectorRequirementPayload,
|
||||
KubernetesNodeSelectorTermPayload,
|
||||
KubernetesPodNodeAffinityPayload,
|
||||
KubernetesPreferredSchedulingTermPayload,
|
||||
} from 'Kubernetes/pod/payloads/affinities';
|
||||
|
||||
class KubernetesApplicationHelper {
|
||||
|
@ -65,7 +65,7 @@ class KubernetesApplicationHelper {
|
|||
}
|
||||
|
||||
static associateContainersAndApplication(app) {
|
||||
if (!app.Pods) {
|
||||
if (!app.Pods || app.Pods.length === 0) {
|
||||
return [];
|
||||
}
|
||||
const containers = app.Pods[0].Containers;
|
||||
|
|
|
@ -40,6 +40,10 @@ function computeTolerations(nodes, application) {
|
|||
// Some operators require empty "values" field, some only one element in "values" field, etc
|
||||
|
||||
function computeAffinities(nodes, application) {
|
||||
if (!application.Pods || application.Pods.length === 0) {
|
||||
return nodes;
|
||||
}
|
||||
|
||||
const pod = application.Pods[0];
|
||||
_.forEach(nodes, (n) => {
|
||||
if (pod.NodeSelector) {
|
||||
|
|
Loading…
Reference in New Issue