|
1 | 1 | <script lang="ts">
|
2 |
| - import { fragment, graphql, type NetworkPolicy } from '$houdini'; |
| 2 | + import { fragment, graphql, type NetworkPolicy, type NetworkPolicy$data } from '$houdini'; |
3 | 3 | import WarningIcon from '$lib/icons/WarningIcon.svelte';
|
4 | 4 | import { Heading } from '@nais/ds-svelte-community';
|
5 | 5 | import { GlobeIcon } from '@nais/ds-svelte-community/icons';
|
|
72 | 72 | )
|
73 | 73 | );
|
74 | 74 |
|
75 |
| - $inspect($data.networkPolicy.outbound); |
| 75 | + type NetworkPolicyRule = NetworkPolicy$data['networkPolicy']['inbound' | 'outbound']['rules'][0]; |
76 | 76 | </script>
|
77 | 77 |
|
| 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 | + |
78 | 103 | <Heading level="2" size="medium" spacing>Network policy</Heading>
|
79 | 104 | {#if $data.networkPolicy.inbound.rules.length > 0 || $data.networkPolicy.outbound.rules.length > 0 || $data.networkPolicy.outbound.external.length > 0}
|
80 | 105 | <div class="grid">
|
|
83 | 108 | <ul>
|
84 | 109 | {#each $data.networkPolicy.inbound.rules as rule (rule)}
|
85 | 110 | <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)} |
108 | 112 | </li>
|
109 | 113 | {: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> |
111 | 117 | {/each}
|
112 | 118 | </ul>
|
113 | 119 | </div>
|
|
126 | 132 | {/each}
|
127 | 133 | {/each}
|
128 | 134 | {: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> |
130 | 138 | {/each}
|
131 | 139 | </ul>
|
132 | 140 | {#if $data.networkPolicy.outbound.rules.length > 0}
|
133 | 141 | <Heading level="4" size="xsmall" spacing>Workloads</Heading>
|
134 | 142 | <ul>
|
135 | 143 | {#each $data.networkPolicy.outbound.rules as rule (rule)}
|
136 | 144 | <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)} |
159 | 146 | </li>
|
160 | 147 | {/each}
|
161 | 148 | </ul>
|
162 | 149 | {/if}
|
163 | 150 | {:else}
|
164 |
| - No outbound network policies configured for this app. |
| 151 | + No outbound network policies configured for this {$data.__typename?.toLowerCase()}. |
165 | 152 | {/if}
|
166 | 153 | </div>
|
167 | 154 | </div>
|
168 | 155 | {:else}
|
169 |
| - No network policies configured for this app. |
| 156 | + No network policies configured for this {$data.__typename?.toLowerCase()}. |
170 | 157 | {/if}
|
171 | 158 |
|
172 | 159 | <style>
|
|
0 commit comments