Skip to content

Commit

Permalink
Merge pull request #1517 from headlamp-k8s/init-container-log-detail
Browse files Browse the repository at this point in the history
frontend: Add init and ephemeral containers logs
  • Loading branch information
joaquimrocha authored Nov 6, 2023
2 parents 05fb940 + 95c913d commit 24c98de
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 16 deletions.
42 changes: 33 additions & 9 deletions frontend/src/components/common/Terminal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import MenuItem from '@material-ui/core/MenuItem';
import Select from '@material-ui/core/Select';
import { makeStyles } from '@material-ui/core/styles';
import _ from 'lodash';
import React from 'react';
import React, { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { Terminal as XTerminal } from 'xterm';
import { FitAddon } from 'xterm-addon-fit';
Expand Down Expand Up @@ -76,15 +76,15 @@ export default function Terminal(props: TerminalProps) {
const { item, onClose, isAttach, ...other } = props;
const classes = useStyle();
const [terminalContainerRef, setTerminalContainerRef] = React.useState<HTMLElement | null>(null);
const [container, setContainer] = React.useState<string | null>(null);
const [container, setContainer] = useState<string | null>(getDefaultContainer());
const execOrAttachRef = React.useRef<execReturn | null>(null);
const fitAddonRef = React.useRef<FitAddon | null>(null);
const xtermRef = React.useRef<XTerminalConnected | null>(null);
const [shells, setShells] = React.useState({
available: getAvailableShells(),
currentIdx: 0,
});
const { t } = useTranslation();
const { t } = useTranslation(['translation', 'glossary']);

function getDefaultContainer() {
return item.spec.containers.length > 0 ? item.spec.containers[0].name : '';
Expand Down Expand Up @@ -424,12 +424,36 @@ export default function Terminal(props: TerminalProps) {
value={container !== null ? container : getDefaultContainer()}
onChange={handleContainerChange}
>
{item &&
item.spec.containers.map(({ name }) => (
<MenuItem value={name} key={name}>
{name}
</MenuItem>
))}
{item?.spec?.containers && (
<MenuItem disabled value="">
{t('glossary|Containers')}
</MenuItem>
)}
{item?.spec?.containers.map(({ name }) => (
<MenuItem value={name} key={name}>
{name}
</MenuItem>
))}
{item?.spec?.initContainers && (
<MenuItem disabled value="">
{t('translation|Init Containers')}
</MenuItem>
)}
{item.spec.initContainers?.map(({ name }) => (
<MenuItem value={name} key={`init_container_${name}`}>
{name}
</MenuItem>
))}
{item?.spec?.ephemeralContainers && (
<MenuItem disabled value="">
{t('glossary|Ephemeral Containers')}
</MenuItem>
)}
{item.spec.ephemeralContainers?.map(({ name }) => (
<MenuItem value={name} key={`eph_container_${name}`}>
{name}
</MenuItem>
))}
</Select>
</FormControl>
</Box>
Expand Down
36 changes: 30 additions & 6 deletions frontend/src/components/pod/Details.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -170,12 +170,36 @@ function PodLogViewer(props: PodLogViewerProps) {
value={container}
onChange={handleContainerChange}
>
{item &&
item.spec.containers.map(({ name }) => (
<MenuItem value={name} key={name}>
{name}
</MenuItem>
))}
{item?.spec?.containers && (
<MenuItem disabled value="">
{t('glossary|Containers')}
</MenuItem>
)}
{item?.spec?.containers.map(({ name }) => (
<MenuItem value={name} key={name}>
{name}
</MenuItem>
))}
{item?.spec?.initContainers && (
<MenuItem disabled value="">
{t('translation|Init Containers')}
</MenuItem>
)}
{item.spec.initContainers?.map(({ name }) => (
<MenuItem value={name} key={`init_container_${name}`}>
{name}
</MenuItem>
))}
{item?.spec?.ephemeralContainers && (
<MenuItem disabled value="">
{t('glossary|Ephemeral Containers')}
</MenuItem>
)}
{item.spec.ephemeralContainers?.map(({ name }) => (
<MenuItem value={name} key={`eph_container_${name}`}>
{name}
</MenuItem>
))}
</Select>
</FormControl>,
<FormControl className={classes.linesFormControl}>
Expand Down
1 change: 1 addition & 0 deletions frontend/src/i18n/locales/de/glossary.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"Containers": "Container",
"Container Spec": "Container-Spezifikation",
"Container": "Container",
"Ephemeral Containers": "",
"Config Maps": "Config Maps",
"Definition": "Definition",
"CRD: {{ crdName }}": "CRD: {{ crdName }}",
Expand Down
1 change: 1 addition & 0 deletions frontend/src/i18n/locales/en/glossary.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"Containers": "Containers",
"Container Spec": "Container Spec",
"Container": "Container",
"Ephemeral Containers": "Ephemeral Containers",
"Config Maps": "Config Maps",
"Definition": "Definition",
"CRD: {{ crdName }}": "CRD: {{ crdName }}",
Expand Down
1 change: 1 addition & 0 deletions frontend/src/i18n/locales/es/glossary.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"Containers": "Contenedores",
"Container Spec": "Espec. de Contenedor",
"Container": "Contenedor",
"Ephemeral Containers": "",
"Config Maps": "Config Maps",
"Definition": "Definición",
"CRD: {{ crdName }}": "CRD: {{ crdName }}",
Expand Down
1 change: 1 addition & 0 deletions frontend/src/i18n/locales/fr/glossary.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"Containers": "Conteneurs",
"Container Spec": "Spécifications des conteneurs",
"Container": "Conteneur",
"Ephemeral Containers": "",
"Config Maps": "Config Maps",
"Definition": "Définition",
"CRD: {{ crdName }}": "CRD: {{ crdName }}",
Expand Down
1 change: 1 addition & 0 deletions frontend/src/i18n/locales/pt/glossary.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"Containers": "Containers",
"Container Spec": "Espec. de \"Container\"",
"Container": "Container",
"Ephemeral Containers": "",
"Config Maps": "Config Maps",
"Definition": "Definição",
"CRD: {{ crdName }}": "CRD: {{ crdName }}",
Expand Down
3 changes: 2 additions & 1 deletion frontend/src/lib/k8s/pod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ export interface KubePodSpec {
nodeSelector?: {
[key: string]: string;
};
initContainers?: any[];
initContainers?: KubeContainer[];
ephemeralContainers?: KubeContainer[];
readinessGates?: {
conditionType: string;
}[];
Expand Down

0 comments on commit 24c98de

Please sign in to comment.