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) {