diff --git a/generator/overlays/v2/container-declare-stack/description.mdx b/generator/overlays/v2/container-declare-stack/description.mdx
index 9929c47..f4d4a08 100644
--- a/generator/overlays/v2/container-declare-stack/description.mdx
+++ b/generator/overlays/v2/container-declare-stack/description.mdx
@@ -2,7 +2,7 @@ This command can be used to declare the desired state of a container stack.
:::important Idempotent operation
-This operation is idempotent and can be used to add/update or remove containers and volumes from a stack. To remove a container, replace the container definition with an empty object.
+This operation is idempotent and can be used to add/update or remove containers and volumes from a stack. To remove a container, remove it from the definition list when replacing the container stack.
:::
diff --git a/generator/overlays/v2/container.mdx b/generator/overlays/v2/container.mdx
index 8b57d3c..eb0c589 100644
--- a/generator/overlays/v2/container.mdx
+++ b/generator/overlays/v2/container.mdx
@@ -40,6 +40,13 @@ Containers are run as part of a container stack. A container stack is a collecti
- to list available stacks (use the `default` stack)
- to declare the desired state of a container stack; this operation is idempotent and can be used to add/update or remove containers and volumes from a stack
+### Connecting domains to containers
+
+To connect a domain to a running container, you can specify the container as target of an ingress resource. Use the following API operation to create an ingress connected to a container:
+
+
+- to connect a domain to a container
+
## Operational tasks
To manage a container stack's lifecycle, you can use the following API operations:
diff --git a/generator/overlays/v2/overlay.yaml b/generator/overlays/v2/overlay.yaml
index 4b86687..422bfcd 100644
--- a/generator/overlays/v2/overlay.yaml
+++ b/generator/overlays/v2/overlay.yaml
@@ -71,4 +71,60 @@ actions:
update:
summary: Resets A records to managed for a specific zone
description: >
- This operation is deprecated. Use the `POST /v2/dns/zones/{zoneId}/record-sets/{recordSet}/actions/set-managed` endpoint instead.
\ No newline at end of file
+ This operation is deprecated. Use the `POST /v2/dns/zones/{zoneId}/record-sets/{recordSet}/actions/set-managed` endpoint instead.
+
+ - target: $.paths['/v2/ingresses'].post.requestBody.content['application/json'].schema.properties.paths
+ update:
+ example:
+ - path: /
+ target:
+ useDefaultPage: true
+ - path: /redirect
+ target:
+ url: https://some-redirect.example
+ - path: /path-to-dir
+ target:
+ directory: /public
+ - path: /path-to-app
+ target:
+ installationId: e1ccfde2-8983-4529-ae66-23a7e34c1177
+ - path: /path-to-container
+ target:
+ container:
+ id: ead3223c-6f23-4eaf-8250-392f10b49a35
+ portProtocol: 80/tcp
+ - target: $.components.schemas['de.mittwald.v1.ingress.TargetDirectory']
+ update:
+ description: Serve files from a specific directory
+ properties:
+ directory:
+ description: The directory from which to serve files.
+ example: /public
+ - target: $.components.schemas['de.mittwald.v1.ingress.TargetUrl']
+ update:
+ description: Redirect requests to this path to another URL
+ properties:
+ url:
+ description: The URL to which requests should be forwarded.
+ example: https://redirect-target.example
+ - target: $.components.schemas['de.mittwald.v1.ingress.TargetInstallation']
+ update:
+ description: Serve a specific app installation
+ properties:
+ installationId:
+ description: The ID of an app installation within the same project to which requests should be forwarded.
+ - target: $.components.schemas['de.mittwald.v1.ingress.TargetUseDefaultPage']
+ update:
+ description: Serve a generic default page
+ properties:
+ useDefaultPage:
+ description: Set this to `true` to serve a generic default site at this path.
+ - target: $.components.schemas['de.mittwald.v1.ingress.TargetContainer']
+ update:
+ description: Forward requests to this path to a specific container.
+ properties:
+ container:
+ descriptions: References a specific port/container combination within the same project.
+ properties:
+ portProtocol:
+ example: 80/tcp
\ No newline at end of file
diff --git a/src/components/openapi/OperationInputValue.tsx b/src/components/openapi/OperationInputValue.tsx
index b186a52..3453dbb 100644
--- a/src/components/openapi/OperationInputValue.tsx
+++ b/src/components/openapi/OperationInputValue.tsx
@@ -14,12 +14,19 @@ export function AlternativeValue({
}: {
schema: OpenAPIV3.SchemaObject;
}) {
+ let body: ReactNode;
+
+ if (schema.description) {
+ body = {schema.description};
+ }
+
return (
Alternative
+ {body && {body}
}
);
diff --git a/src/openapi/generateSchemaExample.ts b/src/openapi/generateSchemaExample.ts
index 1e647d0..a4906bc 100644
--- a/src/openapi/generateSchemaExample.ts
+++ b/src/openapi/generateSchemaExample.ts
@@ -43,6 +43,8 @@ export function generateSchemaExample(schema: OpenAPIV3.SchemaObject): any {
return "email@mittwald.example";
} else if (schema.format === "uuid") {
return "f0f86186-0a5a-45b2-aa33-502777496347";
+ } else if (schema.format === "idn-hostname") {
+ return "some-hostname.example";
}
if (schema.enum !== undefined) {