Skip to content

Commit

Permalink
PMM-12544 Add deprecation notice for DBaaS (#692)
Browse files Browse the repository at this point in the history
* PMM-12544 Add deprecation notice for DBaaS

* PMM-12544 Remove K8s promotion message

* PMM-12544 Removed unnecessary unit test
  • Loading branch information
matejkubinec authored Oct 31, 2023
1 parent d3d08d7 commit 8631374
Show file tree
Hide file tree
Showing 11 changed files with 62 additions and 94 deletions.
2 changes: 2 additions & 0 deletions public/app/percona/dbaas/components/DBCluster/DBCluster.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import { fetchDBClustersAction } from '../../../shared/core/reducers/dbaas/dbClu
import { selectDBCluster, selectKubernetesCluster } from '../../../shared/core/reducers/dbaas/dbaas';
import { useUpdateOfKubernetesList } from '../../hooks/useKubernetesList';
import { AddClusterButton } from '../AddClusterButton/AddClusterButton';
import DbaasDeprecationWarning from '../DeprecationWarning';
import { isKubernetesListUnavailable } from '../Kubernetes/Kubernetes.utils';
import { KubernetesClusterStatus } from '../Kubernetes/KubernetesClusterStatus/KubernetesClusterStatus.types';

Expand Down Expand Up @@ -215,6 +216,7 @@ export const DBCluster: FC = () => {
<OldPage.Contents>
<TechnicalPreview />
<FeatureLoader featureName={DBaaSMessages.dbaas} featureSelector={featureSelector}>
<DbaasDeprecationWarning />
<div>
<div className={styles.actionPanel}>
<AddNewClusterButton />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export const EVEREST_LINK = 'http://per.co.na/pmm-to-everest';
export const MIGRATION_GUIDE_LINK = 'http://per.co.na/pmm-to-everest-guide';
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export const Messages = {
title: 'Deprecation notice',
warning: 'DBaaS feature is deprecated. We encourage you to use ',
everest: 'Everest',
warningCont: ' instead. Check out our ',
guide: 'Migration guide',
dot: '.',
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import React, { FC } from 'react';

import { Alert } from '@grafana/ui';

import { EVEREST_LINK, MIGRATION_GUIDE_LINK } from './DeprecationWarning.constants';
import { Messages } from './DeprecationWarning.messages';

const DbaasDeprecationWarning: FC = () => (
<div>
<Alert title={Messages.title} severity="warning">
{Messages.warning}
<a target="_blank" rel="noopener noreferrer" href={EVEREST_LINK}>
{Messages.everest}
</a>
{Messages.warningCont}
<a target="_blank" rel="noopener noreferrer" href={MIGRATION_GUIDE_LINK}>
{Messages.guide}
</a>
{Messages.dot}
</Alert>
</div>
);

export default DbaasDeprecationWarning;
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import DbaasDeprecationWarning from './DeprecationWarning';

export default DbaasDeprecationWarning;
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import { Provider } from 'react-redux';
import { configureStore } from 'app/store/configureStore';
import { StoreState } from 'app/types';

import { KubernetesService } from './Kubernetes.service';
import { KubernetesClusterStatus } from './KubernetesClusterStatus/KubernetesClusterStatus.types';
import { KubernetesInventory } from './KubernetesInventory';
import { KubernetesOperatorStatus } from './OperatorStatusItem/KubernetesOperatorStatus/KubernetesOperatorStatus.types';
Expand Down Expand Up @@ -54,33 +53,4 @@ describe('KubernetesInventory::', () => {
await waitForElementToBeRemoved(() => screen.getByTestId('table-loading'));
expect(screen.getAllByTestId('table-row')).toHaveLength(2);
});

it('shows portal k8s free cluster promoting message when user has no clusters', async () => {
jest.spyOn(KubernetesService, 'getKubernetes').mockImplementation(() =>
Promise.resolve({
kubernetes_clusters: [],
})
);
render(
<Provider
store={configureStore({
percona: {
user: { isAuthorized: true },
settings: { loading: false, result: { isConnectedToPortal: true, dbaasEnabled: true } },
kubernetes: {
loading: false,
},
addKubernetes: { loading: false },
deleteKubernetes: { loading: false },
},
} as StoreState)}
>
<KubernetesInventory setMode={jest.fn} />
</Provider>
);

expect(screen.queryByTestId('pmm-server-promote-portal-k8s-cluster-message')).not.toBeInTheDocument();
await waitForElementToBeRemoved(() => screen.getByTestId('table-loading'));
expect(screen.getByTestId('pmm-server-promote-portal-k8s-cluster-message')).toBeInTheDocument();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { useSelector } from 'app/types';
import { useAppDispatch } from '../../../../store/store';
import { useKubernetesList } from '../../hooks/useKubernetesList';
import { AddClusterButton } from '../AddClusterButton/AddClusterButton';
import DbaasDeprecationWarning from '../DeprecationWarning';

import { clusterActionsRender } from './ColumnRenderers/ColumnRenderers';
import { K8sPageMode } from './K8sRouting/K8sRouting';
Expand All @@ -37,7 +38,6 @@ import { KubernetesClusterStatus as K8SStatus } from './KubernetesClusterStatus/
import { ManageComponentsVersionsModal } from './ManageComponentsVersionsModal/ManageComponentsVersionsModal';
import { UpdateOperatorModal } from './OperatorStatusItem/KubernetesOperatorStatus/UpdateOperatorModal/UpdateOperatorModal';
import { OperatorStatusRow } from './OperatorStatusRow/OperatorStatusRow';
import { PortalK8sFreeClusterPromotingMessage } from './PortalK8sFreeClusterPromotingMessage/PortalK8sFreeClusterPromotingMessage';
import { ViewClusterConfigModal } from './ViewClusterConfigModal/ViewClusterConfigModal';

interface KubernetesInventoryProps {
Expand Down Expand Up @@ -159,6 +159,7 @@ export const KubernetesInventory: FC<KubernetesInventoryProps> = ({ setMode }) =
<OldPage.Contents>
<TechnicalPreview />
<FeatureLoader featureName={Messages.dbaas} featureSelector={featureSelector}>
<DbaasDeprecationWarning />
<div>
<div className={styles.actionPanel}>
<AddNewClusterButton />
Expand Down Expand Up @@ -231,7 +232,6 @@ export const KubernetesInventory: FC<KubernetesInventoryProps> = ({ setMode }) =
/>
</div>
</FeatureLoader>
{kubernetes && kubernetes.length === 0 && <PortalK8sFreeClusterPromotingMessage />}
</OldPage.Contents>
</OldPage>
);
Expand Down

This file was deleted.

This file was deleted.

1 change: 1 addition & 0 deletions public/app/percona/settings/Settings.messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ export const Messages = {
'These are technical preview features, not recommended to be used in production environments. Read more\n' +
' about feature status',
technicalPreviewLinkText: 'here',
deprecatedFeatures: 'Deprecated features',
},
alertmanager: {
warningPre: "Note: integration with Alertmanager is needed only in cases when you can't use",
Expand Down
34 changes: 20 additions & 14 deletions public/app/percona/settings/components/Advanced/Advanced.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { Field, withTypes } from 'react-final-form';

import { Button, Icon, Spinner, useStyles2 } from '@grafana/ui';
import { OldPage } from 'app/core/components/Page/Page';
import DbaasDeprecationWarning from 'app/percona/dbaas/components/DeprecationWarning';
import { Messages } from 'app/percona/settings/Settings.messages';
import { getSettingsStyles } from 'app/percona/settings/Settings.styles';
import { FeatureLoader } from 'app/percona/shared/components/Elements/FeatureLoader';
Expand Down Expand Up @@ -104,6 +105,7 @@ export const Advanced: FC = () => {
backupLabel,
backupLink,
backupTooltip,
deprecatedFeatures,
},
tooltipLinkText,
} = Messages;
Expand Down Expand Up @@ -340,20 +342,6 @@ export const Advanced: FC = () => {
</a>
</p>
</div>
<Field
name="dbaas"
type="checkbox"
label={dbaasLabel}
tooltip={dbaasTooltip}
tooltipLinkText={tooltipLinkText}
link={dbaasLink}
dataTestId="advanced-dbaas"
component={SwitchRow}
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
onChange={(event: React.ChangeEvent<HTMLInputElement>, input: any) => {
dBaaSToggleOnChange(event, input, mutators);
}}
/>
<Field
name="azureDiscover"
type="checkbox"
Expand All @@ -375,6 +363,24 @@ export const Advanced: FC = () => {
component={SwitchRow}
/>
</fieldset>
<fieldset className={styles.technicalPreview}>
<legend>{deprecatedFeatures}</legend>
{!!values.dbaas && <DbaasDeprecationWarning />}
<Field
name="dbaas"
type="checkbox"
label={dbaasLabel}
tooltip={dbaasTooltip}
tooltipLinkText={tooltipLinkText}
link={dbaasLink}
dataTestId="advanced-dbaas"
component={SwitchRow}
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
onChange={(event: React.ChangeEvent<HTMLInputElement>, input: any) => {
dBaaSToggleOnChange(event, input, mutators);
}}
/>
</fieldset>
<Button
className={settingsStyles.actionButton}
type="submit"
Expand Down

0 comments on commit 8631374

Please sign in to comment.