Commit Graph
756 Commits
Author SHA1 Message Date
Andrei Kvapil 4f0e042eac Merge remote-tracking branch 'upstream/main' into refactor-engine 2025-12-01 22:38:51 +01:00
cozystack-bot d53506ae2a Prepare release v0.38.2
Signed-off-by: cozystack-bot <217169706+cozystack-bot@users.noreply.github.com>
2025-12-01 19:14:15 +00:00
Andrei Kvapil 66ab048612 fix ci pipeline
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-27 19:34:48 +01:00
Andrei Kvapil 27efd3ad5e Release v0.38.1 (#1668)
This PR prepares the release `v0.38.1`.
2025-11-27 15:53:53 +01:00
Andrei Kvapil 7b20e3f4cc [seaweedfs] Extended CA certificate duration to reduce disruptive CA rotations. (#1657)
**Chores**
* Updated SeaweedFS Helm chart templates with configurable certificate
duration and renewal settings.

<!-- 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


### 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
 - Extended CA certificate duration to reduce disruptive CA rotations.
 - Added mechanism to sync SeaweedFS client certificates across clusters.
 - Enhanced certificate management to ensure Hikube provisioner always receives up-to-date client certificates.
```

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

* **Chores**
* Enhanced CA certificate configuration for SeaweedFS by extending the
validity duration and adjusting the renewal window to improve long-term
certificate management and system stability.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-27 14:34:31 +01:00
IvanHunters 5d354a07d6 add patch for long term ca
Signed-off-by: IvanHunters <xorokhotnikov@gmail.com>
2025-11-27 14:34:14 +01:00
Andrei Kvapil aa8062c41c [tenant][kubernetes] Introduce better cleanup logic (#1661)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>

<!-- 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


### 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
[tenant][kubernetes] Introduce better cleanup logic
```

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

* **New Features**
* Added an automated pre-delete cleanup job for tenant namespaces to
remove tenant-related releases during uninstall.

* **Improvements**
* Cleanup now runs early in the uninstall sequence with a clearer,
stepwise orchestration for resource removal.
* Expanded permissions and execution allowances to enable the cleanup
workflow.
* Deployment annotations now use a content checksum to better detect
config changes.

* **Removals**
* Previous teardown sequence for certain release types was removed and
replaced by the new workflow.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-27 14:32:54 +01:00
Andrei Kvapil 9ceb59e74c [dashboard] Fix loading arrays in forms when editing existing objects
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-27 14:31:05 +01:00
Andrei Kvapil c72a9333e9 [dashboard] Add config hash annotations to restart pods on config changes
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-26 19:22:01 +01:00
IvanHunters 8283714930 * **Improvements**
* Extended CA certificate duration to reduce disruptive CA rotations.
  * Added mechanism to sync SeaweedFS client certificates across clusters.
  * Enhanced certificate management to ensure Hikube provisioner always receives up-to-date client certificates.

* **Chores**
  * Updated SeaweedFS Helm chart templates with configurable certificate duration and renewal settings.

Signed-off-by: IvanHunters <xorokhotnikov@gmail.com>
2025-11-26 15:34:49 +03:00
Andrei Kvapil cc52c69922 rebuild images
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-25 18:43:45 +01:00
Andrei Kvapil 4270d66376 Merge remote-tracking branch 'upstream/main' into refactor-engine 2025-11-25 18:35:43 +01:00
Andrei Kvapil 51d0001589 move Makefiles to hack
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-25 18:23:30 +01:00
Andrei Kvapil e0ec967120 Rename resources
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-25 17:43:33 +01:00
cozystack-bot 975011e04e Prepare release v0.38.0
Signed-off-by: cozystack-bot <217169706+cozystack-bot@users.noreply.github.com>
2025-11-25 15:59:42 +00:00
Andrei Kvapil e046206d2b refactor a bit
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-25 16:24:08 +01:00
Andrei Kvapil 451ef73172 refactor escaping
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-25 15:01:06 +01:00
Andrei Kvapil 9cc348733f [ci,dx] Bump MariaDB operator version (#1646)
Update MariaDB operator to a new version.

```release-note
[ci,dx] Update MariaDB operator version
```

<!-- 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


### 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
[]
```

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

* **New Features**
* Support for external MariaDB instances and physical backups management
  * Validation webhook added for physical backups
  * New config option to specify MariaDB image registry/name

* **Updates**
  * MariaDB operator bumped to 25.10.2
  * Default MariaDB version updated from 11.4 to 11.8
* Expanded Kubernetes permissions for endpoint slices and volume
snapshots
  * Pod metadata label added to MariaDB pods

* **Documentation**
  * Updated docs links and version badges in charts README

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-25 14:46:50 +01:00
Nikita 00e0f45de3 Increase strimzi memory limit (#1651)
## What this PR does
Increase strimzi memory limit

### Release note
```release-note
Increased strimzi memory limit
```
2025-11-25 16:46:07 +03:00
Andrei Kvapil 4ff60e4539 [linstor] Update Piraeus Operator to v2.10.1 to enable RWX support (#1650)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>

<!-- 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

This PR updates Piraeus Operator to enable RWX support released in
https://github.com/piraeusdatastore/piraeus-operator/releases/tag/v2.10.0

### 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
[linstor] Update Piraeus Operator to v2.10.1 to enable RWX support
```

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

## Summary by CodeRabbit

* **New Features**
* Added NFS server component and affinity controller support for
enhanced storage configuration
* Expanded kubectl output with additional status columns for improved
cluster visibility
* Added support for pod labels, annotations, and security context
customization

* **Chores**
  * Updated Helm chart to version 2.10.1
* Updated multiple component versions including CSI provisioner,
snapshotter, DRBD reactor, and other dependencies

* **Documentation**
* Updated README to reference external Helm-based deployment guidelines

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-25 14:44:39 +01:00
Andrei Kvapil aaf2d1326a Move telemetry from cozystack-controller to cozystack-operator
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-25 02:17:05 +01:00
Andrei Kvapil ea1d0363d1 [platform] Get rid of lookups for apps
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-25 01:15:08 +01:00
Andrei Kvapil 45bd323c6e [platform] Get rid of lookups
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-24 20:09:03 +01:00
nbykov0 73bf0e5f7e Increase strimzi memory limit
Signed-off-by: nbykov0 <166552198+nbykov0@users.noreply.github.com>
2025-11-24 19:57:57 +03:00
Andrei Kvapil 12db4fc520 [linstor] Update Piraeus Operator to v2.10.1 to enable RWX support
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-24 10:51:21 +01:00
Andrei Kvapil 5883fbf7ea [cozystack-controller] Add reconciliation for CozystackResourceDefinitions
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-24 10:24:01 +01:00
Andrei Kvapil 167e85004c rename packages
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-23 00:37:27 +01:00
Andrei Kvapil 982727ac91 refactor and install flux-aio
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-22 01:35:59 +01:00
IvanHunters 7d2250be4d [ci,dx] Bump MariaDB operator version
Update MariaDB operator to a new version.

```release-note
[ci,dx] Update MariaDB operator version
```

Signed-off-by: IvanHunters <xorokhotnikov@gmail.com>
2025-11-21 14:50:25 +03:00
Andrei Kvapil 923dbd209d Fix artifact sources processing
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-20 23:39:16 +01:00
Andrei Kvapil 8a0935fb37 Design CozystackBundle API
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-20 02:22:45 +01:00
Andrei Kvapil 5dc9f590cf WIP WIP WIP WIP WIP WIP WIP WIP WIP
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-19 20:38:21 +01:00
Andrei Kvapil ea9d44b4af Refactor bundles (WIP)
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-19 15:49:29 +01:00
Andrei Kvapil 7c2bec197b [flux] disable network policies
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-19 15:48:58 +01:00
Andrei Kvapil 4b1525a5f8 Cleanup
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-19 15:32:40 +01:00
Andrei Kvapil 2113d17a54 fix dependencies
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-19 15:22:51 +01:00
Andrei Kvapil 4f97aef04c Update apps to use ExternalArtifacts
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-19 14:31:54 +01:00
Andrei Kvapil 4b5d777b81 [fluxcd] fix advertisning url for source-watcher
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-19 09:47:27 +01:00
Andrei Kvapil 75197c6d25 Update apps to use ExternalArtifacts
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-19 00:41:09 +01:00
Andrei Kvapil 222b582b68 Introduce cozystack-operator
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-18 23:14:36 +01:00
Andrei Kvapil 2a87c83043 Update Fluxcd 2.7.x, enable source-watcher
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-18 19:56:27 +01:00
Andrei Kvapil e5b65e8e77 Remove cozystack-assets-server and move grafana-dashboards into separate pod
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2025-11-18 18:13:52 +01:00
cozystack-bot 3d4ad39bce Prepare release v0.38.0-alpha.2
Signed-off-by: cozystack-bot <217169706+cozystack-bot@users.noreply.github.com>
2025-11-18 07:46:42 +00:00
Timofei Larkin aba4d2c977 Merge branch 'main' into vnc
Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
2025-11-18 11:39:34 +04:00
cozystack-bot 972548cab4 Prepare release v0.38.0-alpha.1
Signed-off-by: cozystack-bot <217169706+cozystack-bot@users.noreply.github.com>
2025-11-14 08:45:28 +00:00
Timofei Larkin 9c040cd42f [api] Fix representation of dynamic list kinds (#1630)
## What this PR does

This patch fixes an issue with the Cozystack API server that causes it
to respond with the first registered dynamic list kind when listing
dynamic resources. E.g., when running `k get postgreses`, the raw JSON
response from the cozystack API would be

```json
{
  "apiVersion":"apps.cozystack.io/v1alpha1",
  "kind":"BootBoxList",
  "items": [
    {
      "apiVersion":"apps.cozystack.io/v1alpha1",
      "kind":"Postgres",
      ...
    },
    ...
  ],
  ...
}
```

The root cause is the way the `Typer` interface is implemented for the
`runtime.Scheme` where the dynamic types are registered. Since the base
type for all dynamic types is a `&cozyv1alpha1.Application{}`, all types
are registered under the same key and the `Typer` defaults to the first
`GroupVersionKind` that was registered. Only when a correctly formed
`&unstructured.Unstructured{}` is returned by the API, is this resolving
logic circumvented and the `GroupVersionKind` is instead inferred from
the fields of the returned object. Even an `UnstructuredList` is not
acceptable as a return type, instead the `items` key should be directly
set on the underlying `map[string]interface{}`.

This patch implements the changes detailed above. Additionally, the
following features, fixes, and improvements are added:

* Makefile targets to build and run the Cozystack API locally, against a
Kubernetes server in the environment's KUBECONFIG. Debugging with Delve
is also supported.
* CI tests are added to verify the new changes.
* A bug in the registration of the corev1alpha1 types is fixed.
* Updated the `ConvertToTable` function to properly handle list kinds
which might be of the `&unstructured.Unstructured{}` concrete type (not
an `UnstructuredList`).
* The scheme used by the API server's Client and WatchClient is
separated from the scheme used to serve dynamic types.
* The client config for reading the runtime configuration now uses the
controller-runtime, which handles flags and environment variables
properly, unlike `clientcmd`.

### Release note

```release-note
[api] Fix incorrect list kind for list requests to the Cozystack API for
dynamic resources. Add Makefile targets for local testing. Minor schema
building improvements.
```

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

* **Tests**
* Added an end-to-end test validating Kubernetes API kinds for tenants
and ingresses.

* **Chores**
* Improved local development: ignore local API server config, added
run/debug targets with local TLS tooling, and added an OpenSSL config
for CSR generation.

* **Refactor**
* Internal API server and registry storage reworked; may affect
integrations expecting concrete resource types.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 19:52:50 +04:00
Timofei Larkin 5414d37376 [api] Fix representation of dynamic list kinds
## What this PR does

This patch fixes an issue with the Cozystack API server that causes it
to respond with the first registered dynamic list kind when listing
dynamic resources. E.g., when running `k get postgreses`, the raw JSON
response from the cozystack API would be

```json
{
  "apiVersion":"apps.cozystack.io/v1alpha1",
  "kind":"BootBoxList",
  "items": [
    {
      "apiVersion":"apps.cozystack.io/v1alpha1",
      "kind":"Postgres",
      ...
    },
    ...
  ],
  ...
}
```

The root cause is the way the `Typer` interface is implemented for the
`runtime.Scheme` where the dynamic types are registered. Since the base
type for all dynamic types is a `&cozyv1alpha1.Application{}`, all types
are registered under the same key and the `Typer` defaults to the first
`GroupVersionKind` that was registered. Only when a correctly formed
`&unstructured.Unstructured{}` is returned by the API, is this resolving
logic circumvented and the `GroupVersionKind` is instead inferred from
the fields of the returned object. Even an `UnstructuredList` is not
acceptable as a return type, instead the `items` key should be directly
set on the underlying `map[string]interface{}`.

This patch implements the changes detailed above. Additionally, the
following features, fixes, and improvements are added:

* Makefile targets to build and run the Cozystack API locally, against a
  Kubernetes server in the environment's KUBECONFIG. Debugging with
  Delve is also supported.
* CI tests are added to verify the new changes.
* A bug in the registration of the corev1alpha1 types is fixed.
* Updated the `ConvertToTable` function to properly handle list kinds
  which might be of the `&unstructured.Unstructured{}` concrete type
  (not an `UnstructuredList`).
* The scheme used by the API server's Client and WatchClient is
  separated from the scheme used to serve dynamic types.
* The client config for reading the runtime configuration now uses the
  controller-runtime, which handles flags and environment variables
  properly, unlike `clientcmd`.

### Release note

```release-note
[api] Fix incorrect list kind for list requests to the Cozystack API for
dynamic resources. Add Makefile targets for local testing. Minor schema
building improvements.
```

Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
2025-11-13 18:04:33 +03:00
Nikita 2b4afde373 [system] multus: update to the latest version (#1628)
## What this PR does
Fixes #1623 

### Release note
```release-note
Multus updated to the latest version to address race condition during startup.
```

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

## Summary by CodeRabbit

* **Chores**
  * Updated kube-multus container to version v4.2.3-thick.
* Increased memory resource allocation from 100Mi to 300Mi for improved
stability and performance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 16:13:55 +03:00
nbykov0 143832c0b4 [system] kubeovn: increase limits
Signed-off-by: nbykov0 <166552198+nbykov0@users.noreply.github.com>
2025-11-13 14:50:11 +03:00
nbykov0 298206efc7 [system] multus: update to the latest version
Signed-off-by: nbykov0 <166552198+nbykov0@users.noreply.github.com>
2025-11-13 14:24:52 +03:00