Skip to content

Commit c452d0a

Browse files
committed
be specific about workload without mutual network policy
1 parent 30857d0 commit c452d0a

File tree

1 file changed

+37
-50
lines changed

1 file changed

+37
-50
lines changed

src/lib/components/NetworkPolicy.svelte

Lines changed: 37 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script lang="ts">
2-
import { fragment, graphql, type NetworkPolicy } from '$houdini';
2+
import { fragment, graphql, type NetworkPolicy, type NetworkPolicy$data } from '$houdini';
33
import WarningIcon from '$lib/icons/WarningIcon.svelte';
44
import { Heading } from '@nais/ds-svelte-community';
55
import { GlobeIcon } from '@nais/ds-svelte-community/icons';
@@ -72,9 +72,34 @@
7272
)
7373
);
7474
75-
$inspect($data.networkPolicy.outbound);
75+
type NetworkPolicyRule = NetworkPolicy$data['networkPolicy']['inbound' | 'outbound']['rules'][0];
7676
</script>
7777

78+
{#snippet networkPolicyRule(rule: NetworkPolicyRule)}
79+
{#if rule.targetWorkloadName == '*'}
80+
Any app {#if rule.targetWorkloadName == '*'}
81+
from any namespace
82+
{:else}
83+
in {rule.targetTeamSlug}
84+
{/if} in {$data.environment.name}
85+
{:else if !rule.mutual && rule.targetWorkload}
86+
<WorkloadLink
87+
workload={rule.targetWorkload}
88+
warning="{rule.targetWorkloadName} is missing outbound policy to {$data.name}"
89+
/>
90+
{:else if rule.targetWorkload}
91+
<WorkloadLink workload={rule.targetWorkload} />
92+
{:else}
93+
<IconLabel label={rule.targetWorkloadName} description={rule.targetTeamSlug}>
94+
{#snippet icon()}
95+
<TooltipAlignHack content="Invalid workload reference">
96+
<WarningIcon />
97+
</TooltipAlignHack>
98+
{/snippet}
99+
</IconLabel>
100+
{/if}
101+
{/snippet}
102+
78103
<Heading level="2" size="medium" spacing>Network policy</Heading>
79104
{#if $data.networkPolicy.inbound.rules.length > 0 || $data.networkPolicy.outbound.rules.length > 0 || $data.networkPolicy.outbound.external.length > 0}
80105
<div class="grid">
@@ -83,31 +108,12 @@
83108
<ul>
84109
{#each $data.networkPolicy.inbound.rules as rule (rule)}
85110
<li>
86-
{#if rule.targetWorkloadName == '*'}
87-
Any app {#if rule.targetWorkloadName == '*'}
88-
from any namespace
89-
{:else}
90-
in {rule.targetTeamSlug}
91-
{/if} in {$data.environment.name}
92-
{:else if !rule.mutual && rule.targetWorkload}
93-
<WorkloadLink
94-
workload={rule.targetWorkload}
95-
warning="Workload is missing outbound policy to {$data.name}"
96-
/>
97-
{:else if rule.targetWorkload}
98-
<WorkloadLink workload={rule.targetWorkload} />
99-
{:else}
100-
<IconLabel label={rule.targetWorkloadName} description={rule.targetTeamSlug}>
101-
{#snippet icon()}
102-
<TooltipAlignHack content="Invalid workload reference">
103-
<WarningIcon />
104-
</TooltipAlignHack>
105-
{/snippet}
106-
</IconLabel>
107-
{/if}
111+
{@render networkPolicyRule(rule)}
108112
</li>
109113
{:else}
110-
<li>No inbound network policies configured for this app.</li>
114+
<li>
115+
No inbound network policies configured for this {$data.__typename?.toLowerCase()}.
116+
</li>
111117
{/each}
112118
</ul>
113119
</div>
@@ -126,47 +132,28 @@
126132
{/each}
127133
{/each}
128134
{:else}
129-
<li>No external outbound network policies configured for this app.</li>
135+
<li>
136+
No external outbound network policies configured for this {$data.__typename?.toLowerCase()}.
137+
</li>
130138
{/each}
131139
</ul>
132140
{#if $data.networkPolicy.outbound.rules.length > 0}
133141
<Heading level="4" size="xsmall" spacing>Workloads</Heading>
134142
<ul>
135143
{#each $data.networkPolicy.outbound.rules as rule (rule)}
136144
<li>
137-
{#if rule.targetWorkloadName == '*'}
138-
Any app {#if rule.targetWorkloadName == '*'}
139-
from any namespace
140-
{:else}
141-
in {rule.targetTeamSlug}
142-
{/if} in {$data.environment.name}
143-
{:else if !rule.mutual && rule.targetWorkload}
144-
<WorkloadLink
145-
workload={rule.targetWorkload}
146-
warning="Workload is missing outbound policy to {$data.name}"
147-
/>
148-
{:else if rule.targetWorkload}
149-
<WorkloadLink workload={rule.targetWorkload} />
150-
{:else}
151-
<IconLabel label={rule.targetWorkloadName} description={rule.targetTeamSlug}>
152-
{#snippet icon()}
153-
<TooltipAlignHack content="Invalid workload reference">
154-
<WarningIcon />
155-
</TooltipAlignHack>
156-
{/snippet}
157-
</IconLabel>
158-
{/if}
145+
{@render networkPolicyRule(rule)}
159146
</li>
160147
{/each}
161148
</ul>
162149
{/if}
163150
{:else}
164-
No outbound network policies configured for this app.
151+
No outbound network policies configured for this {$data.__typename?.toLowerCase()}.
165152
{/if}
166153
</div>
167154
</div>
168155
{:else}
169-
No network policies configured for this app.
156+
No network policies configured for this {$data.__typename?.toLowerCase()}.
170157
{/if}
171158

172159
<style>

0 commit comments

Comments
 (0)