Implement Keystone environment deployments

This commit is contained in:
2026-05-13 16:11:23 +01:00
parent 65d3142d03
commit aa680b25fd
175 changed files with 10258 additions and 740 deletions

View File

@@ -6,7 +6,7 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/u
import AppLayout from '@/layouts/AppLayout.vue';
import { Head, Link } from '@inertiajs/vue3';
import { useCycleList, useInterval } from '@vueuse/core';
import { DatabaseIcon, Layers2Icon, LoaderCircleIcon, PlusIcon } from 'lucide-vue-next';
import { DatabaseIcon, Layers2Icon, LoaderCircleIcon, PlusIcon, RefreshCwIcon } from 'lucide-vue-next';
import { ref, watch } from 'vue';
defineProps({
@@ -97,17 +97,34 @@ watch(counter, () => {
<Layers2Icon class="inline-block size-4" /> {{ service.slices?.length }} slices
</CardDescription>
</CardHeader>
<CardContent v-if="['postgres', 'valkey'].includes(service.type)">
<Button
:as="Link"
:href="
route('service-updates.create', {
organisation: $page.props.organisation.id,
server: server.id,
service: service.id,
})
"
size="xs"
variant="outline"
>
<RefreshCwIcon class="size-4" />
Update
</Button>
</CardContent>
</Card>
</div>
</div>
<div>
<h3 class="mb-3 text-2xl font-semibold tracking-tight">Deployments</h3>
<h3 class="mb-3 text-2xl font-semibold tracking-tight">Operations</h3>
<Card>
<CardContent class="py-4">
<div v-for="deployment in server.service_deployments" class="flex gap-4">
<div class="w-48 leading-none">{{ deployment.target.name }}</div>
<div v-for="operation in server.service_operations" :key="operation.id" class="flex gap-4">
<div class="w-48 leading-none">{{ operation.target.name }}</div>
<div class="w-full space-y-4">
<div v-for="step in deployment.steps" class="flex items-center space-y-1">
<div v-for="step in operation.steps" :key="step.id" class="flex items-center space-y-1">
<div class="flex-1">
<div class="text-sm font-semibold leading-none">
{{ step.name ?? 'Unnamed Step' }}