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);
|
||||
function ImageHelperFactory() {
|
||||
|
@ -28,9 +28,8 @@ function ImageHelperFactory() {
|
|||
* @param {PorImageRegistryModel} registry
|
||||
*/
|
||||
function createImageConfigForContainer(imageModel) {
|
||||
const registry = imageModel.UseRegistry ? imageModel.Registry : undefined;
|
||||
return {
|
||||
fromImage: buildImageFullURI(imageModel.Image, registry),
|
||||
fromImage: buildImageFullURIFromModel(imageModel),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import {
|
|||
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||
import { buildImageFullURI } from '@/react/docker/images/utils';
|
||||
import { buildImageFullURIFromModel } from '@/react/docker/images/utils';
|
||||
|
||||
class KubernetesDaemonSetConverter {
|
||||
/**
|
||||
|
@ -51,7 +51,7 @@ class KubernetesDaemonSetConverter {
|
|||
payload.spec.template.metadata.labels.app = daemonSet.Name;
|
||||
payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = daemonSet.ApplicationName;
|
||||
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) {
|
||||
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${daemonSet.ImageModel.Registry.Id}` }];
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import {
|
|||
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||
import { buildImageFullURI } from '@/react/docker/images/utils';
|
||||
import { buildImageFullURIFromModel } from '@/react/docker/images/utils';
|
||||
|
||||
class KubernetesDeploymentConverter {
|
||||
/**
|
||||
|
@ -56,7 +56,7 @@ class KubernetesDeploymentConverter {
|
|||
payload.spec.template.spec.containers[0].name = deployment.Name;
|
||||
|
||||
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) {
|
||||
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${deployment.ImageModel.Registry.Id}` }];
|
||||
|
|
|
@ -12,7 +12,7 @@ import {
|
|||
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||
import KubernetesCommonHelper from 'Kubernetes/helpers/commonHelper';
|
||||
import { buildImageFullURI } from '@/react/docker/images/utils';
|
||||
import { buildImageFullURIFromModel } from '@/react/docker/images/utils';
|
||||
import KubernetesPersistentVolumeClaimConverter from './persistentVolumeClaim';
|
||||
|
||||
class KubernetesStatefulSetConverter {
|
||||
|
@ -58,7 +58,7 @@ class KubernetesStatefulSetConverter {
|
|||
payload.spec.template.metadata.labels[KubernetesPortainerApplicationNameLabel] = statefulSet.ApplicationName;
|
||||
payload.spec.template.spec.containers[0].name = statefulSet.Name;
|
||||
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) {
|
||||
payload.spec.template.spec.imagePullSecrets = [{ name: `registry-${statefulSet.ImageModel.Registry.Id}` }];
|
||||
}
|
||||
|
|
|
@ -40,9 +40,17 @@ export function imageContainsURL(image: string) {
|
|||
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
|
||||
* @param {PorImageRegistryModel} imageModel
|
||||
*/
|
||||
export function buildImageFullURI(image: string, registry?: Registry) {
|
||||
if (!registry) {
|
||||
|
|
Loading…
Reference in New Issue