mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
feat(helm): helm actions [r8s-259] (#715)
Co-authored-by: James Player <james.player@portainer.io> Co-authored-by: Cara Ryan <cara.ryan@portainer.io> Co-authored-by: stevensbkang <skan070@gmail.com>
This commit is contained in:
parent
dfa32b6755
commit
4ee349bd6b
117 changed files with 4161 additions and 696 deletions
|
@ -0,0 +1,60 @@
|
|||
import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';
|
||||
|
||||
import { HelmRelease } from '../../types';
|
||||
import { useHelmRelease } from '../queries/useHelmRelease';
|
||||
|
||||
import { DiffViewMode } from './DiffControl';
|
||||
|
||||
/** useHelmReleaseToCompare is a hook that returns the release to compare to based on the diffViewMode, selectedRevisionNumber and selectedCompareRevisionNumber */
|
||||
export function useHelmReleaseToCompare(
|
||||
release: HelmRelease,
|
||||
earliestRevisionNumber: number,
|
||||
latestRevisionNumber: number,
|
||||
diffViewMode: DiffViewMode,
|
||||
selectedRevisionNumber: number,
|
||||
selectedCompareRevisionNumber: number
|
||||
) {
|
||||
const environmentId = useEnvironmentId();
|
||||
// the selectedCompareRevisionNumber is the number selected in the input field, but the compareRevisionNumber is the revision number of the release to compare to
|
||||
const compareRevisionNumber = getCompareReleaseVersion(
|
||||
diffViewMode,
|
||||
selectedRevisionNumber,
|
||||
selectedCompareRevisionNumber
|
||||
);
|
||||
const enabled =
|
||||
compareRevisionNumber <= latestRevisionNumber &&
|
||||
compareRevisionNumber >= earliestRevisionNumber;
|
||||
|
||||
// a 1 hour stale time is nice because past releases are not likely to change
|
||||
const compareReleaseQuery = useHelmRelease(
|
||||
environmentId,
|
||||
release.name,
|
||||
release.namespace ?? '',
|
||||
{
|
||||
showResources: false,
|
||||
enabled,
|
||||
staleTime: 60 * 60 * 1000,
|
||||
revision: compareRevisionNumber,
|
||||
}
|
||||
);
|
||||
return {
|
||||
compareRelease: compareReleaseQuery.data,
|
||||
isCompareReleaseLoading: compareReleaseQuery.isInitialLoading,
|
||||
isCompareReleaseError: compareReleaseQuery.isError,
|
||||
};
|
||||
}
|
||||
|
||||
// getCompareReleaseVersion is a helper function that returns the revision number that should be fetched based on the diffViewMode, selectedRevisionNumber and selectedCompareRevisionNumber
|
||||
function getCompareReleaseVersion(
|
||||
diffViewMode: DiffViewMode,
|
||||
selectedRevisionNumber: number,
|
||||
selectedCompareRevisionNumber: number
|
||||
) {
|
||||
if (diffViewMode === 'previous') {
|
||||
return selectedRevisionNumber - 1;
|
||||
}
|
||||
if (diffViewMode === 'specific') {
|
||||
return selectedCompareRevisionNumber;
|
||||
}
|
||||
return selectedRevisionNumber;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue