Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ APPS ?= tenant clickhouse foundationdb harbor redis mongodb openbao rabbit
K8S ?= kubernetes
K8S_NODES ?= kubernetes-nodes
VMS ?= vm-disk vm-instance
NETWORKING ?= vpc vpn http-cache tcp-balancer
NETWORKING ?= vpc vpn tcp-balancer
SERVICES ?= bootbox etcd ingress monitoring seaweedfs
SERVICES += computeplane gateway
APPS_DEST_DIR ?= content/en/docs/$(DOC_VERSION)/applications
Expand Down
2 changes: 1 addition & 1 deletion content/en/docs/next/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ weight: 5
{{% /warning %}}
Cozystack is a free PaaS platform and framework for building clouds

With Cozystack, you can transform your bunch of servers into an intelligent system with a simple REST API for spawning Kubernetes clusters, Database-as-a-Service, virtual machines, load balancers, HTTP caching services, and other services with ease.
With Cozystack, you can transform your bunch of servers into an intelligent system with a simple REST API for spawning Kubernetes clusters, Database-as-a-Service, virtual machines, load balancers, and other services with ease.

You can use Cozystack to build your own cloud or to provide a cost-effective development environments.
1 change: 0 additions & 1 deletion content/en/docs/next/cozystack-api/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ clickhouses apps.cozystack.io/v1alpha1 true ClickHouse
etcds apps.cozystack.io/v1alpha1 true Etcd
foundationdbs apps.cozystack.io/v1alpha1 true FoundationDB
harbors apps.cozystack.io/v1alpha1 true Harbor
httpcaches apps.cozystack.io/v1alpha1 true HTTPCache
infos apps.cozystack.io/v1alpha1 true Info
ingresses apps.cozystack.io/v1alpha1 true Ingress
kafkas apps.cozystack.io/v1alpha1 true Kafka
Expand Down
38 changes: 19 additions & 19 deletions content/en/docs/next/cozystack-api/application-definitions.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,45 +40,45 @@ the chart referenced by the definition.
sets them explicitly, and the relationship between them is **not derivable
by any string transform**:

| Field | Style | Example (HTTP cache) | Example (VM disk) | Example (TCP balancer) |
| Field | Style | Example (VM instance) | Example (VM disk) | Example (TCP balancer) |
| --- | --- | --- | --- | --- |
| `metadata.name` | lowercase-with-hyphens | `http-cache` | `vm-disk` | `tcp-balancer` |
| `spec.application.kind` | CamelCase, preserves acronyms | `HTTPCache` | `VMDisk` | `TCPBalancer` |
| `spec.application.singular` | lowercase, no hyphens | `httpcache` | `vmdisk` | `tcpbalancer` |
| `spec.application.plural` | lowercase, no hyphens | `httpcaches` | `vmdisks` | `tcpbalancers` |
| `metadata.name` | lowercase-with-hyphens | `vm-instance` | `vm-disk` | `tcp-balancer` |
| `spec.application.kind` | CamelCase, preserves acronyms | `VMInstance` | `VMDisk` | `TCPBalancer` |
| `spec.application.singular` | lowercase, no hyphens | `vminstance` | `vmdisk` | `tcpbalancer` |
| `spec.application.plural` | lowercase, no hyphens | `vminstances` | `vmdisks` | `tcpbalancers` |

Note that `metadata.name` is not a function of `spec.application.kind`. The
hyphen positions (`tcp-balancer`, `vm-disk`, `http-cache`) and the absence of
hyphens in `singular`/`plural` (`tcpbalancer`, `vmdisk`, `httpcache`) are
hyphen positions (`tcp-balancer`, `vm-disk`, `vm-instance`) and the absence of
hyphens in `singular`/`plural` (`tcpbalancer`, `vmdisk`, `vminstance`) are
conventions chosen per application, not outputs of a shared algorithm.
`strings.ToLower(kind)` yields `httpcache`, which matches
`strings.ToLower(kind)` yields `vminstance`, which matches
`spec.application.singular` but **not** `metadata.name`. A direct lookup by
the lowercased kind therefore fails:

```bash
# The aggregated API resource uses the lowercased plural:
$ kubectl get httpcaches --namespace tenant-demo
$ kubectl get vminstances --namespace tenant-demo
NAME READY AGE VERSION
frontend True 2m 1.2.0

# But the ApplicationDefinition that backs it is stored under a different name:
$ kubectl get applicationdefinition httpcache
Error from server (NotFound): applicationdefinitions.cozystack.io "httpcache" not found
$ kubectl get applicationdefinition vminstance
Error from server (NotFound): applicationdefinitions.cozystack.io "vminstance" not found

$ kubectl get applicationdefinition http-cache
NAME AGE
http-cache 14d
$ kubectl get applicationdefinition vm-instance
NAME AGE
vm-instance 14d
```

Acronyms make this more visible: `TCPBalancer`, `HTTPCache`, and `VMDisk` all
Acronyms make this more visible: `TCPBalancer`, `VMInstance`, and `VMDisk` all
lose their capitalisation in the aggregated resource name (`tcpbalancers`,
`httpcaches`, `vmdisks`) but keep hyphens in the CRD name (`tcp-balancer`,
`http-cache`, `vm-disk`).
`vminstances`, `vmdisks`) but keep hyphens in the CRD name (`tcp-balancer`,
`vm-instance`, `vm-disk`).

## Recommended lookup pattern

Client code that needs to resolve a Cozystack kind — for example a dashboard
that receives `HTTPCache` from a HelmRelease label and wants to render the
that receives `VMInstance` from a HelmRelease label and wants to render the
matching form — should **list all `ApplicationDefinition`s and filter by
`spec.application.kind`** instead of attempting a direct `Get` by the lowercased
kind. The set of definitions is small (tens of items) and changes rarely, so
Expand Down Expand Up @@ -175,7 +175,7 @@ aggressively a client should cache therefore depends on its own lifetime:
driven rolling restart of `cozystack-api` completes.

{{% alert color="info" %}}
The lowercased plural (`httpcaches`, `vmdisks`) **is** the correct name for
The lowercased plural (`vminstances`, `vmdisks`) **is** the correct name for
tenant-facing resources under `apps.cozystack.io/v1alpha1`. It is only the
`applicationdefinitions.cozystack.io` CRD that uses the hyphenated form.
{{% /alert %}}
Expand Down
2 changes: 1 addition & 1 deletion content/en/docs/next/guides/concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Read more: [tenant Kubernetes clusters]({{% ref "/docs/next/kubernetes" %}}).
## Managed Applications

Cozystack comes with a catalog of **managed applications** (services) that can be deployed on the platform with minimal effort.
These include relational databases (PostgreSQL, MySQL/MariaDB), NoSQL/queues (Redis, NATS, Kafka, RabbitMQ), HTTP cache, load balancer, and others.
These include relational databases (PostgreSQL, MySQL/MariaDB), NoSQL/queues (Redis, NATS, Kafka, RabbitMQ), load balancer, and others.

Tenants, tenant Kubernetes clusters, and VMs are also managed applications in terms of Cozystack.
They are created with the same user workflow and are managed with Helm and Flux, just as other applications.
Expand Down
4 changes: 1 addition & 3 deletions content/en/docs/next/guides/platform-stack/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,6 @@ Cozystack-maintained charts, CRDs, controllers, and application APIs are license
## Managed networking services

{{< oss-cards >}}
{{< oss-card name="NGINX" logo="nginx" license="BSD-2-Clause" source="https://github.com/nginx/nginx/blob/master/LICENSE" description="Powers the managed HTTP Cache service with reverse-proxy caching and GeoIP filtering. Scales horizontally without a shared filesystem." >}}
{{< oss-card name="HAProxy" logo="haproxy" license="GPL-2.0 with exceptions" source="https://github.com/haproxy/haproxy/blob/master/LICENSE" description="Enterprise TCP/HTTP load balancer powering the managed TCP Balancer and HTTP Cache. Provides active health checks and high-throughput connection handling." >}}
{{< oss-card name="IP2Location modules" license="MIT" source="https://github.com/ip2location/ip2location-nginx/blob/master/LICENSE" description="GeoIP modules (IP2Location and IP2Proxy) bundled into the HTTP Cache. Enables country-based traffic filtering and proxy/VPN detection." >}}
{{< oss-card name="HAProxy" logo="haproxy" license="GPL-2.0 with exceptions" source="https://github.com/haproxy/haproxy/blob/master/LICENSE" description="Enterprise TCP/HTTP load balancer powering the managed TCP Balancer. Provides active health checks and high-throughput connection handling." >}}
{{< oss-card name="Outline Server (Shadowsocks)" logo="outline" license="Apache-2.0" source="https://github.com/OutlineFoundation/outline-server/blob/master/LICENSE" description="Shadowsocks-based VPN backend developed by Google's Jigsaw team. Manages Shadowsocks instances with symmetric encryption to resist DPI traffic analysis." >}}
{{< /oss-cards >}}
10 changes: 0 additions & 10 deletions content/en/docs/next/networking/_include/http-cache.md

This file was deleted.

Loading
Loading