mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-05 19:47:37 +09:00
Rewrite resourcesPreset values in every apps/* and extras/* chart from the legacy flat names to the new instance-type form, using the 1:1 mapping: nano -> t1.nano micro -> t1.micro small -> t1.small medium -> c1.small large -> c1.medium xlarge -> c1.large 2xlarge -> c1.xlarge Each affected values.yaml carries the canonical 47-value enum (40 instance-type names plus 7 legacy aliases) so the schema accepts both forms during the deprecation window. cozyvalues-gen regenerates the matching api/apps/v1alpha1/*/types.go kubebuilder enum and defaults, the chart values.schema.json, the README parameter table, and the ApplicationDefinition openAPISchema in packages/system/*-rd/cozyrds. Three hardcoded legacy literals in chart templates migrated: - packages/apps/harbor/templates/harbor.yaml:121 (portal) - packages/apps/opensearch/templates/opensearch.yaml:43 (dashboards) - packages/system/keycloak/templates/sts.yaml:115 (heap fallback) packages/apps/foundationdb/Makefile gains the missing hack/update-crd.sh call. Without it, every regen left foundationdb-rd cozyrds stale and new FoundationDB app CRs through cozystack-api were rejected at validation for any non-legacy resourcesPreset value. Every default-rendered chart produces identical CPU and memory to the value applied before the rename, courtesy of the legacy alias table in cozy-lib and the 1:1 default mapping. Co-authored-by: Matthieu ROBIN <matthieu@hidora.com> Signed-off-by: Aleksei Sviridkin <f@lex.la>
Ingress-NGINX Controller
Parameters
Common parameters
| Name | Description | Type | Value |
|---|---|---|---|
replicas |
Number of ingress-nginx replicas. | int |
2 |
whitelist |
List of client networks. | []string |
[] |
cloudflareProxy |
Restoring original visitor IPs when Cloudflare proxied is enabled. | bool |
false |
resources |
Explicit CPU and memory configuration for each ingress-nginx replica. When omitted, the preset defined in resourcesPreset is applied. |
object |
{} |
resources.cpu |
CPU available to each replica. | quantity |
"" |
resources.memory |
Memory (RAM) available to each replica. | quantity |
"" |
resourcesPreset |
Default sizing preset used when resources is omitted. |
string |
t1.micro |
Exposure mode
The ingress Service type is driven by the cluster-wide publishing.exposure value in the platform chart, not by any key in this package. Two modes exist:
externalIPs(default) has three rendered shapes:- Release namespace matches
publishing.ingressNameANDpublishing.externalIPsis non-empty → Service isClusterIPwithService.spec.externalIPsset from that list andexternalTrafficPolicy: Cluster. - Release namespace matches
publishing.ingressNamebutpublishing.externalIPsis empty → Service falls back totype: LoadBalancerwithexternalTrafficPolicy: Local. - Release namespace does not match
publishing.ingressName(non-root tenants) → Service istype: LoadBalancerwithexternalTrafficPolicy: Local.Service.spec.externalIPsis deprecated upstream in Kubernetes v1.36 (KEP-5707); plan migration before v1.40.
- Release namespace matches
loadBalancer— Service istype: LoadBalancerwithexternalTrafficPolicy: Local, and aCiliumLoadBalancerIPPoolmakes the addresses inpublishing.externalIPsallocatable via Cilium LB IPAM. Requirespublishing.externalIPsto contain at least one non-empty address (render fails otherwise) and assumes the addresses are already routed to a cluster node (floating IP / upstream router). See the inline comment onpublishing.exposurein the platform chart for full caveats, including the note that switching the value on a running cluster causes the ingress Service to be recreated.
This setting only migrates ingress-nginx away from Service.spec.externalIPs. Other cozystack components that use the same deprecated field (e.g. the vpn app) must be migrated separately before Kubernetes v1.40 flips the AllowServiceExternalIPs feature gate off.