From 87060d654d22f9e9822fe4a4b2e486e3b825d0b2 Mon Sep 17 00:00:00 2001 From: Thanatat Tamtan Date: Mon, 29 Jun 2026 12:03:57 +0700 Subject: [PATCH] docs: drop external TCP Service (keep Internal TCP Service) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit External TCP Service (the TCPService deployment type) needs a dedicated external IP + port, which the platform no longer offers, so it's no longer an offered deployment type. Stop advertising it in the docs while keeping InternalTCPService (a ClusterIP — no dedicated external IP/port, unaffected). - types.md: remove the external 'TCP service' at-a-glance row and '## TCP service' section; make '## Internal TCP service' self-contained; 'six kinds'→'five', 'opens a TCP port'→'opens an in-cluster TCP port', description wording. - automation/github-action.md + deploy-from-github.md: drop TCPService from the valid 'type' value lists; port row '(WebService/TCPService)'→ '(WebService/InternalTCPService)'. - concepts.md, introduction.md, access.md, configuration.md, _index.md: reword generic 'TCP service' mentions to 'internal TCP service'. Docs-only and scoped to de-advertising (the API still accepts the type for now; removing it from the code is a separate decision). The homepage card is handled in deploys-app/website#22. hugo extended build clean; no remaining external-TCP references; no dangling #tcp-service anchor links. --- content/automation/deploy-from-github.md | 2 +- content/automation/github-action.md | 4 ++-- content/deployments/_index.md | 2 +- content/deployments/access.md | 2 +- content/deployments/configuration.md | 2 +- content/deployments/types.md | 20 +++++++------------- content/getting-started/concepts.md | 2 +- content/getting-started/introduction.md | 2 +- 8 files changed, 15 insertions(+), 21 deletions(-) diff --git a/content/automation/deploy-from-github.md b/content/automation/deploy-from-github.md index 8aba975..508174c 100644 --- a/content/automation/deploy-from-github.md +++ b/content/automation/deploy-from-github.md @@ -229,7 +229,7 @@ for the build inputs and examples. | `dockerfile` | no | Path to the Dockerfile | | `buildArgs` | no | Docker build args, one `KEY=VALUE` per line | | `port` | no | Port the container listens on (default `8080`) | -| `type` | no | [Deployment type](/deployments/types/) — `WebService` (default), `Worker`, `TCPService`, `InternalTCPService` | +| `type` | no | [Deployment type](/deployments/types/) — `WebService` (default), `Worker`, `InternalTCPService` | | `protocol` | no | WebService protocol — `http` (default), `https`, or `h2c` | | `env` | no | Environment variables, one `KEY=VALUE` per line | | `envGroups` | no | [Env groups](/deployments/environment-variables/) to attach, one per line or comma-separated | diff --git a/content/automation/github-action.md b/content/automation/github-action.md index e4efc0a..1ada8d0 100644 --- a/content/automation/github-action.md +++ b/content/automation/github-action.md @@ -81,7 +81,7 @@ deploy can pass just `image` and leave the rest as configured. | `location` | yes | Location ID (e.g. `gke.cluster-rcf2`) | | `name` | yes | Deployment name | | `image` | for containers | Container image with tag or digest | -| `type` | no | [Deployment type](/deployments/types/) — `WebService`, `Worker`, `CronJob`, `TCPService`, `InternalTCPService`, `Static` | +| `type` | no | [Deployment type](/deployments/types/) — `WebService`, `Worker`, `CronJob`, `InternalTCPService`, `Static` | | `site` | for `Static` | Static release reference (`site://…@`); leave `image` empty | | `siteManifestDigest` | no | Manifest digest for the static release | @@ -89,7 +89,7 @@ deploy can pass just `image` and leave the rest as configured. | Input | Description | |---|---| -| `port` | Port the container listens on (`WebService`/`TCPService`) | +| `port` | Port the container listens on (`WebService`/`InternalTCPService`) | | `protocol` | WebService protocol — `http`, `https`, or `h2c` | | `internal` | Run a WebService as internal-only (`true`/`false`) | | `minReplicas` / `maxReplicas` | Autoscale bounds (0–20) | diff --git a/content/deployments/_index.md b/content/deployments/_index.md index 093b913..c4e6549 100644 --- a/content/deployments/_index.md +++ b/content/deployments/_index.md @@ -4,5 +4,5 @@ linkTitle: 'Deployments' weight: 2 icon: 'box' description: 'Configure, ship, observe, and roll back the workloads that run your code.' -lead: 'A deployment is a workload you run — a web service, static site, worker, scheduled job, or TCP service. This section covers how to configure them, control who can reach them, watch them, and recover from bad releases.' +lead: 'A deployment is a workload you run — a web service, static site, worker, scheduled job, or internal TCP service. This section covers how to configure them, control who can reach them, watch them, and recover from bad releases.' --- diff --git a/content/deployments/access.md b/content/deployments/access.md index 80081a1..cd9a450 100644 --- a/content/deployments/access.md +++ b/content/deployments/access.md @@ -20,7 +20,7 @@ It applies to the web-facing types only: - **[Static site](/deployments/static-sites/)** — gates the site (with a [caching trade-off](#the-static-caching-trade-off)). -Workers, cron jobs, and TCP services have no public HTTP URL, so access control +Workers, cron jobs, and internal TCP services have no public HTTP URL, so access control doesn't apply to them. ## Who gets in diff --git a/content/deployments/configuration.md b/content/deployments/configuration.md index 7511b7e..142bf07 100644 --- a/content/deployments/configuration.md +++ b/content/deployments/configuration.md @@ -42,7 +42,7 @@ If the image is in a private third-party registry, attach a `type` decides what shape the deployment takes — see [Deployment types](/deployments/types/) for the full list of strings. The other -three only apply to web services and TCP services: +three only apply to web services and internal TCP services: - **`port`** — the container port your app listens on (e.g. `8080`). - **`protocol`** — for `WebService` only. One of `http`, `https`, or `h2c` diff --git a/content/deployments/types.md b/content/deployments/types.md index c0611a3..fb4c40e 100644 --- a/content/deployments/types.md +++ b/content/deployments/types.md @@ -2,8 +2,8 @@ title: 'Deployment types' linkTitle: 'Types' weight: 2 -description: 'Web services, static sites, workers, scheduled jobs, and TCP services — and when to use each.' -lead: 'Deploys.app runs six kinds of workloads. The type you pick decides whether the platform gives you a public URL, opens a TCP port, runs you on a cron schedule, serves prebuilt files from the edge, or just keeps you running quietly in the background.' +description: 'Web services, static sites, workers, scheduled jobs, and internal TCP services — and when to use each.' +lead: 'Deploys.app runs five kinds of workloads. The type you pick decides whether the platform gives you a public URL, opens an in-cluster TCP port, runs you on a cron schedule, serves prebuilt files from the edge, or just keeps you running quietly in the background.' --- ## At a glance @@ -14,7 +14,6 @@ lead: 'Deploys.app runs six kinds of workloads. The type you pick decides whethe | **Static site** | `Static` | HTTPS on a managed hostname | None — served from object storage | Prebuilt static sites (SPAs, docs, marketing) | | **Worker** | `Worker` | None | Autoscales between replica bounds | Background processors, queue consumers | | **Cron job** | `CronJob` | None | Cron schedule, exits when done | Periodic tasks (cleanup, sync, snapshot) | -| **TCP service** | `TCPService` | Raw TCP on an external port | Autoscales between replica bounds | Non-HTTP protocols you need exposed | | **Internal TCP service** | `InternalTCPService` | TCP inside the cluster only | Autoscales between replica bounds | Databases, caches, and other in-cluster traffic | ## Web service @@ -85,18 +84,13 @@ Need a job that runs once and exits — not on a schedule? Use a Worker with a auto-deletes it after the duration you set. {{< /callout >}} -## TCP service - -Use for protocols that aren't HTTP — game servers, custom binary protocols. -You pick the port; the platform exposes it on an external load balancer. -[Routes](/networking/routes/) don't apply (those are HTTP-only); clients -connect directly to the service's address. - ## Internal TCP service -Same as TCP service, but reachable only from inside your project's cluster -(other deployments in the same location). Useful for self-hosting datastores -that should never be exposed publicly. +Raw TCP for protocols that aren't HTTP, reachable only from inside your project's +cluster (other deployments in the same location). You pick the port; clients +connect directly to the service's in-cluster address. [Routes](/networking/routes/) +don't apply (those are HTTP-only). Useful for self-hosting datastores that should +never be exposed publicly. ```bash deploys deployment deploy \ diff --git a/content/getting-started/concepts.md b/content/getting-started/concepts.md index 359ed53..d92a9de 100644 --- a/content/getting-started/concepts.md +++ b/content/getting-started/concepts.md @@ -23,7 +23,7 @@ which can span multiple projects. |---|---|---| | **Project** | A workspace that owns all your resources | — | | **Location** | A managed cluster you can deploy to (e.g. `gke.cluster-rcf2`) | — | -| **Deployment** | A running workload — web service, worker, cron job, or TCP service | Project + Location | +| **Deployment** | A running workload — web service, worker, cron job, or internal TCP service | Project + Location | | **Revision** | A historical snapshot of a deployment, kept for rollbacks | Deployment | | **Domain** | A custom hostname attached to your project | Project + Location | | **Route** | A `(domain, path)` → deployment mapping | Project + Location | diff --git a/content/getting-started/introduction.md b/content/getting-started/introduction.md index a6127a5..e020ac1 100644 --- a/content/getting-started/introduction.md +++ b/content/getting-started/introduction.md @@ -55,7 +55,7 @@ inherits that location's domain suffix. | **Web service** | Internet-facing HTTP apps and APIs, with autoscaling and a managed hostname. | | **Worker** | Long-running background processes with no inbound traffic. | | **Scheduled job** | Cron-style tasks that run on a schedule and exit. | -| **TCP service** | Non-HTTP protocols, exposed internally or externally. | +| **Internal TCP service** | Non-HTTP protocols, reachable from inside your cluster. | See [Deployment types](/deployments/types/) for the full breakdown.