diff --git a/README.md b/README.md index 80022abd..7ec125c6 100644 --- a/README.md +++ b/README.md @@ -51,19 +51,24 @@ Check out the [Getting Started Guide][getting_started] to create your first Kube This provider's versions are able to install and manage the following versions of Kubernetes: -| Kubernetes Version | v1.22 | v1.23 | v1.24 | v1.25 | v1.26 | v1.27 | -| --------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | -| CloudStack Provider (v0.4) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| Kubernetes Version | v1.22 | v1.23 | v1.24 | v1.25 | v1.26 | v1.27 | v1.28 | v1.29 | v1.30 | v1.31 | v1.32 | +| --------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | +| CloudStack Provider (v0.4) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | +| CloudStack Provider (v0.6) | | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | + +Note: The above matrix is based on what has been tested. Provider could work with older and newer versions of Kubernetes but it has not been tested. ## Compatibility with Apache CloudStack Versions This provider's versions are able to work on the following versions of Apache CloudStack: -| CloudStack Version | 4.14 | 4.15 | 4.16 | 4.17 | 4.18 | 4.19 | -| --------------------------- | ---- | ---- | ---- | ---- | ---- | ---- | -| CloudStack Provider (v0.4) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| CloudStack Version | 4.14 | 4.15 | 4.16 | 4.17 | 4.18 | 4.19 | 4.20 | +| --------------------------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | +| CloudStack Provider (v0.4) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| CloudStack Provider (v0.6) | | | | | | ✓ | ✓ | +Note: The above matrix is based on what has been tested. Provider could work with older and newer versions of Apache CloudStack but it has not been tested. ## Operating system images @@ -73,7 +78,28 @@ Reference images can be found in [kubernetes-sigs/image-builder][image-builder]. Prebuilt images can be found below : -| Hypervisor | Kubernetes Version | Rocky Linux 8 | Ubuntu 20.04 | +| Hypervisor | Kubernetes Version | Rocky Linux 9 | Ubuntu 22.04 | Ubuntu 24.04 | +| ---------- | ------------------ | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| KVM | v1.28 | [qcow2][k1.28-rl9-qcow2], [md5][k1.28-rl9-qcow2-md5] | [qcow2][k1.28-u22-qcow2], [md5][k1.28-u22-qcow2-md5] | [qcow2][k1.28-u24-qcow2], [md5][k1.28-u24-qcow2-md5] | +| | v1.29 | [qcow2][k1.29-rl9-qcow2], [md5][k1.29-rl9-qcow2-md5] | [qcow2][k1.29-u22-qcow2], [md5][k1.29-u22-qcow2-md5] | [qcow2][k1.29-u24-qcow2], [md5][k1.29-u24-qcow2-md5] | +| | v1.30 | [qcow2][k1.30-rl9-qcow2], [md5][k1.30-rl9-qcow2-md5] | [qcow2][k1.30-u22-qcow2], [md5][k1.30-u22-qcow2-md5] | [qcow2][k1.30-u24-qcow2], [md5][k1.30-u24-qcow2-md5] | +| | v1.31 | [qcow2][k1.31-rl9-qcow2], [md5][k1.31-rl9-qcow2-md5] | [qcow2][k1.31-u22-qcow2], [md5][k1.31-u22-qcow2-md5] | [qcow2][k1.31-u24-qcow2], [md5][k1.31-u24-qcow2-md5] | +| | v1.32 | [qcow2][k1.32-rl9-qcow2], [md5][k1.32-rl9-qcow2-md5] | [qcow2][k1.32-u22-qcow2], [md5][k1.32-u22-qcow2-md5] | [qcow2][k1.32-u24-qcow2], [md5][k1.32-u24-qcow2-md5] | +| VMware | v1.28 | [ova][k1.28-rl9-ova], [md5][k1.28-rl9-ova-md5] | [ova][k1.28-u22-ova], [md5][k1.28-u22-ova-md5] | [ova][k1.28-u24-ova], [md5][k1.28-u24-ova-md5] | +| | v1.29 | [ova][k1.29-rl9-ova], [md5][k1.29-rl9-ova-md5] | [ova][k1.29-u22-ova], [md5][k1.29-u22-ova-md5] | [ova][k1.29-u24-ova], [md5][k1.29-u24-ova-md5] | +| | v1.30 | [ova][k1.30-rl9-ova], [md5][k1.30-rl9-ova-md5] | [ova][k1.30-u22-ova], [md5][k1.30-u22-ova-md5] | [ova][k1.30-u24-ova], [md5][k1.30-u24-ova-md5] | +| | v1.31 | [ova][k1.31-rl9-ova], [md5][k1.31-rl9-ova-md5] | [ova][k1.31-u22-ova], [md5][k1.31-u22-ova-md5] | [ova][k1.31-u24-ova], [md5][k1.31-u24-ova-md5] | +| | v1.32 | [ova][k1.32-rl9-ova], [md5][k1.32-rl9-ova-md5] | [ova][k1.32-u22-ova], [md5][k1.32-u22-ova-md5] | [ova][k1.32-u24-ova], [md5][k1.32-u24-ova-md5] | +| XenServer | v1.28 | [vhd][k1.28-rl9-vhd], [md5][k1.28-rl9-vhd-md5] | [vhd][k1.28-u22-vhd], [md5][k1.28-u22-vhd-md5] | [vhd][k1.28-u24-vhd], [md5][k1.28-u24-vhd-md5] | +| | v1.29 | [vhd][k1.29-rl9-vhd], [md5][k1.29-rl9-vhd-md5] | [vhd][k1.29-u22-vhd], [md5][k1.29-u22-vhd-md5] | [vhd][k1.29-u24-vhd], [md5][k1.29-u24-vhd-md5] | +| | v1.30 | [vhd][k1.30-rl9-vhd], [md5][k1.30-rl9-vhd-md5] | [vhd][k1.30-u22-vhd], [md5][k1.30-u22-vhd-md5] | [vhd][k1.30-u24-vhd], [md5][k1.30-u24-vhd-md5] | +| | v1.31 | [vhd][k1.31-rl9-vhd], [md5][k1.31-rl9-vhd-md5] | [vhd][k1.31-u22-vhd], [md5][k1.31-u22-vhd-md5] | [vhd][k1.31-u24-vhd], [md5][k1.31-u24-vhd-md5] | +| | v1.32 | [vhd][k1.32-rl9-vhd], [md5][k1.32-rl9-vhd-md5] | [vhd][k1.32-u22-vhd], [md5][k1.32-u22-vhd-md5] | [vhd][k1.32-u24-vhd], [md5][k1.32-u24-vhd-md5] | + +
+Past images + +| Hypervisor | Kubernetes Version | Rocky Linux 8 | Ubuntu 20.04 | | ---------- | ------------------ | ---------------------------------------------------- | ---------------------------------------------------- | | KVM | v1.22 | [qcow2][k1.22-rl8-qcow2], [md5][k1.22-rl8-qcow2-md5] | [qcow2][k1.22-u20-qcow2], [md5][k1.22-u20-qcow2-md5] | | | v1.23 | [qcow2][k1.23-rl8-qcow2], [md5][k1.23-rl8-qcow2-md5] | [qcow2][k1.23-u20-qcow2], [md5][k1.23-u20-qcow2-md5] | @@ -93,8 +119,9 @@ Prebuilt images can be found below : | | v1.25 | [vhd][k1.25-rl8-vhd], [md5][k1.25-rl8-vhd-md5] | [vhd][k1.25-u20-vhd], [md5][k1.25-u20-vhd-md5] | | | v1.26 | [vhd][k1.26-rl8-vhd], [md5][k1.26-rl8-vhd-md5] | [vhd][k1.26-u20-vhd], [md5][k1.26-u20-vhd-md5] | | | v1.27 | [vhd][k1.27-rl8-vhd], [md5][k1.27-rl8-vhd-md5] | [vhd][k1.27-u20-vhd], [md5][k1.27-u20-vhd-md5] | - ------ +
+ ## Getting involved and contributing Are you interested in contributing to cluster-api-provider-cloudstack? We, the @@ -139,16 +166,18 @@ We also use the issue tracker to track features. If you have an idea for a featu Thank you to all contributors and a special thanks to our current maintainers & reviewers: -| Maintainers | Reviewers | -| --------------------------------------------------------- | ------------------------------------------------------ | -| [@rohityadavcloud](https://github.com/rohityadavcloud) | [@rohityadavcloud](https://github.com/rohityadavcloud) | -| [@davidjumani](https://github.com/davidjumani) | [@davidjumani](https://github.com/davidjumani) | -| [@jweite-amazon](https://github.com/jweite-amazon) | [@jweite-amazon](https://github.com/jweite-amazon) | +| Maintainers | Reviewers | +| ------------------------------------------------------ | ------------------------------------------------------ | +| [@rohityadavcloud](https://github.com/rohityadavcloud) | [@rohityadavcloud](https://github.com/rohityadavcloud) | +| [@weizhouapache](https://github.com/weizhouapache) | [@weizhouapache](https://github.com/weizhouapache) | +| [@vishesh92](https://github.com/vishesh92) | [@vishesh92](https://github.com/vishesh92) | +| [@davidjumani](https://github.com/davidjumani) | [@davidjumani](https://github.com/davidjumani) | +| [@jweite-amazon](https://github.com/jweite-amazon) | [@jweite-amazon](https://github.com/jweite-amazon) | All the CAPC contributors:

- +

@@ -179,6 +208,16 @@ All the CAPC contributors: [k1.26-rl8-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-8-kube-v1.26.5-kvm.qcow2.bz2.md5 [k1.27-rl8-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-8-kube-v1.27.2-kvm.qcow2.bz2 [k1.27-rl8-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-8-kube-v1.27.2-kvm.qcow2.bz2.md5 +[k1.28-rl9-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.28.15-kvm.qcow2.bz2 +[k1.28-rl9-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.28.15-kvm.qcow2.bz2.md5 +[k1.29-rl9-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.29.15-kvm.qcow2.bz2 +[k1.29-rl9-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.29.15-kvm.qcow2.bz2.md5 +[k1.30-rl9-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.30.11-kvm.qcow2.bz2 +[k1.30-rl9-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.30.11-kvm.qcow2.bz2.md5 +[k1.31-rl9-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.31.7-kvm.qcow2.bz2 +[k1.31-rl9-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.31.7-kvm.qcow2.bz2.md5 +[k1.32-rl9-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.32.3-kvm.qcow2.bz2 +[k1.32-rl9-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/rockylinux-9-kube-v1.32.3-kvm.qcow2.bz2.md5 [k1.22-u20-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2004-kube-v1.22.6-kvm.qcow2.bz2 [k1.22-u20-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2004-kube-v1.22.6-kvm.qcow2.bz2.md5 [k1.23-u20-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2004-kube-v1.23.3-kvm.qcow2.bz2 @@ -191,6 +230,26 @@ All the CAPC contributors: [k1.26-u20-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2004-kube-v1.26.5-kvm.qcow2.bz2.md5 [k1.27-u20-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2004-kube-v1.27.2-kvm.qcow2.bz2 [k1.27-u20-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2004-kube-v1.27.2-kvm.qcow2.bz2.md5 +[k1.28-u22-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.28.15-kvm.qcow2.bz2 +[k1.28-u22-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.28.15-kvm.qcow2.bz2.md5 +[k1.29-u22-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.29.15-kvm.qcow2.bz2 +[k1.29-u22-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.29.15-kvm.qcow2.bz2.md5 +[k1.30-u22-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.30.11-kvm.qcow2.bz2 +[k1.30-u22-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.30.11-kvm.qcow2.bz2.md5 +[k1.31-u22-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.31.7-kvm.qcow2.bz2 +[k1.31-u22-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.31.7-kvm.qcow2.bz2.md5 +[k1.32-u22-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.32.3-kvm.qcow2.bz2 +[k1.32-u22-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2204-kube-v1.32.3-kvm.qcow2.bz2.md5 +[k1.28-u24-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.28.15-kvm.qcow2.bz2 +[k1.28-u24-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.28.15-kvm.qcow2.bz2.md5 +[k1.29-u24-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.29.15-kvm.qcow2.bz2 +[k1.29-u24-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.29.15-kvm.qcow2.bz2.md5 +[k1.30-u24-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.30.11-kvm.qcow2.bz2 +[k1.30-u24-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.30.11-kvm.qcow2.bz2.md5 +[k1.31-u24-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.31.7-kvm.qcow2.bz2 +[k1.31-u24-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.31.7-kvm.qcow2.bz2.md5 +[k1.32-u24-qcow2]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.32.3-kvm.qcow2.bz2 +[k1.32-u24-qcow2-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/kvm/ubuntu-2404-kube-v1.32.3-kvm.qcow2.bz2.md5 [k1.22-rl8-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-8-kube-v1.22.6-vmware.ova @@ -205,6 +264,16 @@ All the CAPC contributors: [k1.26-rl8-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-8-kube-v1.26.5-vmware.ova.md5 [k1.27-rl8-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-8-kube-v1.27.2-vmware.ova [k1.27-rl8-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-8-kube-v1.27.2-vmware.ova.md5 +[k1.28-rl9-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.28.15-vmware.ova +[k1.28-rl9-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.28.15-vmware.ova.md5 +[k1.29-rl9-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.29.15-vmware.ova +[k1.29-rl9-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.29.15-vmware.ova.md5 +[k1.30-rl9-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.30.11-vmware.ova +[k1.30-rl9-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.30.11-vmware.ova.md5 +[k1.31-rl9-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.31.7-vmware.ova +[k1.31-rl9-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.31.7-vmware.ova.md5 +[k1.32-rl9-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.32.3-vmware.ova +[k1.32-rl9-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/rockylinux-9-kube-v1.32.3-vmware.ova.md5 [k1.22-u20-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2004-kube-v1.22.6-vmware.ova [k1.22-u20-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2004-kube-v1.22.6-vmware.ova.md5 [k1.23-u20-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2004-kube-v1.23.3-vmware.ova @@ -217,6 +286,26 @@ All the CAPC contributors: [k1.26-u20-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2004-kube-v1.26.5-vmware.ova.md5 [k1.27-u20-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2004-kube-v1.27.2-vmware.ova [k1.27-u20-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2004-kube-v1.27.2-vmware.ova.md5 +[k1.28-u22-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.28.15-vmware.ova +[k1.28-u22-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.28.15-vmware.ova.md5 +[k1.29-u22-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.29.15-vmware.ova +[k1.29-u22-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.29.15-vmware.ova.md5 +[k1.30-u22-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.30.11-vmware.ova +[k1.30-u22-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.30.11-vmware.ova.md5 +[k1.31-u22-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.31.7-vmware.ova +[k1.31-u22-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.31.7-vmware.ova.md5 +[k1.32-u22-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.32.3-vmware.ova +[k1.32-u22-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2204-kube-v1.32.3-vmware.ova.md5 +[k1.28-u24-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.28.15-vmware.ova +[k1.28-u24-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.28.15-vmware.ova.md5 +[k1.29-u24-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.29.15-vmware.ova +[k1.29-u24-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.29.15-vmware.ova.md5 +[k1.30-u24-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.30.11-vmware.ova +[k1.30-u24-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.30.11-vmware.ova.md5 +[k1.31-u24-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.31.7-vmware.ova +[k1.31-u24-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.31.7-vmware.ova.md5 +[k1.32-u24-ova]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.32.3-vmware.ova +[k1.32-u24-ova-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/vmware/ubuntu-2404-kube-v1.32.3-vmware.ova.md5 [k1.22-rl8-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-8-kube-v1.22.6-xen.vhd.bz2 @@ -231,6 +320,16 @@ All the CAPC contributors: [k1.26-rl8-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-8-kube-v1.26.5-xen.vhd.bz2.md5 [k1.27-rl8-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-8-kube-v1.27.2-xen.vhd.bz2 [k1.27-rl8-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-8-kube-v1.27.2-xen.vhd.bz2.md5 +[k1.28-rl9-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.28.15-xen.vhd.bz2 +[k1.28-rl9-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.28.15-xen.vhd.bz2.md5 +[k1.29-rl9-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.29.15-xen.vhd.bz2 +[k1.29-rl9-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.29.15-xen.vhd.bz2.md5 +[k1.30-rl9-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.30.11-xen.vhd.bz2 +[k1.30-rl9-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.30.11-xen.vhd.bz2.md5 +[k1.31-rl9-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.31.7-xen.vhd.bz2 +[k1.31-rl9-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.31.7-xen.vhd.bz2.md5 +[k1.32-rl9-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.32.3-xen.vhd.bz2 +[k1.32-rl9-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/rockylinux-9-kube-v1.32.3-xen.vhd.bz2.md5 [k1.22-u20-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2004-kube-v1.22.6-xen.vhd.bz2 [k1.22-u20-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2004-kube-v1.22.6-xen.vhd.bz2.md5 [k1.23-u20-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2004-kube-v1.23.3-xen.vhd.bz2 @@ -243,3 +342,23 @@ All the CAPC contributors: [k1.26-u20-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2004-kube-v1.26.5-xen.vhd.bz2.md5 [k1.27-u20-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2004-kube-v1.27.2-xen.vhd.bz2 [k1.27-u20-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2004-kube-v1.27.2-xen.vhd.bz2.md5 +[k1.28-u22-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.28.15-xen.vhd.bz2 +[k1.28-u22-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.28.15-xen.vhd.bz2.md5 +[k1.29-u22-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.29.15-xen.vhd.bz2 +[k1.29-u22-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.29.15-xen.vhd.bz2.md5 +[k1.30-u22-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.30.11-xen.vhd.bz2 +[k1.30-u22-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.30.11-xen.vhd.bz2.md5 +[k1.31-u22-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.31.7-xen.vhd.bz2 +[k1.31-u22-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.31.7-xen.vhd.bz2.md5 +[k1.32-u22-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.32.3-xen.vhd.bz2 +[k1.32-u22-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2204-kube-v1.32.3-xen.vhd.bz2.md5 +[k1.28-u24-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.28.15-xen.vhd.bz2 +[k1.28-u24-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.28.15-xen.vhd.bz2.md5 +[k1.29-u24-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.29.15-xen.vhd.bz2 +[k1.29-u24-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.29.15-xen.vhd.bz2.md5 +[k1.30-u24-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.30.11-xen.vhd.bz2 +[k1.30-u24-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.30.11-xen.vhd.bz2.md5 +[k1.31-u24-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.31.7-xen.vhd.bz2 +[k1.31-u24-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.31.7-xen.vhd.bz2.md5 +[k1.32-u24-vhd]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.32.3-xen.vhd.bz2 +[k1.32-u24-vhd-md5]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/xen/ubuntu-2404-kube-v1.32.3-xen.vhd.bz2.md5 diff --git a/docs/book/src/clustercloudstack/configuration.md b/docs/book/src/clustercloudstack/configuration.md index 777fbf71..0734d0bf 100644 --- a/docs/book/src/clustercloudstack/configuration.md +++ b/docs/book/src/clustercloudstack/configuration.md @@ -4,8 +4,6 @@ The cluster configuration file can be generated by using [`clusterctl generate c This command actually uses [a template file][template-file] and replaces the values surrounded by `${}` with environment variables. You have to set all required environment variables in advance. The following sections explain some more details about what should be configured. -Note: You can also use [template files][template-file] by manually replacing values in copies of the template file. - ```bash clusterctl generate cluster capi-quickstart \ --kubernetes-version v1.21.3 \ @@ -14,9 +12,25 @@ clusterctl generate cluster capi-quickstart \ > capi-quickstart.yaml ``` -Note: additional template files are provided, offering capabilities beyond the default template file. These can be -utilized via the *clusterctl --flavor* parameter. Additional environment variables are often required by these templates. -See clusterctl documentation for further details about *flavors*. +You can also use [template files][template-file] by manually replacing values in copies of the template file. + + +> **Note** +> +> Additional template files are provided, offering capabilities beyond the default template file. These can be +> utilized via the *clusterctl --flavor* parameter. Additional environment variables are often required by these templates. +> The following flavors are supported as of now: +> - *managed-ssh* +> - *ssh-material* +> - *with-disk-offering* +> - *with-existing-vpc-network* +> - *with-kube-vip* +> +> To check the available variables for a flavor, execute the following command: +> ```bash +> clusterctl generate cluster capi-quickstart --flavor --list-variables +> ``` +> Only one flavor can be specified at a time. See clusterctl documentation for further details about *flavors*. In order to fetch the configuration parameters via the terminal, please install [cmk][cmk-download] and [jq][jq-download] @@ -60,15 +74,75 @@ cmk list zones listall=true | jq '.zone[] | {name, id}' #### Network The network must be declared as an environment variable `CLOUDSTACK_NETWORK_NAME` and is a mandatory parameter. -As of now, only isolated and shared networks are supported. +As of now, only isolated and shared networks are supported. The isolated network can also be part of a VPC. + +If the specified network does not exist, a new isolated network will be created. The newly created network will have a default egress firewall policy that allows all TCP, UDP and ICMP traffic from the cluster to the outside world. If the network is part of a VPC, the VPC will also be created if it does not exist. -If the specified network does not exist, a new isolated network will be created. The newly created network will have a default egress firewall policy that allows all TCP, UDP and ICMP traffic from the cluster to the outside world. +If the offerings are not specified, the default offerings will be used. The list of networks for the specific zone can be fetched using the cmk cli as follows : ``` cmk list networks listall=true zoneid= | jq '.network[] | {name, id, type}' ``` +The list of VPCs for the specific zone can be fetched using the cmk cli as follows : +``` +cmk list vpcs listall=true zoneid= | jq '.vpc[] | {name, id}' +``` + +The user can configure the network offering and VPC offering for the isolated network as follows: + +```yaml +apiVersion: infrastructure.cluster.x-k8s.io/v1beta3 +kind: CloudStackCluster +metadata: + name: capc-cluster + namespace: default +spec: + controlPlaneEndpoint: + host: 10.0.58.19 + port: 6443 + failureDomains: + - acsEndpoint: + name: secret1 + namespace: default + name: fd1 + zone: + name: cloudstack-zone + network: + name: cloudstack-network + offering: custom-network-offering + gateway: 10.0.0.1 + netmask: 255.255.255.0 + vpc: + name: cloudstack-vpc + offering: custom-vpc-offering + cidr: 10.0.0.0/16 +``` + +If the network already exists, offering, gateway and netmask will be ignored. +Similarly, if the VPC already exists, offering and cidr will be ignored. + +##### VPC + +If you want to use an existing network inside a VPC, you can specify the flavor as `with-existing-vpc-network` while +generating the cluster configuration file and set the `CLOUDSTACK_VPC_NAME` environment variable to the name of the VPC. +After setting the environment variables, execute the following command to generate the cluster configuration file: + +```bash +clusterctl generate cluster capc-cluster --flavor with-existing-vpc-network > capc-cluster-spec.yaml +``` + +##### Shared or Routed Networks + +For shared or routed networks, the user will need to use [kube-vip][kube-vip] to configure the VIP on the nodes as part of the +KubeadmControlPlane spec. You can specify the flavor as `with-kube-vip` while generating the cluster configuration file. +After setting the environment variables, execute the following command to generate the cluster configuration file: + +```bash +clusterctl generate cluster capc-cluster --flavor with-kube-vip > capc-cluster-spec.yaml +``` + #### CloudStack Endpoint Credentials Secret (*optional for provided templates when used with provided getting-started process*) A reference to a Kubernetes Secret containing a YAML object containing credentials for accessing a particular CloudStack @@ -110,6 +184,14 @@ The list of Public IPs for the specific zone can be fetched using the cmk cli as cmk list publicipaddresses listall=true zoneid= forvirtualnetwork=true allocatedonly=false | jq '.publicipaddress[] | select(.state == "Free" or .state == "Reserved") | .ipaddress' ``` +> **Note** +> +> When using shared or routed networks, you must configure a Virtual IP (VIP) on the nodes using [kube-vip][kube-vip]. +> You can specify the flavor as `with-kube-vip` while generating the cluster configuration file. The +> `CLUSTER_ENDPOINT_IP` value must be either: +> - An IP address within the shared/routed network range +> - A DNS name pointing to a VIP or a load balancer in front of the control plane nodes + ## Machine Level Configurations These configurations are passed while defining the `CloudStackMachine`. They can differ based on the MachineSet mapped to it. @@ -159,6 +241,7 @@ The project name can be specified by adding the `CloudStackCluster.spec.project` The list of projects can be fetched using the cmk cli as follows : ``` cmk list projects listall=true | jq '.project[] | {name, id}' +``` ## Cluster Level Configurations @@ -292,4 +375,5 @@ TODO / Add feature [jq-download]: https://stedolan.github.io/jq/ [prebuilt-images]: http://packages.shapeblue.com/cluster-api-provider-cloudstack/images/ [template-file]: https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/blob/main/templates/cluster-template.yaml -[failure-domain-api]: https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/blob/main/api/v1beta2/cloudstackfailuredomain_types.go \ No newline at end of file +[failure-domain-api]: https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/blob/main/api/v1beta2/cloudstackfailuredomain_types.go +[kube-vip]: https://kube-vip.io/ diff --git a/docs/book/src/development/releasing.md b/docs/book/src/development/releasing.md index 0cfbc701..0eb4a74f 100644 --- a/docs/book/src/development/releasing.md +++ b/docs/book/src/development/releasing.md @@ -8,12 +8,14 @@ - [gcloud][gcloud-install] 2. Set up and log in to gcloud by running `gcloud init` - > In order to publish any artifact, you need to be a member of the [k8s-infra-staging-capi-cloudstack][k8s-infra-staging-capi-cloudstack] group +> **Note** +> +> In order to publish any artifact, you need to be a member of the [k8s-infra-staging-capi-cloudstack][k8s-infra-staging-capi-cloudstack] group ## Creating only the docker container If you would just like to build only the docker container and upload it rather than creating a release, you can run the following command : -``` +```bash REGISTRY= IMAGE_NAME= TAG= make docker-build ``` It defaults to `gcr.io/k8s-staging-capi-cloudstack/capi-cloudstack-controller:dev` @@ -21,8 +23,8 @@ It defaults to `gcr.io/k8s-staging-capi-cloudstack/capi-cloudstack-controller:de ## Creating a new release -Run the following command to create the new release artifacts as well as publish them to the upstream gcr.io repository : -``` +Run the following command to create the new release artifacts as well as publish them to the upstream gcr.io repository: +```bash RELEASE_TAG= make release-staging ``` @@ -31,9 +33,14 @@ Create the necessary release in GitHub along with the following artifacts ( foun - infrastructure-components.yaml - cluster-template*.yaml +> **Note** +> +> - The `RELEASE_TAG` should be in the format of `v..`. For example, `v0.6.0` +> - For RC releases, the `RELEASE_TAG` should be in the format of `v..-rc`. For example, `v0.6.0-rc1` +> - Before creating the release, ensure that the `metadata.yaml` file is updated with the latest release information. [docker-install]: https://www.docker.com/ [go]: https://golang.org/doc/install [gcloud-install]: https://cloud.google.com/sdk/docs/install -[k8s-infra-staging-capi-cloudstack]: https://github.com/kubernetes/k8s.io/blob/main/groups/sig-cluster-lifecycle/groups.yaml#L106 \ No newline at end of file +[k8s-infra-staging-capi-cloudstack]: https://github.com/kubernetes/k8s.io/blob/main/groups/sig-cluster-lifecycle/groups.yaml#L106 diff --git a/docs/book/src/images/ssh-step-1-public-ip-vpc.png b/docs/book/src/images/ssh-step-1-public-ip-vpc.png new file mode 100644 index 00000000..d5505641 Binary files /dev/null and b/docs/book/src/images/ssh-step-1-public-ip-vpc.png differ diff --git a/docs/book/src/topics/ssh-access.md b/docs/book/src/topics/ssh-access.md index dbf2243f..0470f530 100644 --- a/docs/book/src/topics/ssh-access.md +++ b/docs/book/src/topics/ssh-access.md @@ -15,10 +15,12 @@ To see how to pass a key pair to the node, checkout the [keypair configuration]( In order to access the nodes, the following changes need to be made in Apache CloudStack 1. Select the Public IP belonging to the network via which users can access the VM. -Either use the exiting IP or acquire a new IP. +Either use the exiting IP or acquire a new IP. If the network is part of a VPC, the public IP will be the one assigned to the VPC. ![Alt text](../images/ssh-step-1-public-ip.png) + ![Alt text](../images/ssh-step-1-public-ip-vpc.png) + 2. Add a firewall rule to allow access on the desired port ![Alt text](../images/ssh-step-2-firewall.png) diff --git a/templates/cluster-template-with-existing-vpc-network.yaml b/templates/cluster-template-with-existing-vpc-network.yaml new file mode 100644 index 00000000..71ae717f --- /dev/null +++ b/templates/cluster-template-with-existing-vpc-network.yaml @@ -0,0 +1,128 @@ +--- +apiVersion: cluster.x-k8s.io/v1beta1 +kind: Cluster +metadata: + name: ${CLUSTER_NAME} +spec: + clusterNetwork: + pods: + cidrBlocks: + - 192.168.0.0/16 + serviceDomain: "cluster.local" + infrastructureRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta3 + kind: CloudStackCluster + name: ${CLUSTER_NAME} + controlPlaneRef: + kind: KubeadmControlPlane + apiVersion: controlplane.cluster.x-k8s.io/v1beta1 + name: ${CLUSTER_NAME}-control-plane +--- +apiVersion: infrastructure.cluster.x-k8s.io/v1beta3 +kind: CloudStackCluster +metadata: + name: ${CLUSTER_NAME} +spec: + syncWithACS: ${CLOUDSTACK_SYNC_WITH_ACS=false} + controlPlaneEndpoint: + host: ${CLUSTER_ENDPOINT_IP} + port: ${CLUSTER_ENDPOINT_PORT=6443} + failureDomains: + - name: ${CLOUDSTACK_FD1_NAME=failure-domain-1} + acsEndpoint: + name: ${CLOUDSTACK_FD1_SECRET_NAME=cloudstack-credentials} + namespace: ${CLOUDSTACK_FD1_SECRET_NAMESPACE=default} + zone: + name: ${CLOUDSTACK_ZONE_NAME} + network: + name: ${CLOUDSTACK_NETWORK_NAME} + vpc: + name: ${CLOUDSTACK_VPC_NAME} +--- +kind: KubeadmControlPlane +apiVersion: controlplane.cluster.x-k8s.io/v1beta1 +metadata: + name: "${CLUSTER_NAME}-control-plane" +spec: + kubeadmConfigSpec: + initConfiguration: + nodeRegistration: + name: '{{ local_hostname }}' + kubeletExtraArgs: + provider-id: "cloudstack:///'{{ ds.meta_data.instance_id }}'" + joinConfiguration: + nodeRegistration: + name: '{{ local_hostname }}' + kubeletExtraArgs: + provider-id: "cloudstack:///'{{ ds.meta_data.instance_id }}'" + preKubeadmCommands: + - swapoff -a + machineTemplate: + infrastructureRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1beta3 + kind: CloudStackMachineTemplate + name: "${CLUSTER_NAME}-control-plane" + replicas: ${CONTROL_PLANE_MACHINE_COUNT} + version: ${KUBERNETES_VERSION} +--- +apiVersion: infrastructure.cluster.x-k8s.io/v1beta3 +kind: CloudStackMachineTemplate +metadata: + name: ${CLUSTER_NAME}-control-plane +spec: + template: + spec: + offering: + name: ${CLOUDSTACK_CONTROL_PLANE_MACHINE_OFFERING} + template: + name: ${CLOUDSTACK_TEMPLATE_NAME} +--- +apiVersion: cluster.x-k8s.io/v1beta1 +kind: MachineDeployment +metadata: + name: "${CLUSTER_NAME}-md-0" +spec: + clusterName: "${CLUSTER_NAME}" + replicas: ${WORKER_MACHINE_COUNT} + selector: + matchLabels: null + template: + spec: + clusterName: "${CLUSTER_NAME}" + version: "${KUBERNETES_VERSION}" + bootstrap: + configRef: + name: "${CLUSTER_NAME}-md-0" + apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 + kind: KubeadmConfigTemplate + infrastructureRef: + name: "${CLUSTER_NAME}-md-0" + apiVersion: infrastructure.cluster.x-k8s.io/v1beta3 + kind: CloudStackMachineTemplate +--- +apiVersion: infrastructure.cluster.x-k8s.io/v1beta3 +kind: CloudStackMachineTemplate +metadata: + name: ${CLUSTER_NAME}-md-0 +spec: + template: + spec: + offering: + name: ${CLOUDSTACK_WORKER_MACHINE_OFFERING} + template: + name: ${CLOUDSTACK_TEMPLATE_NAME} +--- +apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 +kind: KubeadmConfigTemplate +metadata: + name: ${CLUSTER_NAME}-md-0 +spec: + template: + spec: + joinConfiguration: + nodeRegistration: + name: '{{ local_hostname }}' + kubeletExtraArgs: + provider-id: "cloudstack:///'{{ ds.meta_data.instance_id }}'" + preKubeadmCommands: + - swapoff -a