Skip to content

Commit 6000d5d

Browse files
Merge pull request #7288 from reginapizza/reginascott-GitOpsEnvArgoLinks
Add ArgoCD application links to GitOpsDetailsPage cards
2 parents f9df538 + bd932b2 commit 6000d5d

File tree

4 files changed

+68
-27
lines changed

4 files changed

+68
-27
lines changed

frontend/packages/dev-console/src/components/gitops/GitOpsDetailsPage.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ const GitOpsDetailsPage: React.FC<GitOpsDetailsPageProps> = ({ match, location }
8989
{!envsData && !emptyStateMsg ? (
9090
<LoadingBox />
9191
) : (
92-
<GitOpsDetailsController envsData={envsData} emptyStateMsg={emptyStateMsg} />
92+
<GitOpsDetailsController
93+
envsData={envsData}
94+
emptyStateMsg={emptyStateMsg}
95+
appName={appName}
96+
/>
9397
)}
9498
</>
9599
);

frontend/packages/dev-console/src/components/gitops/details/GitOpsDetails.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77
margin-right: 35px;
88
min-width: 285px;
99
max-width: 285px;
10+
&__argocd-link {
11+
margin-top: var(--pf-global--spacer--md)
12+
}
13+
&__co-resource-item {
14+
margin-top: var(--pf-global--spacer--sm)
15+
}
1016
&__header {
1117
display: flex;
1218
flex-direction: column;

frontend/packages/dev-console/src/components/gitops/details/GitOpsDetails.tsx

Lines changed: 54 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,41 @@
11
import * as React from 'react';
22
import * as _ from 'lodash';
33
import { useTranslation } from 'react-i18next';
4-
import { Stack, StackItem, Card, CardTitle, SplitItem, Split, Label } from '@patternfly/react-core';
4+
import {
5+
Stack,
6+
StackItem,
7+
Card,
8+
CardTitle,
9+
CardBody,
10+
SplitItem,
11+
Split,
12+
Label,
13+
} from '@patternfly/react-core';
514
import { ExternalLink, ResourceIcon } from '@console/internal/components/utils';
15+
import { ConsoleLinkModel } from '@console/internal/models';
16+
import { useK8sWatchResource } from '@console/internal/components/utils/k8s-watch-hook';
17+
import { K8sResourceKind, referenceForModel } from '@console/internal/module/k8s';
618
import GitOpsServiceDetailsSection from './GitOpsServiceDetailsSection';
719
import { GitOpsEnvironment } from '../utils/gitops-types';
820
import './GitOpsDetails.scss';
921

1022
interface GitOpsDetailsProps {
1123
envs: GitOpsEnvironment[];
24+
appName: string;
1225
}
1326

14-
const GitOpsDetails: React.FC<GitOpsDetailsProps> = ({ envs }) => {
27+
const GitOpsDetails: React.FC<GitOpsDetailsProps> = ({ envs, appName }) => {
1528
const { t } = useTranslation();
29+
const [consoleLinks] = useK8sWatchResource<K8sResourceKind[]>({
30+
isList: true,
31+
kind: referenceForModel(ConsoleLinkModel),
32+
optional: true,
33+
});
34+
const argocdLink = _.find(
35+
consoleLinks,
36+
(link: K8sResourceKind) =>
37+
link.metadata?.name === 'argocd' && link.spec?.location === 'ApplicationMenu',
38+
);
1639
return (
1740
<div className="odc-gitops-details">
1841
{_.map(
@@ -23,27 +46,24 @@ const GitOpsDetails: React.FC<GitOpsDetailsProps> = ({ envs }) => {
2346
<StackItem>
2447
<Card>
2548
<CardTitle className="odc-gitops-details__env-section__header">
26-
<Stack hasGutter>
27-
<StackItem>
28-
<Split style={{ alignItems: 'center' }} hasGutter>
29-
<SplitItem
30-
className="odc-gitops-details__env-section__title co-truncate co-nowrap"
31-
isFilled
32-
>
33-
{env.environment}
34-
</SplitItem>
35-
<SplitItem>
36-
<Label
37-
className="odc-gitops-details__env-section__timestamp"
38-
color="grey"
39-
>
40-
<span style={{ color: 'var(--pf-global--palette--black-600)' }}>
41-
{env.timestamp}
42-
</span>
43-
</Label>
44-
</SplitItem>
45-
</Split>
46-
</StackItem>
49+
<Split style={{ alignItems: 'center' }} hasGutter>
50+
<SplitItem
51+
className="odc-gitops-details__env-section__title co-truncate co-nowrap"
52+
isFilled
53+
>
54+
{env.environment}
55+
</SplitItem>
56+
<SplitItem>
57+
<Label className="odc-gitops-details__env-section__timestamp" color="grey">
58+
<span style={{ color: 'var(--pf-global--palette--black-600)' }}>
59+
{env.timestamp}
60+
</span>
61+
</Label>
62+
</SplitItem>
63+
</Split>
64+
</CardTitle>
65+
<CardBody>
66+
<Stack>
4767
<StackItem className="co-truncate co-nowrap">
4868
{env.cluster ? (
4969
<ExternalLink
@@ -58,13 +78,22 @@ const GitOpsDetails: React.FC<GitOpsDetailsProps> = ({ envs }) => {
5878
)}
5979
</StackItem>
6080
<StackItem className="co-truncate co-nowrap">
61-
<span className="co-resource-item">
81+
<span className="co-resource-item odc-gitops-details__env-section__co-resource-item">
6282
<ResourceIcon kind="Project" />
6383
<span className="co-resource-item__resource-name">{env.environment}</span>
6484
</span>
6585
</StackItem>
86+
{env.environment && argocdLink && (
87+
<StackItem className="co-truncate co-nowrap">
88+
<ExternalLink
89+
href={`${argocdLink.spec.href}/applications/${env.environment}-${appName}`}
90+
text="Argo CD"
91+
additionalClassName="odc-gitops-details__env-section__argocd-link"
92+
/>
93+
</StackItem>
94+
)}
6695
</Stack>
67-
</CardTitle>
96+
</CardBody>
6897
</Card>
6998
</StackItem>
7099
<GitOpsServiceDetailsSection services={env.services} />

frontend/packages/dev-console/src/components/gitops/details/GitOpsDetailsController.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import GitOpsEmptyState from '../GitOpsEmptyState';
1313
interface GitOpsDetailsControllerProps {
1414
envsData: GitOpsEnvironment[];
1515
emptyStateMsg: string;
16+
appName: string;
1617
}
1718

1819
const getWorkLoad = (resources: GitOpsResource[]) => {
@@ -59,14 +60,15 @@ const getTransformedEnvsData = (originalEnvsData: GitOpsEnvironment[], t: TFunct
5960
const GitOpsDetailsController: React.FC<GitOpsDetailsControllerProps> = ({
6061
envsData,
6162
emptyStateMsg,
63+
appName,
6264
}) => {
6365
const { t } = useTranslation();
6466
const envs = React.useMemo(() => getTransformedEnvsData(envsData, t), [envsData, t]);
6567

6668
return emptyStateMsg ? (
6769
<GitOpsEmptyState emptyStateMsg={emptyStateMsg} />
6870
) : (
69-
<GitOpsDetails envs={envs} />
71+
<GitOpsDetails envs={envs} appName={appName} />
7072
);
7173
};
7274

0 commit comments

Comments
 (0)