Skip to content

Releases: berops/claudie

v0.15.0

Choose a tag to compare

@Despire Despire released this 29 Jun 12:40
300eb16

Claudie v0.15.0

Readme Before Deploying

Autoscaler changes

The autoscaler will no longer be deployed by Claudie. From now it becomes an opt-in paid feature.

Make sure no tasks are scheduled

Before deploying this Claudie release, make sure no tasks are actively being worked on. You can verify this via

kubectl get inputmanifests

All of the input manifests should be in state WATCHING_FOR_CHANGES.

You can also scale down the number of replicas for the manager service to 0 to be sure no tasks are scheduled.

kubectl scale deploy/manager -n claudie --replicas=0

MongoDB

This version of Claudie updates MongoDB.

It is required that before deploying this new version that the number of
replicas of the current deployment for MongoDB is scaled down to 0.

kubectl scale deploy/mongodb -n claudie --replicas=0

After deploying:

  • Check if the version running in the primary replica is 8.3 via
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand({ buildInfo: 1 }).version"
  • Set the feature set to version 8.3
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand( { setFeatureCompatibilityVersion: '8.3', confirm: true } )"

This command must perform writes to an internal system collection. If for any reason the command does not complete successfully, you can safely retry the command as the operation is idempotent.

  • Verify the command successfully updated the feature set.
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })"

What's Changed

  • Updated mongo to version 8.3 #2141

  • Cluster-autoscaler has been removed. From now it becomes an opt-in paid feature. #2146

  • Added support spot instances on AWS, Azure, OCI, Verda, GCP #2151, #2149, #2145

  • Faster handling of nodes with unknown status #2150

  • Fixed nil panic on DNS creation failure #2152

  • Updated template parsing for alternative names #2153

v0.14.1

Choose a tag to compare

@Despire Despire released this 12 Jun 09:38
5b679bf

v0.14.1

What's Changed

  • Fixed a bug that would result in an endless reconciliation of the same task #2142

v0.14.0

Choose a tag to compare

@Despire Despire released this 11 Jun 10:08
ed8fd69

Claudie v0.14

Readme Before Deploying

Make sure no tasks are scheduled

Before deploying this Claudie release, make sure no tasks are actively being worked on. You can verify this via

kubectl get inputmanifests

All of the input manifests should be in state WATCHING_FOR_CHANGES.

You can also scale down the number of replicas for the manager service to 0 to be sure no tasks are scheduled during the update.

kubectl scale deploy/manager -n claudie --replicas=0

MongoDB

This version of Claudie updates MongoDB.

It is required that before deploying this new version that the number of
replicas of the current deployment for MongoDB is scaled down to 0.

kubectl scale deploy/mongodb -n claudie --replicas=0

After deploying:

  • Check if the version running in the primary replica is 8.0 via
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand({ buildInfo: 1 }).version"
  • Set the feature set to version 8.0
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand( { setFeatureCompatibilityVersion: '8.0', confirm: true } )"

This command must perform writes to an internal system collection. If for any reason the command does not complete successfully, you can safely retry the command as the operation is idempotent.

  • Verify the command successfully updated the feature set.
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })"

What's Changed

  • Updated MongoDB to version 8 #2125

  • General dependencies maintenance #2126, #2132, #2136

  • Adjusted Claudie internal retries for autoscaled nodepools to fail faster #2129

  • Support for shared public IP nodes has been added #2130

v0.13.0

Choose a tag to compare

@Despire Despire released this 02 Jun 08:11
fcfe032

Readme Before Deploying

Make sure no tasks are scheduled

Before deploying this Claudie release, make sure no tasks are actively being worked on. You can verify this via

kubectl get inputmanifests

All of the input manifests should be in state WATCHING_FOR_CHANGES.

You can also scale down the numbe of replicas for the manager service to 0 to be sure no tasks are scheduled.

kubectl scale deploy/manager -n claudie --replicas=0

Kubernetes version changes

The support for kubernetes v1.32.x has been dropped. The currently supported versions are v1.33,v1.34,v1.35.
Make sure to update your kubernetes version to at least v1.33, before updating to this new release.

MongoDB

This version of Claudie updates MongoDB.

It is required that before deploying this new version that the number of
replicas of the current deployment for MongoDB is scaled down to 0.

kubectl scale deploy/mongodb -n claudie --replicas=0

After deploying:

  • Check if the version running in the primary replica is 7.0 via
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand({ buildInfo: 1 }).version"
  • Set the feature set to version 7.0
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand( { setFeatureCompatibilityVersion: '7.0', confirm: true } )"

This command must perform writes to an internal system collection. If for any reason the command does not complete successfully, you can safely retry the command as the operation is idempotent.

  • Verify the command successfully updated the feature set.
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })"

CNI changes

After deploying this version of Claudie, the next scheduled task that passes through
the kube-eleven stage will update the CNI, during which kube-proxy will be removed
and replaced by cilium-cni running in eBPF mode.

This update may introduce a short downtime of ~5-10mins, while the kube-proxy is being replaced

Note that claudie has a periodic refresh of the infrastructure every ~30min, thus if until then no task
is scheduled that passes through the kube-eleven stage, this periodic refresh will
take care of it.

What's Changed

  • Updated MongoDB to version 7 #2075

    • Before deploying scale down MongoDB to 0 replicas.
kubectl scale deploy/mongodb -n claudie --replicas=0
- After deploying, check if the version running in the primary replica is 7.0
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand({ buildInfo: 1 }).version"
- Set the feature set to version 7.0
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand( { setFeatureCompatibilityVersion: '7.0', confirm: true } )"

This command must perform writes to an internal system collection. If for any reason the command does not complete successfully, you can safely retry the command as the operation is idempotent.

- Verify the command successfully updated the feature set.
kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
  -u <username> -p <password> --authenticationDatabase admin \
  --eval "db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })"
  • The support for kubernetes v1.32.x is dropped. The currently supported version are: v1.33, v1.34, v1.35. Make sure to update to at least v1.33.x before deploying.#2079

  • Added support for a new cloud provider Verda Cloud #2088

  • Added support for OVH as native compute and DNS provider #2117

  • Cilium will now be deployed in eBPF mode #2091 #2109

  • General maintenance update of dependencies. #2080, #2107

  • Fixed some of the workflow ordering in scheduled tasks #2115

v0.12.1

Choose a tag to compare

@Despire Despire released this 24 Apr 13:45
1244c01

v0.12.1

What's Changed

  • New feature introduced 'upgrade-lock' label. When set on nodes, it signals to Claudie to skip node drain on those nodes, blocking the workflow of pending changes until the label is removed from the nodes. #2062
# Before triggering an update
kubectl label node <node-name> claudie.io/upgrade-lock=true

# Apply updated InputManifest
kubectl apply -f manifest.yaml

# Claudie drains unlabeled nodes, skips labeled ones, and retries
# Verify replication/health on your workload

# Release the node when safe
kubectl label node <node-name> claudie.io/upgrade-lock-
  • For some of the newly added providers (Openstack), NAT hairpin has been introduced for some of the networking shortcomings as a workaround to make Claudie work correctly. #2066

  • Duplicate Taint definitions for Nodepools will now be removed. #2070

  • For autoscaled nodepools if a scaleup fails at least 3x Claudie will now consider that as a failure and will stop autoscaling instead of retrying indefinitely #2069

v0.12.0

Choose a tag to compare

@Despire Despire released this 16 Apr 10:56
ca5b777

v0.12.0

What's Changed

  • Changing credentials for providers will now be correctly propagated within the reconciliation loop #2056

  • Updated MongoDB to version 6.0 #2053

    • After deploying, verify Mongo version is 6.0
    kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
      -u <username> -p <password> --authenticationDatabase admin \
      --eval "db.adminCommand({ buildInfo: 1 }).version"
    
    • Manually set the feature set to version 6.0
    kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
      -u <username> -p <password> --authenticationDatabase admin \
      --eval "db.adminCommand({ setFeatureCompatibilityVersion: '6.0' })"
    

    This command must perform writes to an internal system collection. If for any reason the command does not complete successfully, you can safely retry the command as the operation is idempotent.

    • Verify the update was processed. The following command should return 6.0 for the feature set.
    kubectl exec -it <primary-mongo-pod> -n claudie -- mongosh \
      -u <username> -p <password> --authenticationDatabase admin \
      --eval "db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })"
    

Bug fixes

  • Fixed deletion of zero sized nodepools that would result in an endless reconciliation loop #2049

v0.11.2

Choose a tag to compare

@Despire Despire released this 08 Apr 13:19
da3b348

v0.11.2

What's Changed

  • Add custom SSH port support for dynamic and static nodepools by #2026

    The requirement of the SSH port to be opened at 22 has been dropped. It is now possible for external templates to define
    their own SSH port to which Claudie will connect to. The same applies to static nodepools which have the option exposed in the InputManifest

static:
  - name: control
    sshPort: 2222  # Optional: SSH port for connecting to static nodes. Defaults to 22.
    nodes:
      - endpoint: "192.168.10.1"
        secretRef:
          name: static-node-key
          namespace: <your-namespace>
  • Gracefully handling missing Cloudflare Load Balancing #2029

  • Dynamic nodes within a Kubernetes cluster will now be healthchecked by Claudie and if they're unhealthy for more than 12 mins Claudie will trigger an auto-repair mechanism
    in which the node is replaced by first deleting it and subsequently joining a new node into the cluster. #2038

0.11.1

Choose a tag to compare

@Despire Despire released this 27 Mar 18:38
fea63ed

v0.11.1

What's Changed

  • General maintenance update by updating dependencies. #2020

v0.11.0

Choose a tag to compare

@Despire Despire released this 24 Mar 14:56
b9473d8

v0.11.0

What's Changed

  • Added CloudRift cloud provider support #2000

  • Updated longhorn to version v1.11.1 #2007
    Before upgrading to this Claudie version from v0.10.2, detach all Longhorn volumes and follow the manual checks described here: https://longhorn.io/docs/1.11.1/deploy/upgrade/#manual-checks-before-upgrade

  • More validation of the input manifest was moved into the webhook for the operator so that more immediate feedback is given when kubectl apply is executed #2008

  • When a node is scheduled for deletion, its drain is now limited to a ~30 minute timeout, after which the node will be deleted #2011

  • For node deletion disk scheduling on the longhorn level will now be applied before the node is deleted #2012

v0.10.2

Choose a tag to compare

@Despire Despire released this 06 Mar 13:28
39c1bc4

v0.10.2

What's Changed

  • Hetzner DNS will now be considered to be part of the hetzner cloud (hcloud) provider within claudie #1993
    If you're using hetzner for DNS you will also need to use the v0.9.19 templates as from
    this Claudie version onwards the previous templates will not work with the old hetzner dns solution.

  • Claudie will now deploy longhorn with version 1.10.2 #1998

    Before upgrading to this Claudie version from v0.10.1, detach all Longhorn volumes and follow the manual checks described here: https://longhorn.io/docs/1.10.2/deploy/upgrade/#manual-checks-before-upgrade

    Additional manual steps may also be required to ensure Longhorn upgrades correctly. To see the necessary steps, look at the Migration Requirement Before Longhorn v1.10 Upgrade section in Longhorn v1.10.1 release

Bug fixes

  • Fix API endpoint changes with proxy turned on #1996