mirror of
https://github.com/portainer/portainer.git
synced 2025-07-21 14:29:40 +02:00
refactor(edge/stacks): migrate create view to react [EE-2223] (#11575)
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
This commit is contained in:
parent
f22aed34b5
commit
8a81d95253
64 changed files with 1878 additions and 1005 deletions
|
@ -7,6 +7,8 @@ import {
|
|||
GitFormModel,
|
||||
RelativePathModel,
|
||||
} from '@/react/portainer/gitops/types';
|
||||
import { saveGitCredentialsIfNeeded } from '@/react/portainer/account/git-credentials/queries/useCreateGitCredentialsMutation';
|
||||
import { UserId } from '@/portainer/users/types';
|
||||
|
||||
import { DeploymentType, StaggerConfig } from '../../types';
|
||||
|
||||
|
@ -18,7 +20,8 @@ export function useCreateEdgeStack() {
|
|||
return useMutation(createEdgeStack);
|
||||
}
|
||||
|
||||
type BasePayload = {
|
||||
export type BasePayload = {
|
||||
userId: UserId;
|
||||
/** Name of the stack */
|
||||
name: string;
|
||||
/** Content of the Stack file */
|
||||
|
@ -87,34 +90,7 @@ function createEdgeStack({ method, payload }: CreateEdgeStackPayload) {
|
|||
Webhook: payload.webhook,
|
||||
});
|
||||
case 'git':
|
||||
return createStackFromGit({
|
||||
deploymentType: payload.deploymentType,
|
||||
edgeGroups: payload.edgeGroups,
|
||||
name: payload.name,
|
||||
envVars: payload.envVars,
|
||||
prePullImage: payload.prePullImage,
|
||||
registries: payload.registries,
|
||||
retryDeploy: payload.retryDeploy,
|
||||
staggerConfig: payload.staggerConfig,
|
||||
useManifestNamespaces: payload.useManifestNamespaces,
|
||||
repositoryUrl: payload.git.RepositoryURL,
|
||||
repositoryReferenceName: payload.git.RepositoryReferenceName,
|
||||
filePathInRepository: payload.git.ComposeFilePathInRepository,
|
||||
repositoryAuthentication: payload.git.RepositoryAuthentication,
|
||||
repositoryUsername: payload.git.RepositoryUsername,
|
||||
repositoryPassword: payload.git.RepositoryPassword,
|
||||
repositoryGitCredentialId: payload.git.RepositoryGitCredentialID,
|
||||
filesystemPath: payload.relativePathSettings?.FilesystemPath,
|
||||
supportRelativePath: payload.relativePathSettings?.SupportRelativePath,
|
||||
perDeviceConfigsGroupMatchType:
|
||||
payload.relativePathSettings?.PerDeviceConfigsGroupMatchType,
|
||||
perDeviceConfigsMatchType:
|
||||
payload.relativePathSettings?.PerDeviceConfigsMatchType,
|
||||
perDeviceConfigsPath:
|
||||
payload.relativePathSettings?.PerDeviceConfigsPath,
|
||||
tlsSkipVerify: payload.git.TLSSkipVerify,
|
||||
autoUpdate: payload.git.AutoUpdate,
|
||||
});
|
||||
return createStackAndGitCredential(payload.userId, payload);
|
||||
case 'string':
|
||||
return createStackFromFileContent({
|
||||
deploymentType: payload.deploymentType,
|
||||
|
@ -133,3 +109,41 @@ function createEdgeStack({ method, payload }: CreateEdgeStackPayload) {
|
|||
throw new Error('Invalid method');
|
||||
}
|
||||
}
|
||||
|
||||
async function createStackAndGitCredential(
|
||||
userId: UserId,
|
||||
payload: BasePayload & {
|
||||
git: GitFormModel;
|
||||
relativePathSettings?: RelativePathModel;
|
||||
}
|
||||
) {
|
||||
const newGitModel = await saveGitCredentialsIfNeeded(userId, payload.git);
|
||||
|
||||
return createStackFromGit({
|
||||
deploymentType: payload.deploymentType,
|
||||
edgeGroups: payload.edgeGroups,
|
||||
name: payload.name,
|
||||
envVars: payload.envVars,
|
||||
prePullImage: payload.prePullImage,
|
||||
registries: payload.registries,
|
||||
retryDeploy: payload.retryDeploy,
|
||||
staggerConfig: payload.staggerConfig,
|
||||
useManifestNamespaces: payload.useManifestNamespaces,
|
||||
repositoryUrl: newGitModel.RepositoryURL,
|
||||
repositoryReferenceName: newGitModel.RepositoryReferenceName,
|
||||
filePathInRepository: newGitModel.ComposeFilePathInRepository,
|
||||
repositoryAuthentication: newGitModel.RepositoryAuthentication,
|
||||
repositoryUsername: newGitModel.RepositoryUsername,
|
||||
repositoryPassword: newGitModel.RepositoryPassword,
|
||||
repositoryGitCredentialId: newGitModel.RepositoryGitCredentialID,
|
||||
filesystemPath: payload.relativePathSettings?.FilesystemPath,
|
||||
supportRelativePath: payload.relativePathSettings?.SupportRelativePath,
|
||||
perDeviceConfigsGroupMatchType:
|
||||
payload.relativePathSettings?.PerDeviceConfigsGroupMatchType,
|
||||
perDeviceConfigsMatchType:
|
||||
payload.relativePathSettings?.PerDeviceConfigsMatchType,
|
||||
perDeviceConfigsPath: payload.relativePathSettings?.PerDeviceConfigsPath,
|
||||
tlsSkipVerify: newGitModel.TLSSkipVerify,
|
||||
autoUpdate: newGitModel.AutoUpdate,
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue