Claudie v0.16¶
This release is not backwards compatible with previous v0.15.x versions, due to an internal rework of handling state files for clusters
Readme Before Deploying¶
⚠️ Breaking Change: No upgrade path from pre-v0.16.x clusters¶
Clusters created with Claudie versions older than v0.16.x are not compatible with this release and cannot be upgraded in place.
Migration steps¶
- Back up all workloads running on your existing cluster.
- Using your current (old) Claudie version, destroy the existing cluster.
v0.16.xcannot destroy clusters created by older versions, so this step must be completed before upgrading. - Upgrade Claudie to
v0.16.x. - Create a new cluster with
v0.16.x. - Redeploy your workloads to the new cluster.
Note: Do not upgrade Claudie before destroying the old cluster. Once you are on
v0.16.x, the old cluster can no longer be torn down through Claudie.
Deployment¶
To deploy Claudie v0.16.x, please:
-
Download Claudie.yaml from release page
-
Verify the checksum with
sha256(optional)
We provide checksums in claudie_checksum.txt you can verify the downloaded yaml files against the provided checksums.
- Install Claudie using
kubectl
We strongly recommend changing the default credentials for MongoDB, MinIO before you deploy it.
To further harden Claudie, you may want to deploy our pre-defined network policies:
# for clusters using cilium as their CNI
kubectl apply -f https://github.com/berops/claudie/releases/latest/download/network-policy-cilium.yaml
# other
kubectl apply -f https://github.com/berops/claudie/releases/latest/download/network-policy.yaml
What's Changed¶
- External templates handling has been reworked #2165
External templates are now defined in their own CRD called TemplateGitReference instead of directly
defining them inside the InputManifest. You can read further about the new CRD in our documentation.
An example custom resource is provided below:
apiVersion: claudie.io/v1beta1
kind: TemplateGitReference
metadata:
name: my-templates
namespace: claudie
spec:
endpoint:
url: github.com/berops/claudie-config
protocol: https
auth:
secretRef:
name: git-token
namespace: claudie
commit: latest
paths:
terraformer: templates/terraformer
playbooks: templates/playbooks
configLb: templates/config-lb
configK8s: templates/config-k8s
manifestsK8s: templates/manifests-k8s
Inside the InputManifest you can then reference the Custom Resource under the provider as follows:
apiVersion: claudie.io/v1beta1
kind: InputManifest
metadata:
name: example
spec:
providers:
- name: hetzner-1
providerType: hetzner
templatesRef:
name: my-templates
namespace: claudie
...
If no templates are specified Claudie generates a default custom resource that points to the configuration in https://www.github.com/berops/claudie-config.
-
Update kubeone. The currently supported kubernetes versions are
1.34.x, 1.35.x, and 1.36.x.#2184 -
Upgrade longhorn to v1.12 #2188
-
Update tofu to 1.12.5 #2186
-
Updated generated kubeconfig secret name to omit auto-generated hash #2183
-
Dropped raw ICMP pings in favor of SSH pings #2191
-
A single state file per cluster has been dropped in favor of a single state file per nodepool with an additional shared infrastructure state file for each cluster #2177. This speeds up scaling up/scaling down existing nodepools.
-
General maintenance dependencies update #2201