cozystack/packages/apps
Andrei Kvapil 02064888a4
feat(platform): make cluster issuer name and ACME solver configurable (#2077)
<!-- Thank you for making a contribution! Here are some tips for you:
- Start the PR title with the [label] of Cozystack component:
- For system components: [platform], [system], [linstor], [cilium],
[kube-ovn], [dashboard], [cluster-api], etc.
- For managed apps: [apps], [tenant], [kubernetes], [postgres],
[virtual-machine] etc.
- For development and maintenance: [tests], [ci], [docs], [maintenance].
- If it's a work in progress, consider creating this PR as a draft.
- Don't hesistate to ask for opinion and review in the community chats,
even if it's still a draft.
- Add the label `backport` if it's a bugfix that needs to be backported
to a previous version.
-->

## What this PR does

Previously `_cluster.clusterissuer` controlled the ACME solver type
using
  values `http01` / `cloudflare`, and every ingress template hardcoded 
`cert-manager.io/cluster-issuer: letsencrypt-prod` with no way to
override it.

  This PR adds new parameters in platform chart:
  - `publishing.certificates.solver` (default `http01`)
  - `publishing.certificates.issuerName` (default: `letsencrypt-prod`)
  instead of single parameter before
  - `publishing.certificates.issuerType`
  
Previous `certificates.issuerType` was renamed to `certificates.solver`;
Also its possible value
`cloudflare` was renamed to `dns01` to use standard ACME terminology.

New `certificates.issuerName` (default: `letsencrypt-prod`) — propagated
as
`_cluster.issuer-name` to all packages via `cozystack-values` then its
value appears in
`cert-manager.io/cluster-issuer` annotation across 8 templates of
ingresses in system applications.

`publishing.certificates.solver` can be set empty to clearly support
`selfsigned-cluster-issuer`,
   or have any value, but it can be a bit confusing.

  Operators can now point ingresses at any ClusterIssuer (custom ACME,
  self-signed, internal CA) by setting `certificates.issuerName` without
  touching individual package templates.

  ## Breaking changes

  | What changed | Before | After |
  |---|---|---|
  | Solver key | `certificates.issuerType` | `certificates.solver` |
| Cloudflare solver value | `issuerType: cloudflare` | `solver: dns01` |

  This changes handled by migration when upgrading cozystack from v1 
  or by `migration-to-v1.0.sh` script (also checked by migration later)
  No actions from user needed.

### Release note

<!--  Write a release note:
- Explain what has changed internally and for users.
- Start with the same [label] as in the PR title
- Follow the guidelines at
https://github.com/kubernetes/community/blob/master/contributors/guide/release-notes.md.
-->

```release-note
[platform] Added publishing.certificates.solver (http01/dns01) and 
  publishing.certificates.issuerName fields to allow configuring ACME challenge 
  type and ClusterIssuer per installation, replacing the old implicit issuerType field
[platform] Migration script and upgrade hook (migration 32) convert old
  clusterissuer/issuerType fields to the new solver/issuerName fields
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Migrated certificate issuer configuration from legacy `issuerType`
field to new `solver` and `issuerName` fields system-wide.
* Automated migration script converts existing configurations, mapping
legacy values (cloudflare, http01) to new format.
* Updated all certificate-related templates to use new configurable
solver and issuer settings with sensible defaults.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-20 23:09:12 +01:00
..
bucket refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
clickhouse refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
foundationdb refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
harbor feat(platform): Changed ingress annotation rendering for http01 solver 2026-02-20 11:45:04 +05:00
http-cache Prepare release v1.0.0-beta.6 2026-02-17 22:36:40 +00:00
kafka refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
kubernetes fix(kubernetes): pin konnectivity version for K8s v1.35 2026-02-19 23:46:50 +03:00
mariadb feat(platform): add migration 27 to rename mysql resources to mariadb 2026-02-12 15:16:29 +01:00
mongodb fix(mongodb): update MongoDB logo 2026-02-10 21:17:50 +01:00
nats Add monitoring for NATs 2026-02-17 22:54:12 +01:00
postgres refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
qdrant [qdrant] Add Qdrant vector database application 2026-02-06 13:30:58 +03:00
rabbitmq refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
redis refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
tcp-balancer refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
tenant [platform] Add DNS-1035 validation for Application names (#1771) 2026-02-17 14:33:02 +03:00
vm-disk refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
vm-instance feat(vm-instance): port cpuModel, instancetype switching, and runStrategy changes 2026-02-14 03:02:41 +01:00
vpc feat(vpc): migrate subnets definition from map to array format 2026-02-15 21:34:19 +01:00
vpn refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
Makefile refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
README.md [clickhouse] add clickhouse keeper 2025-08-07 14:07:05 +03:00

How to test packages local

cd packages/core/installer
make image-cozystack REGISTRY=YOUR_CUSTOM_REGISTRY
make apply
kubectl delete po -l app=source-controller -n cozy-fluxcd