mirror of https://github.com/portainer/portainer
fix(kube): deploy app with image [EE-5738] (#9194)
parent
a9c6fa5ac2
commit
de5c959e24
|
@ -1,4 +1,4 @@
|
||||||
import { buildImageFullURI, imageContainsURL } from '@/react/docker/images/utils';
|
import { buildImageFullURIFromModel, imageContainsURL } from '@/react/docker/images/utils';
|
||||||
|
|
||||||
angular.module('portainer.docker').factory('ImageHelper', ImageHelperFactory);
|
angular.module('portainer.docker').factory('ImageHelper', ImageHelperFactory);
|
||||||
function ImageHelperFactory() {
|
function ImageHelperFactory() {
|
||||||
|
@ -28,9 +28,8 @@ function ImageHelperFactory() {
|
||||||
* @param {PorImageRegistryModel} registry
|
* @param {PorImageRegistryModel} registry
|
||||||
*/
|
*/
|
||||||
function createImageConfigForContainer(imageModel) {
|
function createImageConfigForContainer(imageModel) {
|
||||||
const registry = imageModel.UseRegistry ? imageModel.Registry : undefined;
|
|
||||||
return {
|
return {
|
||||||
fromImage: buildImageFullURI(imageModel.Image, registry),
|
fromImage: buildImageFullURIFromModel(imageModel),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {
|
||||||
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
||||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||||
import { buildImageFullURI } from '@/react/docker/images/utils';
|
import { buildImageFullURIFromModel } from '@/react/docker/images/utils';
|
||||||
|
|
||||||
class KubernetesDaemonSetConverter {
|
class KubernetesDaemonSetConverter {
|
||||||
/**
|
/**
|
||||||
|
@ -51,7 +51,7 @@ class KubernetesDaemonSetConverter {
|
||||||
payload.spec.template.metadata.labels.app = daemonSet.Name;
|
payload.spec.template.metadata.labels.app = daemonSet.Name;
|
||||||
payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = daemonSet.ApplicationName;
|
payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = daemonSet.ApplicationName;
|
||||||
payload.spec.template.spec.containers[0].name = daemonSet.Name;
|
payload.spec.template.spec.containers[0].name = daemonSet.Name;
|
||||||
payload.spec.template.spec.containers[0].image = buildImageFullURI(daemonSet.ImageModel);
|
payload.spec.template.spec.containers[0].image = buildImageFullURIFromModel(daemonSet.ImageModel);
|
||||||
if (daemonSet.ImageModel.Registry && daemonSet.ImageModel.Registry.Authentication) {
|
if (daemonSet.ImageModel.Registry && daemonSet.ImageModel.Registry.Authentication) {
|
||||||
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${daemonSet.ImageModel.Registry.Id}` }];
|
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${daemonSet.ImageModel.Registry.Id}` }];
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ import {
|
||||||
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
||||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||||
import { buildImageFullURI } from '@/react/docker/images/utils';
|
import { buildImageFullURIFromModel } from '@/react/docker/images/utils';
|
||||||
|
|
||||||
class KubernetesDeploymentConverter {
|
class KubernetesDeploymentConverter {
|
||||||
/**
|
/**
|
||||||
|
@ -56,7 +56,7 @@ class KubernetesDeploymentConverter {
|
||||||
payload.spec.template.spec.containers[0].name = deployment.Name;
|
payload.spec.template.spec.containers[0].name = deployment.Name;
|
||||||
|
|
||||||
if (deployment.ImageModel) {
|
if (deployment.ImageModel) {
|
||||||
payload.spec.template.spec.containers[0].image = buildImageFullURI(deployment.ImageModel);
|
payload.spec.template.spec.containers[0].image = buildImageFullURIFromModel(deployment.ImageModel);
|
||||||
|
|
||||||
if (deployment.ImageModel.Registry && deployment.ImageModel.Registry.Authentication) {
|
if (deployment.ImageModel.Registry && deployment.ImageModel.Registry.Authentication) {
|
||||||
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${deployment.ImageModel.Registry.Id}` }];
|
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${deployment.ImageModel.Registry.Id}` }];
|
||||||
|
|
|
@ -12,7 +12,7 @@ import {
|
||||||
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
||||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||||
import { buildImageFullURI } from '@/react/docker/images/utils';
|
import { buildImageFullURIFromModel } from '@/react/docker/images/utils';
|
||||||
import KubernetesPersistentVolumeClaimConverter from './persistentVolumeClaim';
|
import KubernetesPersistentVolumeClaimConverter from './persistentVolumeClaim';
|
||||||
|
|
||||||
class KubernetesStatefulSetConverter {
|
class KubernetesStatefulSetConverter {
|
||||||
|
@ -58,7 +58,7 @@ class KubernetesStatefulSetConverter {
|
||||||
payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = statefulSet.ApplicationName;
|
payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = statefulSet.ApplicationName;
|
||||||
payload.spec.template.spec.containers[0].name = statefulSet.Name;
|
payload.spec.template.spec.containers[0].name = statefulSet.Name;
|
||||||
if (statefulSet.ImageModel.Image) {
|
if (statefulSet.ImageModel.Image) {
|
||||||
payload.spec.template.spec.containers[0].image = buildImageFullURI(statefulSet.ImageModel);
|
payload.spec.template.spec.containers[0].image = buildImageFullURIFromModel(statefulSet.ImageModel);
|
||||||
if (statefulSet.ImageModel.Registry && statefulSet.ImageModel.Registry.Authentication) {
|
if (statefulSet.ImageModel.Registry && statefulSet.ImageModel.Registry.Authentication) {
|
||||||
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${statefulSet.ImageModel.Registry.Id}` }];
|
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${statefulSet.ImageModel.Registry.Id}` }];
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,9 +40,17 @@ export function imageContainsURL(image: string) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function buildImageFullURIFromModel(imageModel: {
|
||||||
|
UseRegistry: boolean;
|
||||||
|
Registry?: Registry;
|
||||||
|
Image: string;
|
||||||
|
}) {
|
||||||
|
const registry = imageModel.UseRegistry ? imageModel.Registry : undefined;
|
||||||
|
return buildImageFullURI(imageModel.Image, registry);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* builds the complete uri for an image based on its registry
|
* builds the complete uri for an image based on its registry
|
||||||
* @param {PorImageRegistryModel} imageModel
|
|
||||||
*/
|
*/
|
||||||
export function buildImageFullURI(image: string, registry?: Registry) {
|
export function buildImageFullURI(image: string, registry?: Registry) {
|
||||||
if (!registry) {
|
if (!registry) {
|
||||||
|
|
Loading…
Reference in New Issue