feat: fully functioning ALB

This commit is contained in:
Zakaria
2026-09-26 16:14:24 -04:00
parent 093afb9b2b
commit 8470b8d17a
44 changed files with 2076 additions and 132 deletions
@@ -11,7 +11,6 @@ const loadBalancerColumns: TableColumnSchema[] = [
const loadBalancerFilters: FieldSchema[] = [{name: 'search', label: 'Search', type: 'text', required: false}]
export const ELB_TYPES = ['application', 'network'] as const
export const ELB_SCHEMES = ['internet-facing', 'internal'] as const
/** ELBv2 names: up to 32 chars, alphanumerics and hyphens, no leading/trailing hyphen. */
@@ -48,14 +47,6 @@ export function awsLoadBalancingSchema(): ServiceSchema {
description:
'Two or more subnet ids, comma separated — e.g. subnet-aaa, subnet-bbb. ELB requires them to be in different availability zones.',
},
{
name: 'type',
label: 'Type',
type: 'select',
required: false,
description: 'Defaults to application.',
options: ELB_TYPES.map((value) => ({label: value, value})),
},
{
name: 'scheme',
label: 'Scheme',
@@ -65,7 +56,10 @@ export function awsLoadBalancingSchema(): ServiceSchema {
options: ELB_SCHEMES.map((value) => ({label: value, value})),
},
],
actions: ['list', 'create', 'delete', 'inspect'],
actions: ['list', 'create', 'update', 'delete', 'inspect'],
updateFields: [
{name: 'securityGroups', label: 'Security Groups', type: 'text', required: true, valuePath: 'metadata.securityGroups'},
],
capabilities: {
resourceActions: [
{name: 'list', label: 'List load balancers', enabled: true, status: 'available', runtimeRequired: true},
@@ -77,8 +71,14 @@ export function awsLoadBalancingSchema(): ServiceSchema {
status: 'available',
runtimeRequired: true,
},
{name: 'update', label: 'Set security groups', enabled: true, status: 'available', runtimeRequired: true},
{name: 'delete', label: 'Delete', enabled: true, status: 'available', runtimeRequired: true},
],
itemActions: [
{name: 'list', label: 'List listeners', enabled: true, status: 'available', runtimeRequired: true},
{name: 'put', label: 'Create listener', enabled: true, status: 'available', runtimeRequired: true},
{name: 'delete', label: 'Delete listener', enabled: true, status: 'available', runtimeRequired: true},
],
},
filters: loadBalancerFilters,
columns: loadBalancerColumns,