* feat(app/docker): backport docker/components changes * feat(app/docker): backport docker/helpers changes * feat(app/docker): backport docker/views/container changes * feat(app/docker): backport docker/views/images changes * feat(app/docker): backport docker/views/registries changes * feat(app/docker): backport docker/views/services changes * feat(app/docker): backport docker changes * feat(app/kubernetes): backport kubernetes/components changes * feat(app/kubernetes): backport kubernetes/converters changes * feat(app/kubernetes): backport kubernetes/models changes * feat(app/kubernetes): backport kubernetes/registries changes * feat(app/kubernetes): backport kubernetes/services changes * feat(app/kubernetes): backport kubernetes/views/applications changes * feat(app/kubernetes): backport kubernetes/views/configurations changes * feat(app/kubernetes): backport kubernetes/views/configure changes * feat(app/kubernetes): backport kubernetes/views/resource-pools changes * feat(app/kubernetes): backport kubernetes/views changes * feat(app/portainer): backport portainer/components/accessManagement changes * feat(app/portainer): backport portainer/components/datatables changes * feat(app/portainer): backport portainer/components/forms changes * feat(app/portainer): backport portainer/components/registry-details changes * feat(app/portainer): backport portainer/models changes * feat(app/portainer): backport portainer/rest changes * feat(app/portainer): backport portainer/services changes * feat(app/portainer): backport portainer/views changes * feat(app/portainer): backport portainer changes * feat(app): backport app changes * config(project): gitignore + jsconfig changes gitignore all files under api/cmd/portainer but main.go and enable Code Editor autocomplete on import ... from '@/...'
159 lines
4.7 KiB
JavaScript
159 lines
4.7 KiB
JavaScript
import { PorImageRegistryModel } from '@/docker/models/porImageRegistry';
|
|
import { KubernetesApplicationDataAccessPolicies, KubernetesApplicationDeploymentTypes, KubernetesApplicationPublishingTypes, KubernetesApplicationPlacementTypes } from './models';
|
|
|
|
/**
|
|
* KubernetesApplicationFormValues Model
|
|
*/
|
|
export function KubernetesApplicationFormValues() {
|
|
return {
|
|
ApplicationType: undefined, // will only exist for formValues generated from Application (app edit situation)
|
|
ResourcePool: {},
|
|
Name: '',
|
|
StackName: '',
|
|
ApplicationOwner: '',
|
|
ImageModel: new PorImageRegistryModel(),
|
|
Note: '',
|
|
MemoryLimit: 0,
|
|
CpuLimit: 0,
|
|
DeploymentType: KubernetesApplicationDeploymentTypes.REPLICATED,
|
|
ReplicaCount: 1,
|
|
AutoScaler: {},
|
|
Containers: [],
|
|
EnvironmentVariables: [], // KubernetesApplicationEnvironmentVariableFormValue list
|
|
DataAccessPolicy: KubernetesApplicationDataAccessPolicies.SHARED,
|
|
PersistedFolders: [], // KubernetesApplicationPersistedFolderFormValue list
|
|
Configurations: [], // KubernetesApplicationConfigurationFormValue list
|
|
PublishingType: KubernetesApplicationPublishingTypes.INTERNAL,
|
|
PublishedPorts: [], // KubernetesApplicationPublishedPortFormValue list
|
|
PlacementType: KubernetesApplicationPlacementTypes.PREFERRED,
|
|
Placements: [], // KubernetesApplicationPlacementFormValue list
|
|
OriginalIngresses: undefined,
|
|
};
|
|
}
|
|
|
|
export const KubernetesApplicationConfigurationFormValueOverridenKeyTypes = Object.freeze({
|
|
NONE: 0,
|
|
ENVIRONMENT: 1,
|
|
FILESYSTEM: 2,
|
|
});
|
|
|
|
/**
|
|
* KubernetesApplicationConfigurationFormValueOverridenKey Model
|
|
*/
|
|
const _KubernetesApplicationConfigurationFormValueOverridenKey = Object.freeze({
|
|
Key: '',
|
|
Path: '',
|
|
Type: KubernetesApplicationConfigurationFormValueOverridenKeyTypes.ENVIRONMENT,
|
|
});
|
|
|
|
export class KubernetesApplicationConfigurationFormValueOverridenKey {
|
|
constructor() {
|
|
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationConfigurationFormValueOverridenKey)));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* KubernetesApplicationConfigurationFormValue Model
|
|
*/
|
|
const _KubernetesApplicationConfigurationFormValue = Object.freeze({
|
|
SelectedConfiguration: undefined,
|
|
Overriden: false,
|
|
OverridenKeys: [], // KubernetesApplicationConfigurationFormValueOverridenKey list
|
|
});
|
|
|
|
export class KubernetesApplicationConfigurationFormValue {
|
|
constructor() {
|
|
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationConfigurationFormValue)));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* KubernetesApplicationEnvironmentVariableFormValue Model
|
|
*/
|
|
const _KubernetesApplicationEnvironmentVariableFormValue = Object.freeze({
|
|
Name: '',
|
|
Value: '',
|
|
IsSecret: false,
|
|
NeedsDeletion: false,
|
|
IsNew: true,
|
|
NameIndex: '', // keep the original name for sorting
|
|
});
|
|
|
|
export class KubernetesApplicationEnvironmentVariableFormValue {
|
|
constructor() {
|
|
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationEnvironmentVariableFormValue)));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* KubernetesApplicationPersistedFolderFormValue Model
|
|
*/
|
|
const _KubernetesApplicationPersistedFolderFormValue = Object.freeze({
|
|
PersistentVolumeClaimName: '', // will be empty for new volumes (create/edit app) and filled for existing ones (edit)
|
|
NeedsDeletion: false,
|
|
ContainerPath: '',
|
|
Size: '',
|
|
SizeUnit: 'GB',
|
|
StorageClass: {},
|
|
ExistingVolume: null,
|
|
UseNewVolume: true,
|
|
});
|
|
|
|
export class KubernetesApplicationPersistedFolderFormValue {
|
|
constructor(storageClass) {
|
|
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationPersistedFolderFormValue)));
|
|
this.StorageClass = storageClass;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* KubernetesApplicationPublishedPortFormValue Model
|
|
*/
|
|
export function KubernetesApplicationPublishedPortFormValue() {
|
|
return {
|
|
NeedsDeletion: false,
|
|
IsNew: true,
|
|
ContainerPort: '',
|
|
NodePort: '',
|
|
LoadBalancerPort: '',
|
|
LoadBalancerNodePort: undefined, // only filled to save existing loadbalancer nodePort and drop it when moving app exposure from LB to Internal/NodePort
|
|
Protocol: 'TCP',
|
|
IngressName: undefined,
|
|
IngressRoute: undefined,
|
|
IngressHost: undefined,
|
|
};
|
|
}
|
|
|
|
export function KubernetesApplicationPlacementFormValue() {
|
|
return {
|
|
Label: {},
|
|
Value: '',
|
|
NeedsDeletion: false,
|
|
IsNew: true,
|
|
};
|
|
}
|
|
|
|
/**
|
|
* KubernetesApplicationAutoScalerFormValue Model
|
|
*/
|
|
const _KubernetesApplicationAutoScalerFormValue = Object.freeze({
|
|
MinReplicas: 0,
|
|
MaxReplicas: 0,
|
|
TargetCPUUtilization: 50,
|
|
ApiVersion: '',
|
|
IsUsed: false,
|
|
});
|
|
|
|
export class KubernetesApplicationAutoScalerFormValue {
|
|
constructor() {
|
|
Object.assign(this, JSON.parse(JSON.stringify(_KubernetesApplicationAutoScalerFormValue)));
|
|
}
|
|
}
|
|
|
|
export function KubernetesFormValidationReferences() {
|
|
return {
|
|
refs: {},
|
|
hasRefs: false,
|
|
};
|
|
}
|